hbase需要在hadoop安装成功的基础上来进行,现在我们的机器安装好了hadoop
hadoop安装:http://blog.youkuaiyun.com/codestinity/article/details/6936654
首先安装zookeeper,注意下载的zookeeper版本需要与hadoop版本相对应(同样的,只需要在namenode端进行配置,配置好后发给datanode端即可):
1)下载zookeeper-3.3.3,解压到/home/grid/下面。
2)在/home/grid/下面新建一个文件夹,名为zookeeper,在该目录下新建名为myid的文件(后面会用到)。
3)在zookeeper-3.3.3/conf目录下,拷贝zoo_sample.cfg为zoo.cfg,并修改zoo.cfg文件,如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/home/grid/zookeeper-3.3.3
# the port at which the clients will connect
clientPort=2222
server.1=kiddenhw:2888:3888
server.2=kiddenxcc:2888:3888
server.3=kiddenzj:2888:3888
4)用scp命令将namenode节点的的/home/grid/zookeeper-3.3.3和/home/grid/zookeeper拷贝到其余所有主机的/home/grid/目录下。
5)参照zoo.cfg中的配置,在各主机myid文件中写入各自的编号。如:kiddenhw端将myid文件写入1、kiddenzj端将myid文件写入3、kiddenxcc端将myid文件写入2。
(集群模式下需要配置 myid,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个 server)
6)到此,zookeeper基本配置完成,最后,在所有节点上的zookeeper-3.3.3/bin下执行 zkServer.sh start,分别启动。
WARN [WorkerSender Thread:QuorumCnxManager@384] - Cannot open channel to 1 at election address /XXXXXXXXXXXXXX
java.net.ConnectException: Connection refused
下面来安装配置我们的hbase:
1)下载hbase-0.90.3版本,解压到namenode节点的/home/grid/目录下,同样需要注意对应的版本问题。
2)系统所有配置项的默认设置在hbase-default.xml中查看,我们只需要修改hbase-site.xml:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://kiddenzj:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>kiddenhw,kiddenzj,kiddenxcc</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/grid/tmp/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2222</value>
</property>
</configuration>
hbase.rootdir:hdfs://kiddenzj:9000这部分必须和hadoop/config/core-site.xml中的fs.default.name保持一致;
hbase.zookeeper.property.clientPort,是由于我在zoo.cfg中修改了默认的clientPort,所以在这里要设置为22223)修改hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_29
export HBASE_MANAGES_ZK=true
4)把hadoop/config/hdfs-site.xml文件拷贝至hbase的conf文件夹下。
5)zookeeper/conf/zoo.cfg拷贝至hbase的conf文件夹下。
6)在hbase/conf/regionservers中添加hadoop/config/conf/slaves中所有的datanode节点。
7)删除/hbase-0.90.3/lib/hadoop-core-0.20-append-r1056497.jar,拷贝/hadoop-0.20.2/hadoop-0.20.0-core.jar到/hbase-0.90.3/lib/下来。
8)最后,把配置好的hbase-0.90.3用scp命令发送到各个datanode节点的/home/grid/目录下来。
到此,hbase配置完成:
启动
Hadoop、ZooKeeper和HBase之间应该按照顺序启动和关闭:启动Hadoop—>启动ZooKeeper集群—>启动HBase—>停止HBase—>停止ZooKeeper集
群—>停止Hadoop。
在namenode节点执行bin/hbase-daemon.sh,启动master。执行bin/start-hbase.sh和bin/stop-hbase.sh 脚本启动和停止HBase服务。
测试:
可进入hbase shell,测试:
list 列出所有表
create 建表,如 create 'test','data'
put 插入数据
...(关于hbase的操作可参考网上资料)