当前位置:   article > 正文

大数据集群环境部署(Hadoop-3.3.1 + Hive-3.1.2 + HBase-2.4.4)_hadoop3.3.1和hive对应版本

hadoop3.3.1和hive对应版本

大数据集群环境部署

Hadoop
# 安装解压,移动到/usr/local/src/

export HADOOP_HOME=/usr/local/src/hadoop-3.3.1
export JAVA_HOME=/usr/local/src/jdk1.8.0_211
export export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH

# 使用source命令让立即生效
source /etc/profile

# 测试是否安装成功
hadoop version

# 本次测试所用软件及环境
1、CentOS-7
2、VMware-15
3、Jdk-1.8
4、Mysql-5.7
5、Hadoop-3.3.1
6、Hive-3.1.2
7、HBase-2.4.4
8、Zookeeper-3.4.10
1、下载Hadoop
2、安装3个虚拟机实现ssh面密码登陆
2.1 安装3个虚拟机
# 使用的Linux系统是Centos7,安装三个机器(我们操作时使用root用户)
#用ifconfig命令查看3台机器的ip
# 如果没有ifconfig命令可以使用ip addr命令


#  设置机器名称

为了方便使用,必须正确设置机器名称和ip对应,使用 hostname 命令,查看机器名称

观察是不是自己想要设置的机器名称,如果不是则使用 hostname (你的机器名)

例应为: hostname gm.com

再使用hostname命令,观察是否更改

类似的,更改其他两台机器gm.com-1和gm.com-2

# 配置/etc/hosts文件

修改3台机器的/etc/hosts文件,向文件中添加以下内容

192.168.1.85 gm.com
192.168.5.93 gm.com-1
192.168.5.94 gm.com-2
IP号为自己机器名对应的IP

# 给三台机器生成密钥文件
使用命令 ssh-keygen  -t   rsa   -P  ''
回车至生成文件

因为是root用户,密钥文件保存到了/root/.ssh/目录下,可以使用命令查看:

ls /root/.ssh/

该目录下生成两个文件文件 id_rsa 和 id_rsa.pub

# 在gm.com上创建authorized_keys文件
接下来将3台机器的/root/.ssh/目录下都存入一个相同文件,文件名authorized_keys,内容为刚刚生成的密钥。

使用命令 touch  /root/.ssh/authorized_keys 生成文件
使用命令 ls /root/.ssh/ 查看是否生成文件
使用命令 vi authorized_keys 并将三个主机中的/root/.ssh/id_rsa.pub内容复制ji进去
我的 authorized_keys文件显示为三个主机/root/.ssh/id_rsa.pub的内容
最后保存后,将gm.com中的authorized_keys文件复制到gm.com-1,gm.com-2
可以使用 xftp 工具

# 在gm.com上进行测试
输入命令 ssh gm.com-1 
键入 y 后,显示如下内容则证明ssh成功
输入命令 exit 退出 ssh 远程连接
再键入 ssh gm.com-2
最后在gm.com-1、gm.com-2上进行同样的测试,保证三台机器之间可以免密登陆

# 安装Java和Hadoop
1 安装jdk

2 安装hadoop

在opt下新建hadoop文件,并将hadoop-3.3.1.tar.gz放入

进入该目录 cd /opt/hadoop

解压该文件 tar -zxvf  hadoop-3.3.1.tar.gz
移动至 mv hadoop-3.3.1 /usr/local/src/

注:三台机器都需要进行上述操作 *** 重点



# 3 修改etc/hadoop中的配置文件
注:除了个别提示,其余文件只用修改gm.com中的即可

# 3.1 修改core-site.xml

文件最后<configuration> </configuration> 替换为

<configuration>
        <property>
  <name>fs.defaultFS</name>
 <!-- gm.com为当前机器名或者ip号 -->
  <value>hdfs://gm.com:9000</value>
 </property>
 <property>
  <name>hadoop.tmp.dir</name>
    <!-- 以下为存放临时文件的路径 -->
  <value>/usr/local/src/hadoop-3.3.1/data/tmp</value>
 </property>
</configuration>
# 3.2 修改hadoop-env.sh
将export   JAVA_HOME=${JAVA_HOME}

         修改为:

export   JAVA_HOME= 你jdk的安装路径

# 以下为我的设置 
# 该文件的配置需要三台机器都配置

# 3.3 修改hdfs-site.xml
# 文件最后<configuration> </configuration> 替换为
<configuration>
<property>
  <name>dfs.namenode.http-address</name>
 <!-- gm.com 修改为你的机器名或者ip -->
  <value>gm.com:50070</value>
 </property>
 <property>
  <name>dfs.namenode.name.dir</name>
  <value>/hadoop/name</value>
 </property>
 <property>
  <name>dfs.replication</name>
   <!-- 备份次数 -->
  <value>2</value>
 </property>
 <property>
  <name>dfs.datanode.data.dir</name>
  <value>/hadoop/data</value>
 </property>
 
# 3.4 修改mapred-site.xml
文件最后<configuration> </configuration> 替换为

<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
</configuration>

# 3.5 修改 workers
全部删除后加入之前设置的主机名或者ip

gm.com
gm.com-1
gm.com-2

# 3.6 修改yarn-site.xml文件
文件最后<configuration> </configuration> 替换为

<configuration>
<!-- Site specific YARN configuration properties -->
 <property>
  <name>yarn.resourcemanager.hostname</name>
<!-- 你的机器号或者ip -->
  <value>gm.com</value>
 </property>
 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
 <property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>
<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
<!-- cpu个数 需要根据当前机器cpu设置 -->
    <value>1</value>
 </property>
 
</configuration>

# 启动Hadoop
1 在namenode上初始化
因为gm.com是namenode,gm.com-1和gm.com-2都是datanode,所以只需要对gm.com进行初始化操作,也就是对hdfs进行格式化。

在gm.com中进入 /usr/local/src/hadoop-3.3.1/bin 执行 cd   /usr/local/src/hadoop-3.3.1/bin

 执行初始化脚本,也就是执行命令:./hdfs namenode  -format

等待一会后,不报错返回 “Exiting with status 0” 为成功,“Exiting with status 1”为失败

2 在namenode上执行启动命令
进入gm.com中的/usr/local/src/hadoop-3.3.1/sbin 执行cd    /usr/local/src/hadoop-3.3.1/sbin

直接执行./start-all.sh 观察是否报错,如报错执行一下内容

$ vim sbin/start-dfs.sh
$ vim sbin/stop-dfs.sh

在空白位置加入

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

 

$ vim sbin/start-yarn.sh 
$ vim sbin/stop-yarn.sh 

在空白位置加入
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

 

$ vim start-all.sh

$ vim stop-all.sh

TANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

配置完毕后执行./start-all.sh

3 查看Hadoop进程
输入命令 jps
如果出现6个进程则为配置正确

输入http://192.168.1.85:50070 则可以看到

 

hdfs dfsadmin -safemode leave;    //退出安全模式

hdfs dfsadmin -safemode get;    //查看安全模式状态
 
hdfs dfsadmin -safemode forceExit;   //强制退出安全模式


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
Java
# 因为Hadoop是用Java语言编写的,所以计算机上需要安装Java环境,我在这使用JDK 1.8.0_211(推荐使用Sun JDK)

# 配置JAVA环境变量,在当前用户根目录下的/etc/profile文件最下面加入以下内容:
export JAVA_HOME=/usr/local/src/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$PATH

# 使用source命令让立即生效
source /etc/profile

# 测试是否安装成功
java -version
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
Hive 3.1.2安装(基于Centos7.x和Hadoop3.3.1)
https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/
  • 1
背景
Hadoop大数据套件被应用后,进行数据处理就必须编写mapreduce代码。而相当一部分大数据处理需求都是进行数据的查询操作(实际数据库的操作中,读写操作比例也有80%:20%的说法)
Facebook的工程师也遇到这个问题。编写mapreduce对于程序员还是有一定门槛,但是会使用sql的人群更庞大。所以Facebook就发明了Hive,一个把sql语句转换为mapreduce代码的转换器。
不过Hive的使用场景,还是会有一些限制。既然是sql语句,则Hive转换的mapreduce所需要处理的数据就需要有结构跟数据库数据一样。同时Hive将sql转换为mapreduce代码是通过类似模板的操作
注意,Hive只是把Sql语句转换为mapreduce代码,也就是一个转换器。所以一般不需要安装集群,安装在一个节点即可。如果担心损坏,一般安装2台,切换者使用也可。
1. 安装环境
Centos7.x 安装教程
Hadoop 3.3.1
yarn安装教程
hdfs安装教程
mysql5.7mysql安装教程
hive 3.1.2
mysql 驱动(mysql-connector-java-5.1.43.jar, 可以去maven或者其他仓库获取)
2. 安装步骤
正常启动HDFS和YARN
在hadoop安装目录的sbin下,有一个start-all.sh脚本,当hdfs和yarn的配置都设置好之后,可以一键启动hdfs和yarn
如果不想使用这个一键启动脚本,也可以分别调用start-dfs.sh和start-yarn.sh2个脚本



安装mysql
查看mysql是否运行
netstat -nltp | grep 3306
tcp 0 0 0.0.0.0:3306
systemctl start mysqld 启动mysql服务
配置mysql的开机自启服务 systemctl enable mysqld
开启远程连接权限
登录mysql:
mysql -uroot -proot
执行sql语句:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1; 这个两个设置以后 密码很简单不会报错
开启远程连接权限:
mysql > grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;
mysql > flush privileges;
mysql启动正常 开启远程连接
可以使用windows安装的navicat连接linux上的mysql服务器验证以下


上传hive的安装包
使用rz软件,或者其他方式如secureCRT的alt+p切换到上传模式,将压缩包上传到第三方软件安装目录下。linux一般第三方软件安装在opt或者usr目录下。我的是安装到/opt/apps目录下
在软件包所在目录下,执行解压缩的shell指令
tar -zxf apache-hive-3.1.2-bin.tar.gz

修改配置信息
在Hive的安装目录下,找到conf目录,我的目录路径如下opt/apps/hive-3.1.2/conf。将原本的脚本重命名.
cp hive-env.sh.template  hive-env.sh

编辑hive-env.sh脚本,添加内容。使用vi命令打开文件
 vi hive-env.sh
修改hive-env.sh
因为 Hive 使用了 Hadoop, 需要在 hive-env.sh 文件中指定 Hadoop 安装路径:
文本中,添加内容如下。第一行是指定hadoop的安装路径,第二行是指定Hive安装目录下的conf目录的路径。
export HADOOP_HOME=/opt/apps/hadoop-3.2.1/
export HIVE_CONF_DIR=/opt/apps/hive-3.1.2/conf/

在运行hive之前,必须创建两个路径/tmp和/user/hive/warehouse后,这样才能在hive中创建库和表
$HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
$HADOOP_HOME/bin/hadoop fs -mkdir -p    /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse


创建一个配置文件(在conf目录下)

执行如下shell命令
vi  hive-site.xml

将以下内容拷贝到这个新创建的xml文件中,注意替换javax.jdo.option.ConnectionURL值的mysql所在主机域名,注意替换mysql的账号和用户名。
<configuration>
<!-- 记录HIve中的元数据信息  记录在mysql中 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://doit01:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>

<!-- jdbc mysql驱动 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>

<!-- mysql的用户名和密码 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>

<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>

<!-- 日志目录 -->
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
</property>

<!-- 设置metastore的节点信息 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://gm.com:9083</value>
</property>

<!-- 客户端远程连接的端口 -->
<property> 
<name>hive.server2.thrift.port</name> 
<value>10000</value>
</property>
<property> 
<name>hive.server2.thrift.bind.host</name> 
<value>0.0.0.0</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>0.0.0.0</value>
</property>

<!-- hive服务的页面的端口 -->
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>

<property> 
<name>hive.server2.long.polling.timeout</name> 
<value>5000</value>                               
</property>

<property>
<name>hive.server2.enable.doAs</name>
<value>true</value>
</property>

<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>

<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>

<property>
<name>hive.execution.engine</name>
<value>mr</value>
</property>

</configuration>

编辑Hadoop安装目录中,配置文件中的core-site.xml文件,我的路径如下/opt/apps/hadoop-3.3.1/etc/hadoop/core-site.xml
执行以下shell命令,使用vi打开这个文件(如果喜欢vim,也可以使用yum 安装vim软件,比vi更强大,可配置更多功能)
vi /opt/apps/hadoop-3.3.1/etc/hadoop/core-site.xml 

打开后,在中添加以下三条配置信息,这些是关于hdfs的访问权限配置信息。
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>

<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

拷贝一个mysql的jdbc驱动jar包到hive的lib目录中
将上面提到的mysql的驱动jar包,拷贝到Hive安装目录的lib目录下

重启Hadoop的hdfs和yarn
cd到Hadoop安装目录下的sbin目录,有一键停止hdfs和yarn的脚本

执行以下shell脚本
 stop-all.sh 
 start-all.sh
补充,实际一键启动和停止脚本本身内容就是分别调用了单独启动hdfs和yarn的脚本


解决hadoop3.3.1和hive3.1.2的冲突问题
先把hive的lib目录下的guava-19.jar删除或者加一个后缀名如.bak
rm -rf  xxx 这是删除指令
mv xxx xxx.bak这是修改文件名指令(在jar包文件后加.bak后缀,就可以让系统不再认为这是一个jar包,和删除一样的效果)

再从Hadoop的安装目录下拷贝更高版本的guava的jar包到hive的lib目录下,具体路径如下
hdfs下的guava所在路径:/opt/apps/hadoop-3.3.1/share/hadoop/common/lib/guava-27.0-jre.jar
hive中放置guava jar包路径: /opt/apps/hive-3.1.2/lib/
cp  /opt/apps/hadoop-3.2.1/share/hadoop/common/lib/guava-27.0-jre.jar  /opt/apps/hive-3.1.2/lib/

启动元数据服务(暂时不要执行这条指令,否则会报错)  hive --service metastore
后期运行可后台启动,防止窗口关闭,元数据服务关闭 nohup hive --service metastore &

本身Hadoop 3.3.1可以和Hive3.1.2完美兼容,但是Hadoop3.3.1和Hive3.1.2就不是很兼容,需要解决jar包冲突,这里执行这个指令,会报错。如果执行了,请忽略,继续执行下面的步骤。

初始化hive的元数据库
在Hive的bin目录下,执行以下shell指令。如果细心可以使用ll -a,会发现schematool 是一个可执行文件,文件读写执行的三个权限,最后一个权限是x,可执行。
./schematool -initSchema -dbType  mysql

这时候,在mysql数据库中,多出一个hive数据库 ,这是记录元数据信息的
这时候,在HDFS中的目录中, 根目录下有一个user目录,路径:/user/hive
在linux中配置hive的环境变量
linux的环境变量都是在/etc/profile文件中,注意linux的环境变量分割符号是冒号: windows操作系统环境变量分隔符是分号;
执行以下shell命令

打开配置文件
vi /etc/profile

在文件中添加环境变量
export  HIVE_HOME=/opt/apps/hive-3.1.2

让配置文件生效
source /etc/profile

启动hive
在Hive的bin目录下,或者任务路径下,输入 hive 这个指令,就可以启动Hive
出现如下效果,说明安装成功

输入以下sql语句,进行功能验证
show databases;
create database db_doit;
create table if not exists tb_user (id int , name string) ; 
show tables ;


# 修改版本编号
select * from VERSION;
update VERSION set VERSION_COMMENT='3.1.2' where  VER_ID=1;
update VERSION set SCHEMA_VERSION='3.1.2' where  VER_ID=1;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
HBase
# 安装路径
wget https://mirrors.cnnic.cn/apache/hbase/2.4.4/hbase-2.4.4-bin.tar.gz

1. 安装环境
Centos 7.x 
Jdk 1.8
ZK 3.4.4
Hadoop 3.3.1

下载完成后,解压后移至/usr/local/src/
tar -zxvf hbase-2.4.4-bin.tar.gz
mv hbase-2.4.4 /usr/local/src/


scp -r zookeeper-3.4.10/ root@gm.com-2:/usr/local/src
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
配置环境变量
# vim /etc profile 
# 文件中追加以下内容  
export HBASE_HOME=/home/hbase-2.4.4
export PATH=$HBASE_HOME/bin:$PATH

# 保存退出,然后source /etc/profile刷新以下环境变量
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
修改配置文件
cd /usr/local/src/hbase-2.4.4/conf
vi hbase-env.sh

# 加入如下配置
export JAVA_HOME=/usr/local/src/jdk1.8.0_211/
export HBASE_LOG_DIR=/usr/local/src/hbase-2.4.4/logs
export HBASE_MANAGES_ZK=false  # 关闭HBase自动单机版ZK
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
vi hbase-site.xml

#加入如下配置

<configuration>
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://192.168.1.85:9000/hbase</value>
  <description>指定Region服务器共享的目录,用来持久存储HBase的数据,URL必须完全正确,其中包含了文件系统的schema。默认值"${hbase.tmp.dir}/hbase"</description>
 </property>
 
<!--HBase的运行模式,false是单机模式,true是分布式模式,若为false则hbase和zk回运行在一个jvm中-->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!--本地文件的存放目录-->
  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <property>
    <name>hbase.wal.provider</name>
    <value>filesystem</value>
  </property>
<!--  <property>-->
<!--        <name>dfs.replication</name>-->
<!--        <value>3</value>-->
<!--        <description>-->
<!--         </description>-->
<!-- </property>-->
 <property>
   <name>hbase.zookeeper.quorum</name>
   <value>gm.com:2181,gm.com-1:2181,gm.com-2:2181</value>
   <description>配置zookeeper集群地址,不要指定znode路径,HBase会默认将元数据放在根znode</description>
 </property>
 <!-- 配置主从节点的心跳超时时间,将允许的最大误差时间设为120秒 -->
<property>
    <name>hbase.master.maxclockskew</name>
    <value>120000</value>
</property>
<!--指定Zookeeper数据存储目录-->
 <property>
   <name>hbase.zookeeper.property.dataDir</name>
   <value>/usr/local/src/zookeeper-3.4.10/data</value>
 </property>
	
 <!-- ********** HMaster相关配置 ********** -->
    <property>
      <name>hbase.master.info.bindAddress</name>
      <value>192.168.1.85</value>
      <description>HBase Master 的 Web UI绑定的地址,默认值为"0.0.0.0"</description>
    </property>

    <property>
      <name>hbase.master.port</name>
      <value>60000</value>
      <description>HBase Master绑定端口,默认值为:"60000"</description>
    </property>

    <property>
       <name>hbase.master.info.port</name>
       <value>16010</value>
       <description>HBase Master的Web UI端口,默认值为:"16010",如果不想启动UI实例,则可以将当前参数设置为-1</description>
    </property>

       <!-- ********** HRegionServer相关配置 ********** -->
     <property>
        <name>hbase.regionserver.port</name>
        <value>16020</value>
        <description>HBase RegionServer绑定的端口,默认值为:"16020".</description>
     </property>

     <property>
        <name>hbase.regionserver.info.port</name>
        <value>16030</value>
        <description>HBase RegionServer的Web UI端口,默认值为:"16030"设置为-1可以禁用HBase RegionServer的Web UI。</description>
        </property>

     <property>
         <name>hbase.regionserver.info.bindAddress</name>
         <value>0.0.0.0</value>
         <description>HBase RegionServer的Web UI地址,默认值为"0.0.0.0"</description>
      </property>
</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
vi regionservers

#加入各节点名称
gm.com
gm.com-1
gm.com-2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
# hbase shell 进入shell脚本界面,操作数据库
  • 1

问题:

1、若报错显示未找到slf4j,请如下操作

http://www.java2s.com/Code/Jar/s/Downloadslf4jnop172jar.htm
slf4j-nop-1.7.2.jar下载地址

2、hadoop配置文件中core-site.xml 与 hbase-site.xml中服务ip名称地址务必一致

查看集群安全模式状态

hdfs dfsadmin -safemode get
# 如果返回Safe mode is OFF 就说明没问题
# 如果返回Safe mode is ON 就说明集群正处于安全模式(强制退出即可)
hdfs dfsadmin -safemode leave

# 如果返回其他就说明集群出问题了 例如 返回如下内容
safemode: Call From hadoop01/192.168.100.100 to hadoop01:8020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

检查之后发现是namenode掉了,重启了一下集群.

建议执行完上述的操作之后重启hbase
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/415713
推荐阅读
相关标签
  

闽ICP备14008679号