第一部分 安装前准备
1.安装hadoop
今天刚刚学了hbase的一点基础,准备安装Hbase实际操练一下。因为安装hbase的前提条件是已经成功安装了hadoop,而且hadoop的版本要和hbase的版本相匹配。于是去官网查询了一下我安装的hadoop-3.1.0(目前是最新版)对应支持的hbase版本,然后。。。。。发现没有任何一版hbase是支持hadoop-3.1.0的,默默泪奔。。。。。果然最新的不一定是最好的。
查看hbase与hadoop的版本匹配情况:http://hbase.apache.org/book.html#hadoop
于是乎,又重温了一下hadoop的安装过程。这次我安装的是Hadoop-2.7.7。步骤看这里。
2.安装zookeeper
我这里安装的是单机模式。版本是zookeeper-3.4.9.tar.gz。步骤看这里。
第二部分 安装Hbase单机模式
1.将安装包上传到/usr/local目录下,解压缩,重命名,添加&生成环境变量
[root@hadoop ~]# cd /usr/local/ [root@hadoop local]# tar xzvf hbase-2.1.0-bin.tar.gz #解压缩 [root@hadoop local]# mv hbase-2.1.0 hbase #重命名 [root@hadoop local]# vi /etc/profile #添加环境变量 添加变量:export HBASE_HOME=/usr/local/hbase 然后在PATH变量后面添加::$HBASE_HOME/bin [root@hadoop local]# source /etc/profile #s生成环境变量
2.修改几个配置文件
第一个:hbase-env.sh
[root@hadoop local]# cd /usr/local/hbase/conf/ [root@hadoop conf]# vi hbase-env.sh #将以下4个变量取消注释,修改参数如下 export JAVA_HOME=/usr/java export HBASE_CLASSPATH=/usr/local/hbase/conf export HBASE_PID_DIR=/var/hadoop/pids export HBASE_MANAGES_ZK=false #不使用HBase自带的zookeeper
第二个:zoo.cfg
在这里我们使用的不是HBase自带的zookeeper,而是之前已经装好的,所以需要将我们现在的zookeeper的zoo.cfg文件复制到hbase的conf目录下
[root@hadoop conf]# cp /usr/local/zookeeper/conf/zoo.cfg /usr/local/hbase/conf/
第三个: hbase-site.xml
[root@hadoop conf]# vi hbase-site.xml #添加如下内容 <property> <name>hbase.rootdir</name> <value>hdfs://hadoop:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop:2181</value> </property> <property> <name>hbase.tmp.dir</name> <value>/var/hbase/</value> </property> <property> <name>hbase.master</name> <value>hadoop:60000</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/hbase/zookeeper</value> </property>
第四个:regionservers
[root@hadoop conf]# vi regionservers #修改为主机名
hadoop
第三部分 Hbase简单操作
1.启动HBase。在master节点上运行 start-hbase.sh
[root@hadoop ~]# start-all.sh #启动hadoop [root@hadoop ~]# zkServer.sh start #启动zookeeper [root@hadoop ~]# zkServer.sh status #查看zookeeper状态以及角色 [root@hadoop ~]# start-hbase.sh #启动Hbase [root@hadoop ~]# jps #HBase启动成功:显示HMaster和HRegionServer #hadoop启动成功:显示NameNode、SecondaryNameNode、DataNode、ResourceManager和NodeManager #zookeeper启动成功:显示QuorumPeerMain 11840 HRegionServer 9313 SecondaryNameNode 12037 Jps 9030 NameNode 11718 HMaster 10055 QuorumPeerMain 9128 DataNode 9465 ResourceManager 9564 NodeManager
2.进入shell模式
[root@hadoop ~]# hbase shell #进入shell模式 ... hbase(main):001:0> status #查看HBase运行状态 1 active master, 0 backup masters, 1 servers, 0 dead, 2.0000 average load Took 11.4351 seconds hbase(main):002:0> exit #退出 [root@hadoop ~]#
3.停止HBase。在master节点上运行 stop-hbase.sh
[root@hadoop ~]# stop-hbase.sh #关闭Hbase [root@hadoop local]# zkServer.sh stop #关闭zookeeper [root@hadoop local]# stop-all.sh #关闭hadoop [root@hadoop local]# jps #查看
第四部分 一些问题
1.启动HBase时报错:没有那个文件或目录
[root@hadoop conf]# start-hbase.sh /usr/local/hbase/bin/hbase:行645: /usr/local/java/bin/java: 没有那个文件或目录 running master, logging to /usr/local/hbase/logs/hbase-root-master-hadoop.out hadoop: running regionserver, logging to /usr/local/hbase/bin/../logs/hbase-root-regionserver-hadoop.out hadoop: /usr/local/hbase/bin/../bin/hbase:行645: /usr/local/java/bin/java: 没有那个文件或目录
原因:hbase-env.sh中JAVA_HOME配置错误,其应该与/etc/profile文件中的JAVA_HOME一致。
解决方法:我的/etc/profile文件中的JAVA_HOME路径为/usr/java,而在hbase-env.sh文件中却写成了/usr/local/java,因而才找不到目录。把hbase-env.sh文件中的AVA_HOME路径改为/usr/java后,重启HBase,成功!