1、Hbase安装配置之集群安装篇 Hbase安装配置之集群安装篇 导读: Hbase集群安装前注意看,ssh 必须安装ssh , sshd 也必须运行,这样Hadoop的脚本才可以远程操控其他的Hadoop和Hbase进程。ssh之间必须都打通,不用密码都可以登录,详细方法可以 Google一下。2. Hbase集群安装前注意1)Java:(hadoop已经安装了)2)Hadoop 0.20.x/ Hadoop-2.x已经正确安装,并且可以启动 HDFS 系统, 可参考的Hadoop安装文档:Hadoop集群配置3)ssh 必须安装ssh,sshd也必须运行,这样Hadoop的脚本才可以远程操控
2、其他的Hadoop和Hbase进程。ssh之间必须都打通,不用密码都可以登录,详细方法可以 Google一下 (ssh passwordless login).4)NTP:集群的时钟要保证基本的一致。稍有不一致是可以容忍的,但是很大的不一致会 造成奇怪的行为。 运行NTP或者其他什么东西来同步你的时间.如果你查询的时候或者是遇到奇怪的故障,可以检查一下系统时间是否正确!设置集群各个节点时钟:date -s“2012-02-13 14:00:00”5)ulimit和nproc:Base是数据库,会在同一时间使用很多的文件句柄。大多数linux系统使用的默认值1024是不能满足的,会导致FAQ:
3、Why do I see java.io.IOException.(Too manyopen files) in my logs?异常。还可能会发生这样的异常2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: ExceptionincreateBlockOutputStream java.io.EOFException2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient:Abandoning block blk_-6935524980745310745
4、_1391901所以你需要修改你的最大文件句柄限制。可以设置到10k. 你还需要修改 hbase 用户的 nproc,如果过低会造成 OutOfMemoryError异常。 2 3.需要澄清的,这两个设置是针对操作系统的,不是Hbase本身的。有一个常见的错误是Hbase运行的用户,和设置最大值的用户不是一个用户。在Hbase启动的时候,第一行日志会现在ulimit信息,所以你最好检查一下。可以先查看当前用户ulimit:ulimit -n设置ulimit:如果你使用的是Ubuntu,你可以这样设置:在文件/etc/security/limits.conf添加一行,如:hadoop - nof
5、ile32768可以把hadoop替换成你运行Hbase和Hadoop的用户。如果你用两个用户,你就需要配两个。还有配nproc hard 和 softlimits. 如:hadoop soft/hard nproc 32000在/etc/pam.d/common-session加上这一行:session requiredpam_limits.so否则在/etc/security/limits.conf上的配置不会生效.还有注销再登录,这些配置才能生效!7 )修改Hadoop HDFS Datanode同时处理文件的上限:dfs.datanode.max.xcievers一个 Hadoop H
6、DFS Datanode 有一个同时处理文件的上限. 这个参数叫xcievers(Hadoop的作者把这个单词拼错了). 在你加载之前,先确认下你有没有配置这个文件conf/hdfs-site.xml里面的xceivers参数,至少要有4096: dfs.datanode.max.xcievers 4096 对于HDFS修改配置要记得重启.如果没有这一项配置,你可能会遇到奇怪的失败。你会在Datanode的日志中看到xcievers exceeded,但是运行起来会报 missing blocks错误。例如:02/12/1220:10:31 INFO hdfs.DFSClient: Could
7、 not obtain blockblk_XXXXXXXXXXXXXXXXXXXXXX_YYYYYYYY from any node: java.io.IOException: No livenodes contain current block. Will get new block locations from namenode andretry.8)继承hadoop安装的说明:每个机子/etc/hosts10.64.56.74 node2 (master)10.64.56.76 node1 (slave)10.64.56.77 node3 (slave)9) 继续使用hadoop用户安装
8、Chown R hadoop /usr/local/hbase3. 分布式模式配置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# Tell HBase whether it should manage itsown instance of Zookeeper or not.export HBASE_MANAGES_ZK=true不管是什么模式,你都需要编辑conf/hbase-env.sh来告知Hbasejava的安装路径.在
9、这个文件里你还可以设置Hbase的运行环境,诸如 heapsize和其他JVM有关的选项, 还有Log文件地址,等等. 设置JAVA_HOME指向java安装的路径.一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群。这个集群会随着Hbase的启动而启动。当然,你也可以自己管理一个zookeeper集群,但需要配置Hbase。你需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zooke
10、eper.让Hbase使用一个现有的不被Hbase托管的Zookeep集群,需要设置conf/hbase-env.sh文件中的HBASE_MANAGES_ZK属性为 false# Tell HBase whether it should manage its own instanceof Zookeeper or not.exportHBASE_MANAGES_ZK=false3.2 配置conf/hbase-site.xml1.2.3.4.5.hbase.rootdir6.7.hdfs:/node1:49002/hbase8.9.ThedirectorysharedbyRegionServe
11、rs.10.11.12.13.14.15.16.17.hbase.cluster.distributed18.19.true20.21.Themodetheclusterwillbein.Possiblevaluesare22.23.false:standaloneandpseudo-distributedsetupswithmanagedZookeeper24.25.true:fully-distributedwithunmanagedZookeeperQuorum(seehbase-env.sh)26.27.28.29.30.31.32.33.34.35.hbase.zookeeper.p
12、roperty.clientPort36.37.222238.39.PropertyfromZooKeepersconfigzoo.cfg.40.41.Theportatwhichtheclientswillconnect.42.43.44.45.46.47.48.49.hbase.zookeeper.quorum50.51.node1,node2,node352.53.CommaseparatedlistofserversintheZooKeeperQuorum.54.55.Forexample,.56.57.Bydefaultthisissettolocalhostforlocalandpseudo-distributedmodes58.59.ofoperation.Forafully-distributedsetup,thisshouldbesettoafull60.61.listofZooKeeperquorumservers.IfHBASE_MANAGES_ZKissetinhbase-env.sh62.63.thisisthelistofserverswhichwewillstart/stopZooKeeperon.6
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1