Hbase安装配置之集群安装篇.docx
《Hbase安装配置之集群安装篇.docx》由会员分享,可在线阅读,更多相关《Hbase安装配置之集群安装篇.docx(10页珍藏版)》请在冰豆网上搜索。
![Hbase安装配置之集群安装篇.docx](https://file1.bdocx.com/fileroot1/2022-10/11/2f9ac980-b472-4796-98cf-977a6ec7b541/2f9ac980-b472-4796-98cf-977a6ec7b5411.gif)
Hbase安装配置之集群安装篇
Hbase安装配置之集群安装篇
导读:
Hbase集群安装前注意看,ssh必须安装ssh,sshd也必须运行,这样Hadoop的脚本才可以远程操控其他的Hadoop和Hbase进程。
ssh之间必须都打通,不用密码都可以登录,详细方法可以Google一下。
2. Hbase集群安装前注意
1) Java:
(hadoop已经安装了)
2) Hadoop0.20.x /Hadoop-2.x 已经正确安装,并且可以启动HDFS系统,可参考的Hadoop安装文档:
Hadoop集群配置
3) ssh必须安装ssh , sshd 也必须运行,这样Hadoop的脚本才可以远程操控其他的Hadoop和Hbase进程。
ssh之间必须都打通,不用密码都可以登录,详细方法可以 Google一下("sshpasswordlesslogin").
4) NTP:
集群的时钟要保证基本的一致。
稍有不一致是可以容忍的,但是很大的不一致会造成奇怪的行为。
运行 NTP 或者其他什么东西来同步你的时间.
如果你查询的时候或者是遇到奇怪的故障,可以检查一下系统时间是否正确!
设置集群各个节点时钟:
date-s “2012-02-1314:
00:
00”
5) ulimit 和 nproc:
Base是数据库,会在同一时间使用很多的文件句柄。
大多数linux系统使用的默认值1024是不能满足的,会导致FAQ:
WhydoIsee"java.io.IOException...(Toomanyopenfiles)"inmylogs?
异常。
还可能会发生这样的异常
2010-04-0603:
04:
37,542INFOorg.apache.hadoop.hdfs.DFSClient:
ExceptionincreateBlockOutputStreamjava.io.EOFException
2010-04-0603:
04:
37,542INFOorg.apache.hadoop.hdfs.DFSClient:
Abandoningblockblk_-6935524980745310745_1391901
所以你需要修改你的最大文件句柄限制。
可以设置到10k.你还需要修改hbase用户的nproc,如果过低会造成OutOfMemoryError异常。
[2][3].
需要澄清的,这两个设置是针对操作系统的,不是Hbase本身的。
有一个常见的错误是Hbase运行的用户,和设置最大值的用户不是一个用户。
在Hbase启动的时候,第一行日志会现在ulimit信息,所以你最好检查一下。
可以先查看当前用户 ulimit:
ulimit-n
设置ulimit:
如果你使用的是Ubuntu,你可以这样设置:
在文件 /etc/security/limits.conf 添加一行,如:
hadoop - nofile 32768
可以把 hadoop 替换成你运行Hbase和Hadoop的用户。
如果你用两个用户,你就需要配两个。
还有配nprochard和softlimits.如:
hadoopsoft/hardnproc32000
在 /etc/pam.d/common-session 加上这一行:
sessionrequired pam_limits.so
否则在 /etc/security/limits.conf上的配置不会生效.
还有注销再登录,这些配置才能生效!
7)修改HadoopHDFSDatanode同时处理文件的上限:
dfs.datanode.max.xcievers
一个HadoopHDFSDatanode有一个同时处理文件的上限.这个参数叫 xcievers (Hadoop的作者把这个单词拼错了).在你加载之前,先确认下你有没有配置这个文件conf/hdfs-site.xml里面的xceivers参数,至少要有4096:
dfs.datanode.max.xcievers
4096
对于HDFS修改配置要记得重启.
如果没有这一项配置,你可能会遇到奇怪的失败。
你会在Datanode的日志中看到xcieversexceeded,但是运行起来会报missingblocks错误。
例如:
02/12/1220:
10:
31INFOhdfs.DFSClient:
Couldnotobtainblockblk_XXXXXXXXXXXXXXXXXXXXXX_YYYYYYYYfromanynode:
java.io.IOException:
Nolivenodescontaincurrentblock.Willgetnewblocklocationsfromnamenodeandretry...
8)继承hadoop安装的说明:
每个机子/etc/hosts
10.64.56.74 node2(master)
10.64.56.76 node1 (slave)
10.64.56.77 node3(slave)
9)继续使用hadoop用户安装
Chown–Rhadoop/usr/local/hbase
3. 分布式模式配置
3.1配置conf/hbase-env.sh
#exportJAVA_HOME=/usr/java/jdk1.6.0/
exportJAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26
#TellHBasewhetheritshouldmanageit'sowninstanceofZookeeperornot.
exportHBASE_MANAGES_ZK=true
不管是什么模式,你都需要编辑 conf/hbase-env.sh来告知Hbase java的安装路径.在这个文件里你还可以设置Hbase的运行环境,诸如heapsize和其他 JVM有关的选项,还有Log文件地址,等等.设置 JAVA_HOME指向 java安装的路径.
一个分布式运行的Hbase依赖一个zookeeper集群。
所有的节点和客户端都必须能够访问zookeeper。
默认的情况下Hbase会管理一个zookeep集群。
这个集群会随着Hbase的启动而启动。
当然,你也可以自己管理一个zookeeper集群,但需要配置Hbase。
你需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK 来切换。
这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.
让Hbase使用一个现有的不被Hbase托管的Zookeep集群,需要设置 conf/hbase-env.sh文件中的HBASE_MANAGES_ZK 属性为false
#TellHBasewhetheritshouldmanageit'sowninstanceofZookeeperornot.
exportHBASE_MANAGES_ZK=false
3.2配置conf/hbase-site.xml
1.
2.
3.
4.
5. hbase.rootdir
6.
7. hdfs:
//node1:
49002/hbase
8.
9. The directory shared byRegionServers.
10.
11.
12.
13.
14.
15.
16.
17. hbase.cluster.distributed
18.
19. true
20.
21. The mode the clusterwill be in. Possible values are
22.
23. false:
standalone and pseudo-distributedsetups with managed Zookeeper
24.
25. true:
fully-distributed with unmanagedZookeeper Quorum (see hbase-env.sh)
26.
27.
28.
29.
30.
31.
32.
33.
34.
35. hbase.zookeeper.property.clientPort
36.
37. 2222
38.
39. Property fromZooKeeper's config zoo.cfg.
40.
41. The port at which the clients willconnect.
42.
43.
44.
45.
46.
47.
48.
49. hbase.zookeeper.quorum
50.
51. node1,node2,node3
52.
53. Comma separated listof servers in the ZooKeeper Quorum.
54.
55. For example,",,".
56.
57. By default this is set to localhost forlocal and pseudo-distributed modes
58.
59. of operation. For a fully-distributedsetup, this should be set to a full
60.
61. list of ZooKeeper quorum servers. IfHBASE_MANAGES_ZK is set in hbase-env.sh
62.
63. this is the list of servers which we willstart/stop ZooKeeper on.
6