记录配置Hadoop+zookeeper+Hbase的完整过程(六)

xiaoxiao2021-02-28  86

前面完成了Hadoop集群的搭建,这篇文章记录zookeeper和Hbase的配置过程,相对搭建Hadoop集群来说比较简单。在配置之前用sbin/start-all.sh启动hadoop集群。(注意必须先关闭三台机器的防火墙) 1、下载zookeeper和Hbase

zookeeper下载地址:https://zookeeper.apache.org/releases.html#download Hbase下载地址:http://www.apache.org/dyn/closer.cgi/hbase/ 我使用的是zookeeper-3.4.9.tar.gz,Hbase-1.2.5-bin.tar.gz

2、安装zookeeper

进入安装文件所在目录,解压缩,执行命令如下

[zfy@master hadoop]$ cd [zfy@master ~]$ cd hadoop/ [zfy@master hadoop]$ ls dfs hbase-1.2.5-bin.tar.gz tmp hadoop-2.7.3 jdk1.8.0_121 zookeeper-3.4.9.tar.gz hadoop-2.7.3.tar.gz jdk-8u121-linux-x64.tar.gz [zfy@master hadoop]$ tar -zxvf zookeeper-3.4.9.tar.gz

3、修改配置文件

进入zookeeper安装目录下的conf目录,复制zoo-simple.cfg 文件,重命名为zoo.cfg,编辑 zoo.cfg文件。命令如下:

[zfy@master hadoop]$ cd zookeeper-3.4.9 [zfy@master zookeeper-3.4.9]$ cd conf [zfy@master conf]$ ls configuration.xsl log4j.properties zoo_sample.cfg [zfy@master conf]$ cp zoo_sample.cfg zoo.cfg [zfy@master conf]$ ls configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg [zfy@master conf]$ gedit zoo.cfg

在zoo.cfg尾部添加三行:

server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888

server.id=host:port:port标识不同的ZooKeeper服务器 4、创建标识文件

在/home/zfy/hadoop/目录下创建data文件夹,在data目录下新建文件myid,文件的内容为以上对应的server.id中的id,即master中的id为1,slave1中的id为2,slave2中的id为3,并把zoo.cfg文件中dataDir的值改为myid所在目录,如下

dataDir=/home/zfy/hadoop/data/

5、将zookeeper安装目录拷贝给另外两个节点

命令如下

[zfy@master hadoop]$ scp -r zookeeper-3.4.9 slave1:/home/zfy/hadoop/ [zfy@master hadoop]$ scp -r zookeeper-3.4.9 slave2:/home/zfy/hadoop/

在slave1和slave2中也要建立相应的myid文件

6、开启zookeeper服务

在每一台机器上,进入zookeeper安装目录执行如下命令

[zfy@master zookeeper-3.4.9]$ bin/zkServer.sh start

出现如图结果

9、安装Hbase

进入hbase压缩包所在目录,执行命令

[zfy@master hadoop]$ tar -zxvf hbase-1.2.5-bin.tar.gz

10、修改配置文件

进入hbase的配置目录,在hbase-env.sh文件里面加入java环境变量.即:

export JAVA_HOME=/home/zfy/hadoop/jdk1.8.0_121/

添加变量:

export HBASE_MANAGES_ZK=false

编辑hbase-site.xml ,在conf/hbase-site.xml中configuration标签之间添加如下代码:

<property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> <!--hbase目录的位置,打开之后,你会发现eclipse的hadoop目录里边多了个hbase目录--> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <!--分布式集群--> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> <!--这是集群里边的机器--> </property> <property> <name>dfs.replication</name> <value>1</value> <!----> </property>

编辑配置目录下面的文件regionservers,这个是连接远程服务器的名单,加入如图所示内容

11、把Hbase复制到其他机器

命令如下

[zfy@master hadoop]$ scp -r hbase-1.2.5 slave1:/home/zfy/hadoop/ [zfy@master hadoop]$ scp -r hbase-1.2.5 slave2:/home/zfy/hadoop/

12、开启hbase服务

命令如下: master中:在hbase安装目录下执行:bin/start-hbase.sh

13、集群的启动和关闭

在配置好hadoop+zookeeper+hbase之后 启动顺序为hadoop->zookeeper->hbase 命令分别如下: master中:在hadoop安装目录下执行:sbin/start-all.sh 每个机器上:在zookeeper安装目录下执行:bin/zkServer.sh start master中:在hbase安装目录下执行:bin/start-hbase.sh

关闭顺序为hbase>zookeeper>hadoop 命令分别如下 master中:在hbase安装目录下执行:bin/stop-hbase.sh 每个机器上:在zookeeper安装目录下执行:bin/zkServer.sh stop master中:在hadoop安装目录下执行:sbin/stop-all.sh

14、验证是否配置成功

启动后三个虚拟机中的进程情况如图所示

在master中,hbase安装目录下执行如下命令

[zfy@master hbase-1.2.5]$ bin/hbase shell

进入shell后,执行status命令,若结果如图所示,则说明配置成功

如出错,相关解决方法参考http://www.cnblogs.com/likehua/p/3850253.html

补充 刚配置完能够启动成功,但是当我关机后,再重新启动集群启动Hbase啥的,在执行Hbase shell 命令时,竟然报错了,错误内容如下:

starting master, logging to /home/hadoop/hbase-1.2.4/bin/../logs/hbase-hadoop-master-hd1.out Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0

然后在shell 里执行status命令,不能显示正确的内容,查了很久,发现是JDK版本的问题,我用的版本是jdk1.8,在Hbase的配置文hbase-*/conf/hbase-env.sh中,有这么几行内容,

注释语句的意思是Permsize只在JDK版本为1.7时需要,如果你用的是1.8 版本,可以把它移除,所以,只要注释掉下面的两行export语句即可正常启动hbase. ps: 这已经不是第一次被jdk版本坑害了…..我大概是有新版强迫症,什么软件都想着用最新的,想当初开发web程序也是因为用了最新版的jdk死活不出正确结果T.T

转载请注明原文地址: https://www.6miu.com/read-73722.html

最新回复(0)