Hadoop生态圈框架部署(六)- HBase完全分布式部署

文章目录

  • 前言
  • 一、Hbase完全分布式部署(手动部署)
    • 1. 下载Hbase
    • 2. 上传安装包
    • 3. 解压HBase安装包
    • 4. 配置HBase配置文件
      • 4.1 修改hbase-env.sh配置文件
      • 4.2 修改hbase-site.xml配置文件
      • 4.3 修改regionservers配置文件
      • 4.4 删除hbase中slf4j-reload4j-1.7.33.jar文件
    • 5. 虚拟机hadoop2安装并配置HBase
    • 6. 虚拟机hadoop3安装并配置HBase
    • 7. 配置HBase系统环境变量
      • 7.1 配置虚拟机hadoop1的HBase环境变量
      • 7.2 配置虚拟机hadoop2的HBase环境变量
      • 7.3 配置虚拟机hadoop3的HBase环境变量
    • 8. 启动HBase集群
    • 9. 进入HBase客户端
    • 10. 访问 HBase 的 Web UI 页面
      • 10.1 访问 Master 的 UI 页面
      • 10.2 访问 RegionServer 的 UI 页面
    • 11. 停止HBase集群
  • 二、使用shell脚本自动部署Hbase完全分布式(选看)
    • 1. 下载Hbase
    • 2. 上传安装包
    • 3. 使用shell脚本自动部署Hbase完全分布式
      • 3.1 创建 hadoop1_hbase_install_config.sh 脚本文件并添加脚本内容
      • 3.2 添加可执行权限
      • 3.3 执行脚本
    • 4. 加载环境变量
    • 5. 启动HBase集群
    • 6. 进入HBase客户端
    • 7. 访问 HBase 的 Web UI 页面
      • 7.1 访问 Master 的 UI 页面
      • 7.2 访问 RegionServer 的 UI 页面
    • 8. 停止HBase集群


前言

随着大数据技术的不断发展,HBase 作为 Hadoop 生态系统中的重要组件,因其出色的性能和可扩展性而受到广泛欢迎。本文将详细介绍 HBase 在完全分布式环境下的安装与配置过程。我们将从环境准备、软件下载、配置文件修改到集群启动等多个环节进行逐一讲解,确保读者能够顺利搭建起自己的 HBase 分布式集群。通过本文的学习,读者不仅能够掌握 HBase 的安装步骤,还能了解其核心配置项的意义和作用,为后续的数据存储与管理打下坚实的基础。


一、Hbase完全分布式部署(手动部署)

1. 下载Hbase

点击下载 hbase2.4.18安装包:https://mirrors.huaweicloud.com/apache/hbase/2.4.18/hbase-2.4.18-bin.tar.gz

2. 上传安装包

通过拖移的方式将下载的HBase安装包hbase-2.4.18-bin.tar.gz上传至虚拟机hadoop1的/export/software目录。

在这里插入图片描述

3. 解压HBase安装包

虚拟机hadoop1上传完成后将HBase安装包通过解压方式安装至/export/servers目录。

tar -zxvf /export/software/hbase-2.4.18-bin.tar.gz -C /export/servers

在这里插入图片描述

4. 配置HBase配置文件

4.1 修改hbase-env.sh配置文件

虚拟机hadoop1修改hbase运行时环境变量配置文件/export/servers/hbase-2.4.18/conf/hbase-env.sh,执行如下命令添加配置。

echo 'export JAVA_HOME=/export/servers/jdk1.8.0_421' >> /export/servers/hbase-2.4.18/conf/hbase-env.sh
echo 'export HBASE_MANAGES_ZK=false' >> /export/servers/hbase-2.4.18/conf/hbase-env.sh
echo 'export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true' >> /export/servers/hbase-2.4.18/conf/hbase-env.sh

在这里插入图片描述

4.2 修改hbase-site.xml配置文件

虚拟机hadoop1修改hbase配置文件/export/servers/hbase-2.4.18/conf/hbase-site.xml,执行如下命令修改配置。

cat >/export/servers/hbase-2.4.18/conf/hbase-site.xml <<EOF
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.tmp.dir</name><value>/export/data/hbase2.4.18</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.rootdir</name><value>hdfs://hadoop1:9000/hbase</value></property><property><name>hbase.zookeeper.quorum</name><value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value></property><property><name>hbase.master.port</name><value>16000</value></property><property><name>hbase.master.info.port</name><value>16010</value></property><property><name>hbase.regionserver.port</name><value>16020</value></property><property><name>hbase.regionserver.info.port</name><value>16030</value></property>
</configuration>
EOF

在这里插入图片描述

4.3 修改regionservers配置文件

虚拟机hadoop1修改/export/servers/hbase-2.4.18/conf/regionservers配置文件,配置RegionServer 节点,执行如下命令修改配置。

cat >/export/servers/hbase-2.4.18/conf/regionservers <<EOF
hadoop2
hadoop3
EOF

在这里插入图片描述

4.4 删除hbase中slf4j-reload4j-1.7.33.jar文件

虚拟机hadoop1执行如下命令删除hbase中slf4j-reload4j-1.7.33.jar文件,解决与hadoop中另一个日志jar包相同类的冲突。

rm -f /export/servers/hbase-2.4.18/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar

在这里插入图片描述

5. 虚拟机hadoop2安装并配置HBase

虚拟机hadoop1使用scp命令把虚拟机hadoop1的HBase的安装目录复制到虚拟机hadoop2的相同目录下,就相当于在hadoop2安装并配置了HBase。

scp -r /export/servers/hbase-2.4.18 root@hadoop2:/export/servers/

在这里插入图片描述

6. 虚拟机hadoop3安装并配置HBase

虚拟机hadoop1使用scp命令把虚拟机hadoop1的HBase的安装目录复制到虚拟机hadoop3的相同目录下,就相当于在hadoop3安装并配置了HBase。

scp -r /export/servers/hbase-2.4.18 root@hadoop3:/export/servers/

在这里插入图片描述

7. 配置HBase系统环境变量

7.1 配置虚拟机hadoop1的HBase环境变量

虚拟机hadoop1使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。

echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用Zookeeper的环境变量生效。

source /etc/profile

在这里插入图片描述

7.2 配置虚拟机hadoop2的HBase环境变量

虚拟机hadoop2使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。

echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用Zookeeper的环境变量生效。

source /etc/profile

在这里插入图片描述

7.3 配置虚拟机hadoop3的HBase环境变量

虚拟机hadoop3使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。

echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用Zookeeper的环境变量生效。

source /etc/profile

在这里插入图片描述

8. 启动HBase集群

由于 HBase 使用 HDFS 作为底层文件存储系统,使用 ZooKeeper 来实现多个 RegionServer 之间的一致性和协调,所以在启动 HBase 集群之前需要先启动 Hadoop 集群和 Zookeeper 集群。

启动hadoop集群和zookeeper集群后,在虚拟机hadoop1执行如下命令启动HBase集群。

start-hbase.sh

在这里插入图片描述

9. 进入HBase客户端

执行如下命令进入 HBase 的命令行客户端。

hbase shell

在这里插入图片描述

退出HBase命令行客户端。

exit

在这里插入图片描述

10. 访问 HBase 的 Web UI 页面

10.1 访问 Master 的 UI 页面

浏览器输入http://192.168.121.160:16010即可访问 Master 的 UI 页面。

在这里插入图片描述

10.2 访问 RegionServer 的 UI 页面

浏览器输入http://192.168.121.161:16030即可访问 RegionServer 的 UI 页面。

在这里插入图片描述

浏览器输入http://192.168.121.162:16030即可访问 RegionServer 的 UI 页面。

在这里插入图片描述

11. 停止HBase集群

若要停止HBase集群运行,在虚拟机hadoop1执行如下命令停止HBase集群。

stop-hbase.sh

单独停止 master 和 regionserver
若在虚拟机hadoop1执行stop-hbase.sh命令不能成功停止hbase集群,则在虚拟机hadoop1执行如下命令单独停止master

hbase-daemon.sh stop master

在虚拟机hadoop2和hadoop3执行如下命令单独停止regionserver

hbase-daemon.sh stop regionserver

二、使用shell脚本自动部署Hbase完全分布式(选看)

1. 下载Hbase

点击下载 hbase2.4.18安装包:https://mirrors.huaweicloud.com/apache/hbase/2.4.18/hbase-2.4.18-bin.tar.gz

2. 上传安装包

通过拖移的方式将下载的HBase安装包hbase-2.4.18-bin.tar.gz上传至虚拟机hadoop1的/export/software目录。

在这里插入图片描述

3. 使用shell脚本自动部署Hbase完全分布式

3.1 创建 hadoop1_hbase_install_config.sh 脚本文件并添加脚本内容

虚拟机hadoop1上创建hadoop1_hbase_install_config.sh脚本文件

touch /export/shell/hadoop1_hbase_install_config.sh

添加如下内容:

#!/bin/bash# 定义常量
HBASE_VER="2.4.18"
HBASE_TAR="hbase-${HBASE_VER}-bin.tar.gz"
DATA_DIR="/export/data"
SOFTWARE_DIR="/export/software"
SERVERS_DIR="/export/servers"# 检查hbase是否已解压
if [ -d "${SERVERS_DIR}/hbase-${HBASE_VER}" ]; thenecho "hadoop安装程序已存在,正在删除原安装程序目录..."rm -rf "${SERVERS_DIR}/hbase-${HBASE_VER}"
fi# 检查hbase安装包是否存在
if [ -f ${SOFTWARE_DIR}/${HBASE_TAR} ]; thenecho "hbase安装包存在,正在解压安装包..."# 解压HBase安装包tar -zxvf ${SOFTWARE_DIR}/${HBASE_TAR} -C ${SERVERS_DIR}echo "解压 ${SOFTWARE_DIR}/${HBASE_TAR}${SERVERS_DIR} 目录成功"
elseecho "HBase安装包不存在,请先上传安装包到 ${SOFTWARE_DIR} 目录"exit 1
fi# 修改hbase-env.sh配置文件
echo 'export JAVA_HOME=/export/servers/jdk1.8.0_421' >>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-env.sh
echo 'export HBASE_MANAGES_ZK=false' >>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-env.sh
echo 'export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true' >>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-env.sh# 修改hbase-site.xml配置文件
cat >${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-site.xml <<EOF
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.tmp.dir</name><value>/export/data/hbase2.4.18</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.rootdir</name><value>hdfs://hadoop1:9000/hbase</value></property><property><name>hbase.zookeeper.quorum</name><value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value></property><property><name>hbase.master.port</name><value>16000</value></property><property><name>hbase.master.info.port</name><value>16010</value></property><property><name>hbase.regionserver.port</name><value>16020</value></property><property><name>hbase.regionserver.info.port</name><value>16030</value></property>
</configuration>
EOF
echo "${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-site.xml 配置文件修改成功"# 修改regionservers配置文件
cat >${SERVERS_DIR}/hbase-${HBASE_VER}/conf/regionservers <<EOF
hadoop2
hadoop3
EOF
echo "${SERVERS_DIR}/hbase-${HBASE_VER}/conf/regionservers 配置文件修改成功"# 删除hbase中slf4j-reload4j-1.7.33.jar文件
rm -f ${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar
if [ $? -eq 0 ]; thenecho "${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar 文件删除成功"
elseecho "${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar 文件删除失败,请检查"exit 1
fi# 删除hbase临时数据目录
rm -rf ${DATA_DIR}/hbase${HBASE_VER}# 删除hbase在hdfs上的数据目录
hdfs dfs -rm -r /hbase# 删除hbase在zookeeper上的数据目录
zkCli.sh <<EOF
deleteall /hbase
quit
EOF# 设置hbase环境变量
echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile
echo "虚拟机Hadoop1的hbase环境变量设置成功"# 分发环境变量配置文件到hadoop2
scp /etc/profile root@hadoop2:/etc/
if [ $? -eq 0 ]; thenecho "分发 /etc/profile 到 hadoop2 的 /etc 目录成功"
elseecho "分发 /etc/profile 到 hadoop2 的 /etc 目录失败,请检查"exit 1
fi# 分发环境变量配置文件到hadoop3
scp /etc/profile root@hadoop3:/etc/
if [ $? -eq 0 ]; thenecho "分发 /etc/profile 到 hadoop3 的 /etc 目录成功"
elseecho "分发 /etc/profile 到 hadoop3 的 /etc 目录失败,请检查"exit 1
fi# 分发安装程序到hadoop2
scp -r ${SERVERS_DIR}/hbase-${HBASE_VER} root@hadoop2:${SERVERS_DIR}/
if [ $? -eq 0 ]; thenecho "分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop2 的 ${SERVERS_DIR} 目录成功"
elseecho "分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop2 的 ${SERVERS_DIR} 目录失败,请检查"exit 1
fi# 分发安装程序到hadoop3
scp -r ${SERVERS_DIR}/hbase-${HBASE_VER} root@hadoop3:${SERVERS_DIR}/
if [ $? -eq 0 ]; thenecho "分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop3 的 ${SERVERS_DIR} 目录成功"
elseecho "分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop3 的 ${SERVERS_DIR} 目录失败,请检查"exit 1
fiecho -e "\n-----hbase 完全分布式安装配置完成-----\n"
echo -e "1. 依次在虚拟机Hadoop1、Hadoop2和Hadoop3执行命令 \e[31msource /etc/profile\e[0m 加载环境变量\n"
echo -e "2. 在虚拟机Hadoop1启动HBase集群:\e[31mstart-hbase.sh\e[0m\n"
echo -e "3. 若要停止hbase集群,在虚拟机Hadoop1执行:\e[31mstop-hbase.sh\e[0m\n"exit 0

在这里插入图片描述

3.2 添加可执行权限

虚拟机hadoop1上给脚本文件/export/shell/hadoop1_hbase_install_config.sh添加可执行权限。

chmod +x /export/shell/hadoop1_hbase_install_config.sh

在这里插入图片描述

3.3 执行脚本

虚拟机hadoop1上执行脚本文件自动化安装配置zookeeper完全分布式。

/export/shell/hadoop1_hbase_install_config.sh

执行完成如下图所示。

在这里插入图片描述

4. 加载环境变量

根据使用shell脚本自动安装完成后的提示依次在虚拟机hadoop1、hadoop2和hadoop3执行如下命令加载环境变量。

source /etc/profile

在这里插入图片描述

5. 启动HBase集群

由于 HBase 使用 HDFS 作为底层文件存储系统,使用 ZooKeeper 来实现多个 RegionServer 之间的一致性和协调,所以在启动 HBase 集群之前需要先启动 Hadoop 集群和 Zookeeper 集群。

启动hadoop集群和zookeeper集群后,在虚拟机hadoop1执行如下命令启动HBase集群。

start-hbase.sh

在这里插入图片描述

6. 进入HBase客户端

执行如下命令进入 HBase 的命令行客户端。

hbase shell

在这里插入图片描述

退出HBase命令行客户端。

exit

在这里插入图片描述

7. 访问 HBase 的 Web UI 页面

7.1 访问 Master 的 UI 页面

浏览器输入http://192.168.121.160:16010即可访问 Master 的 UI 页面。

在这里插入图片描述

7.2 访问 RegionServer 的 UI 页面

浏览器输入http://192.168.121.161:16030即可访问 RegionServer 的 UI 页面。

在这里插入图片描述

浏览器输入http://192.168.121.162:16030即可访问 RegionServer 的 UI 页面。

在这里插入图片描述

8. 停止HBase集群

若要停止HBase集群运行,在虚拟机hadoop1执行如下命令停止HBase集群。

stop-hbase.sh

单独停止 master 和 regionserver
若在虚拟机hadoop1执行stop-hbase.sh命令不能成功停止hbase集群,则在虚拟机hadoop1执行如下命令单独停止master

hbase-daemon.sh stop master

在虚拟机hadoop2和hadoop3执行如下命令单独停止regionserver

hbase-daemon.sh stop regionserver

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/12979.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV与AI深度学习 | 基于YoloV11自定义数据集实现车辆事故检测(有源码,建议收藏!)

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;基于YoloV11自定义数据集实现车辆事故检测 在智能交通系统领域&#xff0c;实时检测车辆事故的能力变得越来越重要。该项目利用先进的计算机视…

Stable Diffusion 秋叶整合包:Deoldify 插件安装不上的处理办法

打开文件 install.py&#xff0c;参见下图&#xff1a; 把 fasiai 的版本号改成 1.0.61 即可。参见下图&#xff1a;

windows下qt5.12.11使用ODBC远程连接mysql数据库

1、下载并安装mysql驱动,下载地址:https://dev.mysql.com/downloads/ 2、配置ODBC数据源,打开64位的ODBC数据源配置工具:

7+纯生信,单细胞识别细胞marker+100种机器学习组合建模,机器学习组合建模取代单独lasso回归势在必行!

影响因子&#xff1a;7.3 研究概述&#xff1a; 皮肤黑色素瘤&#xff08;SKCM&#xff09;是所有皮肤恶性肿瘤中最具侵袭性的类型。本研究从GEO数据库下载单细胞RNA测序&#xff08;scRNA-seq&#xff09;数据集&#xff0c;根据原始研究中定义的细胞标记重新注释各种免疫细胞…

World of Warcraft [WeakAuras]Barney Raid Kit - Collapsing Star Indicator

https://wago.io/BarneyCS 黄色数字表示需要修的血量。 绿色数字表示停止修血。 红色数字表示修血过量&#xff0c;以及该坍缩星将在大爆炸读条结束前多少秒爆炸。 Numbers in yellow means damage required. Numbers in green means HP is good, dont damage anymore. Numbers…

丹摩征文活动 | 0基础带你上手经典目标检测模型 Faster-Rcnn

文章目录 &#x1f34b;1 引言&#x1f34b;2 平台优势&#x1f34b;3 丹摩平台服务器配置教程&#x1f34b;4 实操案例&#xff08; Faster-rcnn 项目&#xff09;&#x1f34b;4.1 文件处理&#x1f34b;4.2 环境配置&#x1f34b;4.3 训练模型&#x1f34b;4.4 数据保存并导…

17.UE5丰富怪物、结构体、数据表、构造函数

2-19 丰富怪物&#xff0c;结构体、数据表格、构造函数_哔哩哔哩_bilibili 目录 1.结构体和数据表格 2.在构造函数中初始化怪物 3.实现怪物是否游荡 1.结构体和数据表格 创建蓝图&#xff1a;结构体蓝图 在结构体蓝图中添加变量&#xff0c;如下所示&#xff0c;为了实现不…

基于SpringBoot+Vue实现剧本杀服务平台【源码+LW+PPT+部署】

作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参与学生毕业答辩指导&#xff0c;…

企业系统集成方案:吉客云与金蝶云星空的无缝对接

企业系统集成方案&#xff1a;吉客云与金蝶云星空的无缝对接 项目背景&#xff1a; 一家领先的3C数码电子产品企业&#xff0c;专注于充电宝、按摩仪等高科技产品的自主研发、设计、生产和销售。企业紧跟市场趋势&#xff0c;积极拓展国内外市场&#xff0c;业务覆盖亚洲、美…

Hi3516CV610 超高清智慧视觉 SoC 产品简介

Hi3516CV610 Hi3516CV610 超高清智慧视觉SoC 内置人脸检测、人形检测、车辆检测、宠物检测、包裹检测算法 总体介绍 Hi3516CV610是一颗应用在安防市场的IPC SoC。在开放操作系统、新一代视频编解码标准、 网络安全和隐私保护、人工智能方面引领行业发 展&#xff0c;主要面…

【短视频内容管理系统的源代码解析与技术交流】

打造短视频矩阵源码&#xff0c;优化细节决胜负 开发和部署短视频矩阵源代码实际上并不复杂。它主要依赖于抖音平台提供的开放权限进行研发&#xff0c;市场上常见的代码功能架构也大同小异。关键在于细节处理和产品优化上的差异。 例如&#xff1a; 1. 在视频制作模块中&…

PH热榜 | 2024-11-12

DevNow 是一个精简的开源技术博客项目模版&#xff0c;支持 Vercel 一键部署&#xff0c;支持评论、搜索等功能&#xff0c;欢迎大家体验。 在线预览 1. Spiky 标语&#xff1a;实时洞察&#xff0c;助力销售决策更快更明智。 介绍&#xff1a;Spiky AI 帮你用实时指导提升团…

C++ 关于基于范围的for循环(C++11) 语法 详解

范围for的语法 在 C98 中如果要遍历一个数组 void TestFor() { int array[] { 1, 2, 3, 4, 5 }; for (int i 0; i < sizeof(array) / sizeof(array[0]); i)array[i] * 2; for (int* p array; p < array sizeof(array)/ sizeof(array[0]); p)cout << *p <<…

【入门篇】判断推理是否有效的实例2——多语言版

跳转原题&#xff1a;判断推理是否有效的实例2 问题分析 根据题目给出的推理逻辑&#xff0c;我们有以下几个条件&#xff1a; 如果张老师来了&#xff08;(P)&#xff09;&#xff0c;问题可以解答&#xff08;(R)&#xff09;&#xff1a;(P \rightarrow R)如果李老师来了&…

5GAP模型:探寻服务质量问题的产生源头

| 91%的消费者表示&#xff0c;他们更有可能在获得卓越的服务体验后再次购买——Salesforce Research 一、什么是5GAP模型&#xff1f; 5GAP模型&#xff0c;指的是服务质量差距模型&#xff08;Service Quality Model&#xff09;&#xff0c;它是由美国营销学家帕拉休拉曼、…

期刊论文查重率多少,才会不被认定为学术不端?

Q问&#xff1a;论文查重和学术不端具有紧密的相关性&#xff0c;但是被认定为学术不端的查重率的界限是什么&#xff1f; A答&#xff1a;关于论文和查重&#xff0c;虽然这两者之间有着“说不清也道不明”的关系&#xff0c;这其中很重要的一个原因是很多人对查重都有一定的…

JAVA中重写与重载的极简区别

重载就是同样的一个方法能够根据输入数据的不同&#xff0c;做出不同的处理重写就是当子类继承自父类的相同方法&#xff0c;输入数据一样&#xff0c;但要做出有别于父类的响应时&#xff0c;你就要覆盖父类方法 方法的重写(Overriding)和重载(Overloading)是java多态性的不同…

[Linux]:IO多路转接之epoll

1. IO 多路转接之epoll 1.1 epoll概述 epoll是Linux内核为处理大规模并发网络连接而设计的高效I/O多路转接技术。它基于事件驱动模型&#xff0c;通过在内核中维护一个事件表&#xff0c;能够快速响应多个文件描述符上的I/O事件&#xff0c;如可读、可写、异常等&#xff0c;…

从0开始学习Linux——用户管理

往期目录&#xff1a; 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 从0开始学习Linux——Yum工具 从0开始学习Linux——远程连接工具 从0开始学习Linux——文件目录 从0开始学习Linux——网络配置 从0开…

Docker 安装Immich教程

Immich 是一个开源的自托管照片和视频管理平台,专为帮助用户存储、管理、和分享个人媒体库而设计。Immich 的目标是提供一个类似 Google Photos 的替代方案,但不依赖于第三方服务,用户可以完全控制自己的数据。 本章教程,记录如何用Docker部署安装Immich,使用的操作系统的…