一. 初始环境
1. hadoop : hadoop-1.2.12. java : jdk1.6.0_45 --> 改为 jdk1.7.0_80
3. hbase : hbase-0.98.24-hadoop1
二. 启动hadoop
hadoop安装目录: /usr/local/src/hbase-0.98.24-hadoop1
1. 格式化hadoop集群
hadoop namenode -format
2.启动集群
start-all.sh
3.检查hadoop启动状态
3.1 在master上执行jps
2615 JobTracker
13386 Jps
2538 SecondaryNameNode
2395 NameNode
3.2 在slave1,slave2节点上执行jps
2306 DataNode
4707 Jps
2385 TaskTracker
3.3 测试集群能否上传与读取文件
命令如下:
#查看hadoop文件列表
hadoop fs -ls /
#上传文件:(自己随便创建一个文件即可)
hadoop fs -put /usr/local/src/test /
#读取文件:
hadoop fs -text /test
三. 下载安装配置hbase
1. 解压到执行目录
tar xzvf hbase-0.98.24-hadoop1-bin.tar.gz -C /usr/local/src/
2. 配置环境变量
vi ~/.bashrc
export HBASE_HOME=/usr/local/src/hbase-0.98.24-hadoop1
export PATH=$HBASE_HOME/bin:$PATH
执行bash,使配置生效
查看环境变量是否生效:
echo $HBASE_HOME
3. 修改配置文件
进入目录:
/usr/local/src/hbase-0.98.24-hadoop1/conf
3.1 修改hbase-env.sh
export JAVA_HOME=/usr/local/src/jdk1.6.0_45
#使用hbase自带的zk
export HBASE_MANAGES_ZK=true
3.2 修改regionservers
添加如下内容:
slave1
slave2
3.3 修改hbase-site.xml
配置如下内容:
<property>
<name>hbase.tmp.dir</name>
<value>/var/hbase</value>
</property>
<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.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/src/hbase-0.98.24-hadoop1/zookeeper</value>
</property>
远程复制到其他两个节点上
scp -rp /usr/local/src/hbase-0.98.24-hadoop1 slave1:/usr/local/src
scp -rp /usr/local/src/hbase-0.98.24-hadoop1 slave1:/usr/local/src
并在slave1,slave2节点上分别配置环境变量
4. 启动hbase
start-hbase.sh
5.查看hbase启动状态
执行命令:
hbase shell
之后执行命令:
status
如出现以下结果,表示hbase启动成功:
hbase(main):009:0> status
1 active master, 0 backup masters, 2 servers, 0 dead, 1.5000 average load
四. 异常总结
在执行hbase命令时,可能会出现
在master,slave1,slave2节点上执行jps,进程启动均是正常,但执行任何hbase命令,都报错.
解决方案:
方法1:
hadoop dfsadmin -safemode leave
这种方法,也是网上找到最多的解决方案,可惜尝试之后,并不起作用;
方法2:
修改JAVA_HOME ,从1.6升级到1.7
#export JAVA_HOME=/usr/local/src/jdk1.6.0_45
export JAVA_HOME=/usr/local/src/jdk1.7.0_80
特别说明:此处只是修改了~/.bashrc中环境变量JAVA_HOME中的配置,并没有修改hadoop-env.sh中的JAVA_HOME,也没有修改hbase的hbase-env.sh中JAVA_HOME.