Hadoop 0.20.203.0+Hbase 0.90.4完全分布式配置

2019-03-28 14:06|来源: 网络

Hadoop0.20.203.0的配置请参看:http://www.linuxidc.com/Linux/2012-01/52551.htm

网上使用Hadoop0.20.203.0+Hbase0.90.4的完全分布式配置很少,折腾了几天才搞定。现在作个记录。

一、安装准备

1、下载hbase0.90.4

2、默认前提已经安装好hadoop

namenode 192.168.1.101  主机名:CentOS1

datanode 192.168.1.103    主机名:centos2

datanode 192.168.1.104    主机名:centos3

二、操作步骤(默认在namenode上进行)

1、在/home/grid 下 解压hbase0.90.4

tar -zxvf  hbase-0.90.4.tar.gz

2、修改/home/grid/hbase-0.90.4/conf/hbase-env.sh文件

export HBASE_OPTS="-ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
export JAVA_HOME=/usr/java/jdk1.6.0_29
export HBASE_MANAGES_ZK=true
export HBASE_HOME=/home/grid/hbase-0.90.4
export HADOOP_HOME=/home/grid/hadoop-0.20.203.0

3、修改/home/grid/hbase-0.90.4/conf/hbase-site.xml文件,内容如下

注意点:

 1.其中首先需要注意hdfs://centos1:9000/hbase这里,必须与你的Hadoop集群的core-site.xml文件配置保持完全一致才行,如果你Hadoop的hdfs使用了其它端口,请在这里也修改。再者就是Hbase该项并不识别机器IP,只能使用机器hostname才可行,即若使用centos1的IP(192.168.1.101)是会抛出java错误。

 2.hbase.zookeeper.quorum 的个数必须是奇数

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://centos1:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>192.168.1.101:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.1.101,192.168.1.103,192.168.1.104</value>
</property>
</configuration>

4、修改home/grid/hbase-0.90.4/conf/regionservers(同hadoop的slaves文件)

 

192.168.1.103
192.168.1.104
 

5、将hbase-0.90.4分发到其他机器上

 

scp -r hbase-0.90.4 centos2:/home/grid
scp -r hbase-0.90.4 centos3:/home/grid

6、启动hbase(前提:hadoop已经启动)

注意点:

1、因为Hbase建立在Hadoop之上,所以他用到了hadoop.jar,这个Jar在 lib 里面。这个jar是hbase自己打了branch-0.20-append 补丁的hadoop.jar. Hadoop使用的hadoop.jar和Hbase使用的 必须 一致。

所以你需要将 Hbase lib 目录下的hadoop.jar替换成Hadoop里面的那个,防止版本冲突。如果不替换,就会有版本冲突,继而造成严重的出错,Hadoop会看起来挂了。

把hbase_home/lib(启动的时候会加载里面所有jar) 下的hadoop-core-0.20-append-r1056497.jar rm 掉,再cp hadoop_home下的hadoop-core-0.20.203.0.jar到lib中

2011-12-01 16:57:06,174 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
java.io.IOException: Call to centos1/192.168.1.101:9000 failed on local exception: java.io.EOFException
        at org.apache.hadoop.ipc.Client.wrapException(Client.java:775)
        at org.apache.hadoop.ipc.Client.call(Client.java:743)
        at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:220)
        at $Proxy5.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:359)
        at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:113)
        at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:215)
        at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:177)
        at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82)
        at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1378)
        at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
        at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390)
        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196)
        at org.apache.hadoop.fs.Path.getFileSystem(Path.java:175)
        at org.apache.hadoop.hbase.util.FSUtils.getRootDir(FSUtils.java:364)
        at org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:81)
        at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:346)
        at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:282)
Caused by: java.io.EOFException
        at java.io.DataInputStream.readInt(DataInputStream.java:375)
        at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:501)
        at org.apache.hadoop.ipc.Client$Connection.run(Client.java:446)

2、2011-12-01 16:57:06,174 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration

相关问答

更多
  • 1、能搭好环境说明水平还不错。 2、下边应该分以下几步走: 一,依据示例程序,自己手写wordcount之类的示例程序,以此充分了解m/r和hdfs的简单原理。 二,针对某些知识点,如hadoop应用场景、hadoop的简单应用等,去百度一下搞定,这样的问题最关键、最需要做的。 三,深入阅读hadoop的源码,把框架的数据流或说工作流搞个大致清楚。 四,试着用hadoop解决一些实际问题和项目应用。 参考下吧。
  • 若在windows的Eclipse工程中直接启动mapreduc程序,需要先把hadoop集群的配置目录下的xml都拷贝到src目录下,让程序自动读取集群的地址后去进行分布式运行(您也可以自己写java代码去设置job的configuration属性)。   若不拷贝,工程中bin目录没有完整的xml配置文件,则windows执行的mapreduce程序全部通过本机的jvm执行,作业名也是带有“local"字眼的作业,如 job_local2062122004_0001。 这不是真正的分布式运行mapred ...
  • 搭建的文本,很久了,现在更新的最新版本搭建更加简单,建议你去看看黑马里边的教程,免费的
  • 在 /usr/local/hadoop/ 下面启动,找到是/opt/Hadoop/下面的hadoop安装包,是不是HADOOP_HOME环境变量配置的有问题。 可以到海牛部落交流,那里有好多学习hadoop的朋友
  • hadoop集群指的是一群机器在一起提供一个hadoop的集群的服务。 hadoop分布式指的是hadoop支持任务分布式运行,因为有hadoop集群提供服务,所以hadoop将任务分发到集群的多台机器运行,所以叫做分布式。 一个是服务器架构,一个是任务运行架构。
  • 1. 先是NameNode需要通过ssh来访问DataNode,配置一个无密码的ssh 2. NameNode上生成公钥私钥 3. $ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 4. 把公钥放到tmp目录,并且scp到每一个DataNode 5. $cp ~/.ssh/id_dsa.pub /tmp 6. 在NameNode和DataNode都执行这个,完成配置 7. $cat /tmp/id_dsa.pub >> ~/.ssh/authorized_keys
  • 我发现Hadoop 0.20.205.0是兼容版本。 我试过Hadoop 1.2.1,但它似乎不适用于HBase 0.90.6 I figured out Hadoop 0.20.205.0 is the compatible version. I tried Hadoop 1.2.1 but it doesn't seem to work well with HBase 0.90.6
  • 我删除了/ etc / hosts中与127.0.0.1相关的所有条目并将hdfs-site.xml复制到所有节点中的$ HBASE_HOME / conf之后,问题得以解决 The problem solved after I removed all entries related to 127.0.0.1 in /etc/hosts and copied the hdfs-site.xml to $HBASE_HOME/conf in all nodes
  • 我发现我使用的是Docker版本1.8.2完全删除Docker然后安装旧版本(1.7.0)然后我的脚本正常运行 I found out that I'm using Docker version 1.8.2 After fully remove Docker then install the older one (1.7.0) then my script run normally
  • 是否在Qorum中配置了zookeepers服务器? 如果是这样,他们设法彼此连接并投票决定谁是领导者(这应该都在两个服务器的日志中)。 Zookeeper可能正在运行,但如果它们无法相互通信(防火墙规则或错过配置),那么zookeeper将不会接受即将到来的客户端连接 Are both the zookeepers servers configured in a Qorum? If so have they managed to connect to one another and vote on who ...