Hadoop+HBase 伪分布式安装配置
(一)hadoop伪分布式的配置:
这个也可以参考《hadoop权威指南》上面写的很全面,这里再说一遍:
我的机器配置环境:
OS:Ubuntu10.10 ,hadoop版本:hadoop-0.20.2(下载网址: http://apache.etoak.com//hadoop/common/hadoop-0.20.2/ )
(1)安装jdk,请参考我之前的文章:http://www.cnblogs.com/Dreama/articles/2097630.html
(2)安装配置SSH,使其可以自动登录:
$ sudo apt-get install ssh
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh localhost //验证是否配置成功,不用输密码即可登录。
(3)将hadoop-0.20.2包解压在主目录下(可以用命令$ tar -zxvf hadoop-0.20.2.tar.gz),然后配置hadoop-0.20.2目录下conf目录下的四个文件:
conf/core-site.xml: <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:8020</value> </property> </configuration>
conf/mapred-site.xml:
将 #export JAVA_HOME=/usr/lib/jvm/java-6-sun 改为 export JAVA_HOME=***/***(自己的JAVA_HOME的主目录) |
通过以上步骤hadoop即安装配置完成,进入hadoop-0.20.2主目录的bin目录下
$./hadoop namenode -format //格式化hadoopnamenode,很多时候namenode启动不起来可以试试格式化一下,会好使。
$./start-all.sh //启动hadoop的各个监护进程
可以通过http://localhost:50070 和http://localhost:50030 查看namenode和jobtracker。
$./stop-all.sh //关闭hadoop的各个监护进程
(二)安装配置Hbase:
详细也可以参考《实战Hadoop》,里面也有详细的介绍。
我用的版本是Hbase-0.90.3,下载网址:http://apache.etoak.com//hbase/hbase-0.90.3/ 将Hbase-90.3解压到系统主目录下,伪分布式的配置如下:
(1)编辑{HBASE_HOME}/conf/hbase-env.sh 文件,设置JAVA_HOME和HBASE_CLASSPATH变量
export JAVA_HOME=/usr/lib/jvm/java-6-sun (自己的JAVA_HOME主目录)
export HBASE_CLASSPATH=/home/daisy/hadoop-0.20.2/conf (自己的HADOOP_HOME主目录)
(2)编辑{HBASE_HOME}/conf/hbase-site.xml 文件,增加以下内容
<property> <name>hbase.rootdir</name> <value>hdfs://localhost:8020/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> |
注:以上表格中标红色的路径一定要跟hadoop中core-site.xml中fs.default.name中的路径相同,否则会出错。
(3)替换Hbase中的jar包
需要用{HADOOP_HOME}下的hadoop-0.20.2-core.jar 替换掉{HBASE_HOME}/lib目录下的hadoop-core-0.20-append-r1056497.jar 。如果不替换jar文件Hbase启动时会因为hadoop和Hbase的客户端协议不一致而导致HMaster启动异常。报错如下:
localhost: Exception in thread "main" org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 42, server = 41)
所以如果遇到以上错误,就通过替换jar包解决。
完成以上操作,就可以正常启动Hbase了,启动顺序:先启动Hadoop——>再启动Hbase,关闭顺序:先关闭Hbase——>再关闭Hadoop。
启动Hbase的命令,进入到hbase安装主目录的bin目录下
$ ./start-hbase.sh //启动hbase
$ ./hbase shell //进入shell模式
$ ./stop-all.sh //停止hbase
如果在操作Hbase的过程中发生错误,可以通过hbase安装主目录下的logs子目录查看错误原因。
注意:
(1)hbase的运行需要用到zookeeper,而hbase-0.90.3自带了zookeeper,所以可以使用hbase自带的zookeeper,在conf/hbase-env.sh 文件中 export HBASE_MANAGES_ZK=true ,true表示使用hbase自带的zookeeper,如果不想使用其自带的zookeeper,自己下载包安装的化,该项设置为false。 当然如果自己安装zookeeper,启动及关闭先后顺序为:启动Hadoop—>启动ZooKeeper集群—>启动HBase—>停止HBase—>停止ZooKeeper集群—>停止Hadoop。
(2) hbase启动时报错:localhost: Exception in thread "main" org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 42, server = 41) ,原因就是上面hbase安装第三步中提到的没有替换jar包的原因。