[置顶] Hadoop集群之Hbase安装配置

时间:2022-04-22 22:00:59

被虐了一周,终于整理出来hadoop 常用模块安装文档,为了其他人在安装过程中不被虐,把操作记录下来供其他人参考,只有按照以下步骤一步一步走,保证都可以安装成功,hadoop 安装请参考之前编写的文档。

http://blog.csdn.net/haoxiaoyan/article/details/52523749

1.解压软件

tar zxvf hbase-1.1.5-bin.tar.gz 

chown -R hadoop:hadoop hbase-1.1.5

2.配置Hbase

① 修改hbase-env.sh 

vi conf/hbase-env.sh,出掉JAVA_HOME的注释,并修改为本地的

export JAVA_HOME=/usr/java/jdk1.7.0_79

export HBASE_LOG_DIR=/opt/hadoop/hbase-1.1.5/logs

export HBASE_MANAGES_ZK=false

修改HBASE_MANAGES_ZK为false,默认为true,表示HBase托管zookeeper实例,如果是HBase独占的zookeeper,可以设定为true。

② 配置hbase-site.xml文件

vi hbase-site.xml

<configuration>

<property>

    <name>hbase.rootdir</name>

    <value>hdfs://slavenode1:9090/hbase</value> 这个要提前核对下端口是否被占用 ,注意slavenode1是备节点中的一个不是主机点的机器名,这个是备份主

  </property>

  <property>

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

     <value>true</value>

  </property>

  <property>

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

     <value>16000</value>

  </property>

   <property>

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

    <value>/opt/hadoop/hbase-1.1.5/data</value>

  </property>

  <property>

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

    <value>slavenode1,slavenode2,slavenode3</value>

  </property>

  <property>

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

    <value>2181</value>

  </property>

</configuration>

hbase.rootdir:Region Servers共享的HBase持久化数据的存储地址。需要使用包含文件系统scheme的完全限定地址。

hbase.cluster.distributed:指定Hbase集群是否以分布式方式运行。

hbase.master.port:Master绑定的端口,包括backup-master.

hbase.zookeeper.property.dataDir:这个是ZooKeeper配置文件zoo.cfg中的dataDir。zookeeper存储数据库快照的位置。

hbase.zookeeper.quorum:ZooKeeper的所有成员服务器列表,服务器名之间用逗号分隔。

hbase.zookeeper.property.clientPort:这个是ZooKeeper配置文件zoo.cfg中的clientPort。ZooKeeper提供给客户端连接的端口,默认是2181。

③ 修改regionservers,将RegionServers写入。

vim conf/regionservers

Slavenode1

slavenode2

slavenode3 

④ 添加环境变量方便调用HBase

  vim /etc/profile

export HBASE_HOME=/opt/hadoop/hbase-1.1.5

export PATH=$PATH:$HBASE_HOME/bin

⑤ 创建两个目录

[root@masternode hbase-1.1.5]# mkdir logs

[root@masternode hbase-1.1.5]# mkdir data

[root@masternode data]# echo ‘1’> myid 

[root@masternode data]# echo ‘2’> myid 

[root@slavenode2 data]# echo ‘3’> myid 

[root@slavenode3 data]# echo ‘4’> myid

⑥ 将修改好的安装目录分发到所有节点,一并修改环境变量。

[root@masternode hadoop]# scp -r hbase-1.1.5 root@slavenode2:/opt/hadoop/

[root@masternode hadoop]# scp -r hbase-1.1.5 root@slavenode3:/opt/hadoop/

[root@masternode hadoop]# scp -r hbase-1.1.5 root@slavenode1:/opt/hadoop/

⑦ 把/etc/profile ~/.bash_profile 分发各级节点

⑧ 启动HBase

[root@masternode bin]# pwd

/opt/hadoop/hbase-1.1.5/bin   

[root@masternode bin]# sh start-hbase.sh 

在masternode上调用start-hbase即可。

⑨ 通过jps查看进程。

masternode上有HMaster,slavenode1上有HMaster和HRegionServer,slavenode2和slavenode3上是HRegionServer。

⑩ 验证完毕

[root@masternode bin]# ./hbase shell

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/opt/hadoop/hbase-1.1.5/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/opt/hadoop/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

2016-09-08 03:45:45,878 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

HBase Shell; enter 'help<RETURN>' for list of supported commands.

Type "exit<RETURN>" to leave the HBase Shell

Version 1.1.5, r239b80456118175b340b2e562a5568b5c744252e, Sun May  8 20:29:26 PDT 2016

hbase(main):001:0> create 'test', 'cf'

 

总结:

    1. hbase.master.port需要指定,不然启动backup-master时会报Already in use的错误。

    2. HMaster(包括backup-master)需要能够passwordless ssh到其它服务器

    3. ZooKeeper应该用奇数个节点。