`
qicen
  • 浏览: 46706 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

HBase安装笔记

阅读更多

HBase安装笔记

 

经过几天的研究,终于把最新版的hbase和hadoop安装起来了,中间遇到了各种各样的问题啊,记录下来以免其它人走弯路。有时间的时候,再把遇到的各种问题总结一下。

 

1. 从官网下载Hbase(0.96.0)和Hadoop(2.2.0), 因为服务器是64bit的,所以只能下载hadoop2.2.0的源码,自己编译。

1.1 如果要编译本地库,需要安装一下软件:

yum -y install  lzo-devel  zlib-devel  gcc autoconf automake libtool cmake openssl-devel

1.2 安装Maven

tar zxvf apache-maven-3.1.1-bin.tar.gz

vi /etc/profile

增加两行:

export MAVEN_HOME=[maven home path]

export PATH=${MAVEN_HOME}/bin:$PATH

1.3 安装ProtocolBuffer

tar zxvf protobuf-2.5.0.tar.gz

cd protobuf-2.5.0

sudo ./configure

sudo make

sudo make check

sudo make install

protoc --version

1.4 编译hadoop2.2.0

mvn clean package -Pdist,native -DskipTests -Dtar

编译成功后,./hadoop-dist/target/hadoop-2.2.0.tar.gz就是我们需要的文件了

 

2. 分配机器:

2.1 修改/etc/hosts文件

10.161.160.10 cloud001

10.161.160.11 cloud002

10.161.160.12 cloud003

2.2 分配hdfs的机器:

cloud001:namenode

cloud002:datanode

cloud003:datanode

2.3 分配hbase的机器:

cloud001:master

cloud002:regionserver

cloud003:regionserver

 

3. 设置ssh无需密码连接

3.1 在cloud001机器上运行ssh-keygen -t rsa命令,一路按回车结束后,会在~/.ssh下生成id_rsa.pub的文件

3.2 cp id_rsa.pub authorized_keys

3.3 ssh localhost 就能不需要密码直接连接自己了。

3.4 将zuthorized_keys文件拷贝到cloud002,cloud003机器的~/.ssh目录下

scp zuthorized_keys cloud002:/root/.ssh

 

4. 安装分布式hdfs

4.1 将编译好的hadoop-2.2.0.tar.gz文件拷贝到cloud002,cloud003上。注意:hadoop的路径要一致

4.2 解压:tar zxvf hadoop-2.2.0.tar.gz,配置文件路径./hadoop-2.2.0/etc/hadoop/

4.3 修改hadoop-env.sh文件中的export JAVA_HOME,将它改为JAVA_HOME的路径。所有机器上的jdk路径需要一致

4.4 修改core-site.xml文件

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://cloud001:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/hadoop/tmp</value>

</property>

</configuration>

4.5 修改hdfs-site.xml文件

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/hadoop/hdfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/hadoop/hdfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

注意:dfs.replication的数量必须小于或等于datanode的数量

4.6 修改slaves文件,设置datanode

cloud002

cloud003

 

4.7 格式化namenode,命令:hdfs namenode -format

4.8 启动hdfs,命令:./start-dfs.sh

4.9 产看hdfs状态,命令:hdfs dfsadmin -report

 

注意:一定要关闭防火墙,命令service iptables stop

 

5. 安装分布式hbase(使用hbase内置的zookeeper)

5.1 解压:tar zxvf hbase-0.96.0-hadoop2-bin.tar.gz

5.2 修改./conf/hbase-env.sh文件

export JAVA_HOME=your_java_home

export HBASE_MANAGES_ZK=true

5.3 修改./conf/hbase-site.xml文件

<configuration> 

<property> 

<name>hbase.master</name> 

<value>cloud001:60000</value> 

</property> 

<property> 

<name>hbase.rootdir</name> 

<value>hdfs://cloud001:9000/hbase</value> 

</property> 

<property> 

<name>hbase.cluster.distributed</name> 

<value>true</value> 

</property> 

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value> 

</property> 

<property> 

<name>hbase.zookeeper.quorum</name> 

<value>cloud001</value> 

</property> 

</configuration>

5.4 在hdfs上创建一个hbase的文件夹。hadoop fs -mkdir /hbase

5.5 修改./conf/regionservers文件,增加regionserver

cloud002

cloud003

5.6 将HBASE_DIR/lib下所有以hadoop开头的jar文件全部替换成2.2.0版本

5.7 启动hbase.

 

分享到:
评论
17 楼 qicen 2014-04-04  
蜀山红日 写道
请问怎么配置啊


可以直接修改hadoop-env.sh,将HBASE_HOME/lib下的jar包都加到HADOOP_CLASSPATH下,或是参照这个博客:http://blog.cloudera.com/blog/2011/01/how-to-include-third-party-libraries-in-your-map-reduce-job/
16 楼 蜀山红日 2014-04-02  
请问怎么配置啊
qicen 写道
蜀山红日 写道
出现了新的问题,用的0.96.1.1,importtsv的时候报错File does not exist: hdfs://localhost:9000/mnt/hgfs/linux/hbase-0.96.1.1-hadoop2/lib/hbase-server-0.96.1.1-hadoop2.jar
qicen 写道
蜀山红日 写道
用针对hadoop2的hbase0.96就不会出现这个问题了吗?
qicen 写道
hbase-0.96.0是分hadoop1和hadoop2版本的,你使用hadoop-2.2.0的话需要使用hbase-0.96.0-hadoop2-bin.tar.gz,这下面不会有hadoop-core-1.0.4.jar这样的jar包了。hadoop-1.x和hadoop-2.x的jar包是完全不同的。
Alvinxu 写道
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

这个所我用hadoop2.2.0+hbase0.94时报的错!!!后面官网看了看,说hbase9.96支持更好,换了0.96还是一样!官网上好像也有说jar包替换。但是我找不到对应hadoop-core-1.0.4.jar的jar包呀。。。???


是的,不过0.96.0版本有性能问题,建议用0.96.1或0.98.0


mapreduce的lib包没有配置正确啊,都找到hdfs的文件路径去了

15 楼 蜀山红日 2014-04-02  
好像是因为没有配置zookeeper
qicen 写道
蜀山红日 写道
出现了新的问题,用的0.96.1.1,importtsv的时候报错File does not exist: hdfs://localhost:9000/mnt/hgfs/linux/hbase-0.96.1.1-hadoop2/lib/hbase-server-0.96.1.1-hadoop2.jar
qicen 写道
蜀山红日 写道
用针对hadoop2的hbase0.96就不会出现这个问题了吗?
qicen 写道
hbase-0.96.0是分hadoop1和hadoop2版本的,你使用hadoop-2.2.0的话需要使用hbase-0.96.0-hadoop2-bin.tar.gz,这下面不会有hadoop-core-1.0.4.jar这样的jar包了。hadoop-1.x和hadoop-2.x的jar包是完全不同的。
Alvinxu 写道
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

这个所我用hadoop2.2.0+hbase0.94时报的错!!!后面官网看了看,说hbase9.96支持更好,换了0.96还是一样!官网上好像也有说jar包替换。但是我找不到对应hadoop-core-1.0.4.jar的jar包呀。。。???


是的,不过0.96.0版本有性能问题,建议用0.96.1或0.98.0


mapreduce的lib包没有配置正确啊,都找到hdfs的文件路径去了

14 楼 qicen 2014-03-31  
蜀山红日 写道
出现了新的问题,用的0.96.1.1,importtsv的时候报错File does not exist: hdfs://localhost:9000/mnt/hgfs/linux/hbase-0.96.1.1-hadoop2/lib/hbase-server-0.96.1.1-hadoop2.jar
qicen 写道
蜀山红日 写道
用针对hadoop2的hbase0.96就不会出现这个问题了吗?
qicen 写道
hbase-0.96.0是分hadoop1和hadoop2版本的,你使用hadoop-2.2.0的话需要使用hbase-0.96.0-hadoop2-bin.tar.gz,这下面不会有hadoop-core-1.0.4.jar这样的jar包了。hadoop-1.x和hadoop-2.x的jar包是完全不同的。
Alvinxu 写道
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

这个所我用hadoop2.2.0+hbase0.94时报的错!!!后面官网看了看,说hbase9.96支持更好,换了0.96还是一样!官网上好像也有说jar包替换。但是我找不到对应hadoop-core-1.0.4.jar的jar包呀。。。???


是的,不过0.96.0版本有性能问题,建议用0.96.1或0.98.0


mapreduce的lib包没有配置正确啊,都找到hdfs的文件路径去了
13 楼 蜀山红日 2014-03-20  
出现了新的问题,用的0.96.1.1,importtsv的时候报错File does not exist: hdfs://localhost:9000/mnt/hgfs/linux/hbase-0.96.1.1-hadoop2/lib/hbase-server-0.96.1.1-hadoop2.jar
qicen 写道
蜀山红日 写道
用针对hadoop2的hbase0.96就不会出现这个问题了吗?
qicen 写道
hbase-0.96.0是分hadoop1和hadoop2版本的,你使用hadoop-2.2.0的话需要使用hbase-0.96.0-hadoop2-bin.tar.gz,这下面不会有hadoop-core-1.0.4.jar这样的jar包了。hadoop-1.x和hadoop-2.x的jar包是完全不同的。
Alvinxu 写道
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

这个所我用hadoop2.2.0+hbase0.94时报的错!!!后面官网看了看,说hbase9.96支持更好,换了0.96还是一样!官网上好像也有说jar包替换。但是我找不到对应hadoop-core-1.0.4.jar的jar包呀。。。???


是的,不过0.96.0版本有性能问题,建议用0.96.1或0.98.0
12 楼 qicen 2014-03-19  
蜀山红日 写道
用针对hadoop2的hbase0.96就不会出现这个问题了吗?
qicen 写道
hbase-0.96.0是分hadoop1和hadoop2版本的,你使用hadoop-2.2.0的话需要使用hbase-0.96.0-hadoop2-bin.tar.gz,这下面不会有hadoop-core-1.0.4.jar这样的jar包了。hadoop-1.x和hadoop-2.x的jar包是完全不同的。
Alvinxu 写道
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

这个所我用hadoop2.2.0+hbase0.94时报的错!!!后面官网看了看,说hbase9.96支持更好,换了0.96还是一样!官网上好像也有说jar包替换。但是我找不到对应hadoop-core-1.0.4.jar的jar包呀。。。???


是的,不过0.96.0版本有性能问题,建议用0.96.1或0.98.0
11 楼 蜀山红日 2014-03-17  
用针对hadoop2的hbase0.96就不会出现这个问题了吗?
qicen 写道
hbase-0.96.0是分hadoop1和hadoop2版本的,你使用hadoop-2.2.0的话需要使用hbase-0.96.0-hadoop2-bin.tar.gz,这下面不会有hadoop-core-1.0.4.jar这样的jar包了。hadoop-1.x和hadoop-2.x的jar包是完全不同的。
Alvinxu 写道
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

这个所我用hadoop2.2.0+hbase0.94时报的错!!!后面官网看了看,说hbase9.96支持更好,换了0.96还是一样!官网上好像也有说jar包替换。但是我找不到对应hadoop-core-1.0.4.jar的jar包呀。。。???

10 楼 fighting_2013 2013-11-05  
呵呵,用MAVEN下了个

hadoop-client-2.2.0.jar这个jar包是用源码编译出来的。如果你的hadoop是自己用源码编译出来的话,hadoop-2.2.0-src/hadoop-client/target这个目录下就有。
fighting_2013 写道
qicen 写道
这是因为2.2.0版本中把这个类org.apache.hadoop.util.PlatformName移动到了hadoop-auth工程下了,所以要替换所有的hadoop包。
hadoop-annotations-2.2.0.jar
hadoop-auth-2.2.0.jar
hadoop-client-2.2.0.jar
hadoop-common-2.2.0.jar
hadoop-hdfs-2.2.0.jar
hadoop-hdfs-2.2.0-tests.jar
hadoop-mapreduce-client-app-2.2.0.jar
hadoop-mapreduce-client-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0-tests.jar
hadoop-mapreduce-client-shuffle-2.2.0.jar
hadoop-yarn-api-2.2.0.jar
hadoop-yarn-client-2.2.0.jar
hadoop-yarn-common-2.2.0.jar
hadoop-yarn-server-common-2.2.0.jar
hadoop-yarn-server-nodemanager-2.2.0.jar
这是所有的jar包,在hadoop-2.2.0的工程下都能够找到。

hadoop-client-2.2.0.jar这个包在哪个目录?

9 楼 qicen 2013-11-05  
hbase-0.96.0是分hadoop1和hadoop2版本的,你使用hadoop-2.2.0的话需要使用hbase-0.96.0-hadoop2-bin.tar.gz,这下面不会有hadoop-core-1.0.4.jar这样的jar包了。hadoop-1.x和hadoop-2.x的jar包是完全不同的。
Alvinxu 写道
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

这个所我用hadoop2.2.0+hbase0.94时报的错!!!后面官网看了看,说hbase9.96支持更好,换了0.96还是一样!官网上好像也有说jar包替换。但是我找不到对应hadoop-core-1.0.4.jar的jar包呀。。。???
8 楼 Alvinxu 2013-11-05  
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

这个所我用hadoop2.2.0+hbase0.94时报的错!!!后面官网看了看,说hbase9.96支持更好,换了0.96还是一样!官网上好像也有说jar包替换。但是我找不到对应hadoop-core-1.0.4.jar的jar包呀。。。???
7 楼 qicen 2013-11-05  
Alvinxu 写道
qicen 写道
这是因为2.2.0版本中把这个类org.apache.hadoop.util.PlatformName移动到了hadoop-auth工程下了,所以要替换所有的hadoop包。
hadoop-annotations-2.2.0.jar
hadoop-auth-2.2.0.jar
hadoop-client-2.2.0.jar
hadoop-common-2.2.0.jar
hadoop-hdfs-2.2.0.jar
hadoop-hdfs-2.2.0-tests.jar
hadoop-mapreduce-client-app-2.2.0.jar
hadoop-mapreduce-client-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0-tests.jar
hadoop-mapreduce-client-shuffle-2.2.0.jar
hadoop-yarn-api-2.2.0.jar
hadoop-yarn-client-2.2.0.jar
hadoop-yarn-common-2.2.0.jar
hadoop-yarn-server-common-2.2.0.jar
hadoop-yarn-server-nodemanager-2.2.0.jar
这是所有的jar包,在hadoop-2.2.0的工程下都能够找到。
fighting_2013 写道
启动hbase的时候,HRegionServer一直起不起来,报Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName,网上的一些解决方法也没用,这个该怎么去定位解决呢?


您好,我也遇到了jar包冲突,貌似,我用的hdoop2.2.0+hbase0.94. 同样在hadoop下找不到hadoop-client-2.2.0.jar包,但hbase下的hadoop-core-1.0.4.jar这个jar包也没有对应的(habse好像只有这么一个hadoop开头的jar包)jar包可供替换。我要怎么做呢?


hadoop-2.2.0版本不支持hbase-0.94.x的版本。
http://hbase.apache.org/book/configuration.html#basic.prerequisites
6 楼 qicen 2013-11-05  
hadoop-client-2.2.0.jar这个jar包是用源码编译出来的。如果你的hadoop是自己用源码编译出来的话,hadoop-2.2.0-src/hadoop-client/target这个目录下就有。
qicen 写道
这是因为2.2.0版本中把这个类org.apache.hadoop.util.PlatformName移动到了hadoop-auth工程下了,所以要替换所有的hadoop包。
hadoop-annotations-2.2.0.jar
hadoop-auth-2.2.0.jar
hadoop-client-2.2.0.jar
hadoop-common-2.2.0.jar
hadoop-hdfs-2.2.0.jar
hadoop-hdfs-2.2.0-tests.jar
hadoop-mapreduce-client-app-2.2.0.jar
hadoop-mapreduce-client-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0-tests.jar
hadoop-mapreduce-client-shuffle-2.2.0.jar
hadoop-yarn-api-2.2.0.jar
hadoop-yarn-client-2.2.0.jar
hadoop-yarn-common-2.2.0.jar
hadoop-yarn-server-common-2.2.0.jar
hadoop-yarn-server-nodemanager-2.2.0.jar
这是所有的jar包,在hadoop-2.2.0的工程下都能够找到。

hadoop-client-2.2.0.jar这个包在哪个目录?
5 楼 Alvinxu 2013-11-05  
qicen 写道
这是因为2.2.0版本中把这个类org.apache.hadoop.util.PlatformName移动到了hadoop-auth工程下了,所以要替换所有的hadoop包。
hadoop-annotations-2.2.0.jar
hadoop-auth-2.2.0.jar
hadoop-client-2.2.0.jar
hadoop-common-2.2.0.jar
hadoop-hdfs-2.2.0.jar
hadoop-hdfs-2.2.0-tests.jar
hadoop-mapreduce-client-app-2.2.0.jar
hadoop-mapreduce-client-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0-tests.jar
hadoop-mapreduce-client-shuffle-2.2.0.jar
hadoop-yarn-api-2.2.0.jar
hadoop-yarn-client-2.2.0.jar
hadoop-yarn-common-2.2.0.jar
hadoop-yarn-server-common-2.2.0.jar
hadoop-yarn-server-nodemanager-2.2.0.jar
这是所有的jar包,在hadoop-2.2.0的工程下都能够找到。
fighting_2013 写道
启动hbase的时候,HRegionServer一直起不起来,报Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName,网上的一些解决方法也没用,这个该怎么去定位解决呢?


您好,我也遇到了jar包冲突,貌似,我用的hdoop2.2.0+hbase0.94. 同样在hadoop下找不到hadoop-client-2.2.0.jar包,但hbase下的hadoop-core-1.0.4.jar这个jar包也没有对应的(habse好像只有这么一个hadoop开头的jar包)jar包可供替换。我要怎么做呢?
4 楼 fighting_2013 2013-11-04  
这是因为2.2.0版本中把这个类org.apache.hadoop.util.PlatformName移动到了hadoop-auth工程下了,所以要替换所有的hadoop包。
hadoop-annotations-2.2.0.jar
hadoop-auth-2.2.0.jar
hadoop-client-2.2.0.jar
hadoop-common-2.2.0.jar
hadoop-hdfs-2.2.0.jar
hadoop-hdfs-2.2.0-tests.jar
hadoop-mapreduce-client-app-2.2.0.jar
hadoop-mapreduce-client-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0-tests.jar
hadoop-mapreduce-client-shuffle-2.2.0.jar
hadoop-yarn-api-2.2.0.jar
hadoop-yarn-client-2.2.0.jar
hadoop-yarn-common-2.2.0.jar
hadoop-yarn-server-common-2.2.0.jar
hadoop-yarn-server-nodemanager-2.2.0.jar
这是所有的jar包,在hadoop-2.2.0的工程下都能够找到。

hadoop-client-2.2.0.jar这个包在哪个目录?
3 楼 qicen 2013-11-04  
这是因为2.2.0版本中把这个类org.apache.hadoop.util.PlatformName移动到了hadoop-auth工程下了,所以要替换所有的hadoop包。
hadoop-annotations-2.2.0.jar
hadoop-auth-2.2.0.jar
hadoop-client-2.2.0.jar
hadoop-common-2.2.0.jar
hadoop-hdfs-2.2.0.jar
hadoop-hdfs-2.2.0-tests.jar
hadoop-mapreduce-client-app-2.2.0.jar
hadoop-mapreduce-client-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0-tests.jar
hadoop-mapreduce-client-shuffle-2.2.0.jar
hadoop-yarn-api-2.2.0.jar
hadoop-yarn-client-2.2.0.jar
hadoop-yarn-common-2.2.0.jar
hadoop-yarn-server-common-2.2.0.jar
hadoop-yarn-server-nodemanager-2.2.0.jar
这是所有的jar包,在hadoop-2.2.0的工程下都能够找到。
fighting_2013 写道
启动hbase的时候,HRegionServer一直起不起来,报Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName,网上的一些解决方法也没用,这个该怎么去定位解决呢?
2 楼 fighting_2013 2013-11-04  
启动hbase的时候,HRegionServer一直起不起来,报Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName,网上的一些解决方法也没用,这个该怎么去定位解决呢?
1 楼 fighting_2013 2013-11-04  
你好,能否截取下你hbase-0.96.0下的lib下的相关hadoop包的图,谢谢

相关推荐

Global site tag (gtag.js) - Google Analytics