您的位置:首页 > 运维架构

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

2017-05-07 13:20 344 查看
前面完成了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所在目
4000
录,如下

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息