hadoop2.6.1+hbase1.4.0完全分布式

写这篇之前已经搭建好一个hadoop集群,集群中有三台服务器,能正常运行。具体见第一篇博文。

 

1.官网下载与hadoop对应的HBASE,我下载的是Hbase-1.4.0-bin.tar.gz,master节点服务器中新建目录/home/hbase,将下载的文件上传至新建的目录下。

 

2.进入新建的目录中,解压下载的文件,

[root@master hadoop]# cd /home/hbase

[root@master hbase]# tar xfzhbase-1.4.0-bin.tar.gz

[root@master hbase]# cd hbase-1.4.0

 

3.修改配置文件,注意这里先在master节点的服务器上操作,配置完后,利用scp命令将文件夹分发给集群中其他节点,这样可以省去每个节点上配置一遍。

 

配置JAVA_HOME。

[root@master conf]# vi hbase-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_131

 

配置使用HBASE自带的ZooKeeper,文件中已有该配置,只是被注释掉了,找到该行去掉注释符号即可。

[root@master conf]# vi hbase-env.sh

export HBASE_MANAGES_ZK=true

 

修改配置文件hbase-site.xml,作如下配置:

[root@master conf]# vi hbase-site.xml

<configuration>

       <property>

               <name>hbase.rootdir</name>

               <value>hdfs://master:9000/hbase</value>

       </property>

       <property>

               <name>hbase.cluster.distributed</name>

                <value>true</value>

       </property>

       <property>

               <name>hbase.master</name>

               <value>master:60000</value>

       </property>

       <property>

               <name>hbase.zookeeper.quorum</name>

               <value>master,slave1,slave2</value>

       </property>

       <property>

               <name>hbase.zookeeper.property.dataDir</name>

               <value>/home/hbase/zookeeper</value>

       </property>

       <property>

               <name>hbase.tmp.dir</name>

               <value>/home/hbase/tmp</value>

       </property>

       <property>

               <name>hbase.master.info.port</name>

               <value>60010</value>

       </property>

</configuration>

 

配置regionservers文件

[root@master conf]# vi regionservers

master

slave1

slave2

 

4.将/home/hbase文件夹发送给两个slave节点,能够正确执行发送的前提是已经配置好ssh免密登录以及hosts文件等。

[root@master home]# scp -r /home/hbaseroot@slave1:/home/hbase/

[root@master home]# scp -r /home/hbaseroot@slave2:/home/hbase/

 

5.在集群中每个节点进行如下配置:

[root@slave2 ~]# vi ~/.bashrc

export HBASE_HOME=/home/hbase/hbase-1.4.0

export PATH=$PATH:$HBASE_HOME/bin

[root@slave2 ~]# source ~/.bashrc

 

6.使用jps查看进程,发现slave1节点和slave2节点没有HregionServer,网上查到的解决办法是将集群时间统一,在每个节点使用如下命令同步时间

[root@master conf]# date -s "2018-1-1011:26:00"

这是一种偷懒的解决办法,应该用ntp统一集群时间,以后想起来在做这一部分吧,^_^

 

7.启动Hbase

[root@master conf]# start-hbase.sh

 

在master节点使用jps命令查看进程

[root@master conf]# jps

23633 HRegionServer

23446 HMaster

28407 SecondaryNameNode

23304 HQuorumPeer

28186 NameNode

23978 Jps

28619 ResourceManager

7693 JobHistoryServer

看到有HMaster、HRegionServer、HQuorumPeer

 

在slave1节点使用jps命令查看进程

[root@slave1 conf]# jps

20304 HRegionServer

6804 DataNode

20522 Jps

20142 HQuorumPeer

6927 NodeManager

看到有HRegionServer、HQuorumPeer

 

8.通过网页查看hbase状态

master节点修改配置文件,加入以下内容

[root@master conf]# vi hbase-site.xml

       <property>

               <name>hbase.master.info.port</name>

               <value>16010</value>

       </property>

 

slave1节点和slave2节点修改配置文件,加入以下内容

[root@slave1 conf]# vi hbase-site.xml

       <property>

               <name>hbase.master.info.port</name>

                <value>16030</value>

       </property>

 

浏览器输入网址:http://master:16010/,即可打开master-status网页

输入http://slave1:16030/ ,即可打开rs-status网页

如果打不开可以将master或slave1替换为服务器的ip地址试试,若还是打不开,可能是版本问题或者其他配置的原因。


在eclipse中将Java程序打成jar包在hadoop上运行时报错:

Exception in thread"main" java.lang.NoClassDefFoundError:org/apache/hadoop/hbase/HBaseConfiguration

网上查到的解决办法是:在hadoop-env.sh文件中添加

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/hbase/hbase-1.4.0/lib/*

并执行命令:source hadoop-env.sh

成功解决


 

 

阅读更多
换一批

没有更多推荐了,返回首页