您的位置:首页 > 运维架构

Hadoop+HBase 伪分布式安装配置

2011-12-29 19:05 537 查看
(一)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/hdfs-site.xml:

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

conf/mapred-site.xml:

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>localhost:8021</value>

</property>

</configuration>

conf/hadoop-env.sh:

将 #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包的原因。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: