设为首页 收藏本站
查看: 844|回复: 0

[经验分享] 搭建Zookeeper与Hbase过程及遇到的问题总结

[复制链接]

尚未签到

发表于 2017-4-19 11:48:21 | 显示全部楼层 |阅读模式
  我的经验是最好放在hadoop一块,这样可以做个全盘拷贝与管理。比如之前安装的hadoop在/usr/hadoop目录下,那就把这2个组件放在一 块,比如统一放在:/usr/hadoop/...或 /home/hadoop/...这样以后再有组件也可以放在这里,方便了后续集群的重新部署。为了避开混淆,可以不使用hadoop,如使 用:hdfs,bigdata, cloud,and so on.
  1.安装zookeeper,自不必说,需要说明的是配置问题。
  (1)在conf目录下,将 zoo_sample.cfg 改名为 zoo.cfg,修改为如下内容:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/home/hdfs/zookeeper
# the port at which the clients will connect
clientPort=2181
initLimit=5
syncLimit=2
dataLogDir=/home/hdfs/zookeeper/logs
server.1=192.168.1.70:2888:3888
server.2=192.168.1.71:2888:3888
server.3=192.168.1.72:2888:3888
server.4=192.168.1.73:2888:3888



(2)创建myid文件与logs目录   1) myid文件是在zookeeper_home下直接新建一个myid文件,并在里面写入编号。编号的确定是根据zoo.cfg里 自己ip对应的 server.X 
  2)logs目录也是自己手动创建的。
  2.安装hbase
  解压安装后,修改conf 里的配置文件:
  (1) hbase-env.sh
?
1
2
3
4
5
6
7
export JAVA_HOME=/usr/java/jdk1.7.0_17/
export HBASE_CLASSPATH=/usr/hadoop/conf
export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
#export HBASE_OPTS="-ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
export HBASE_MANAGES_ZK=false
 
export HBASE_PID_DIR=/home/hdfs/pids  #目录应该为hadoop:hadoop所有,以免发生权限问题




  要注意的是:   HBASE_MANAGES_ZK 和 HBASE_PID_DIR
(2)hbase-site.xml?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://Master.Hadoop:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>192.168.1.70:60000</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>192.168.1.71,192.168.1.72,192.168.1.73</value>
    </property>
    <!-- End of properties that are directly mapped from ZooKeeper's zoo.cfg -->
</configuration>



  (3)regionservers
  在regionservers添加slaves的ip:
?
1
2
3
192.168.1.71
192.168.1.72
192.168.1.73



  3.启动/测试
  启动顺序:hadoop-->zookeeper-->hbase
  关闭顺序:hbase-->zookeeper-->hadoop
  1)启动zookeeper
  zookeeper的启动需要分别在每个计算机的节点上手动启动。进入zookeeper/bin目录: 
?
1
2
3
4
5
6
7
8
9
10
11
[... bin]$ ./zkServer.sh start
[... bin]$ jps
#启动成功应该含有:QuorumPeerMain 进程
 
查看状态:(已全部手动启动集群中的zookeeper)
[... bin]$ ./zkServer.sh status
......
#会显示 Model:follower/leader
 
关闭zookeeper
[... bin]$ ./zkServer.sh stop



  2)启动hbase
  在hbase的bin下进行操作:(注意顺序)
?
1
2
3
4
5
6
7
[... bin]$ ./hbase-daemon.sh start master //启动Master
[... bin]$ ./start-hbase.sh
[... bin]$ ./hbase shell //shell命令行接口,进入后可使用list显示tables
……
 
[... bin]$ ./hbase-daemon.sh stop master //启动Master
[... bin]$ ./stop-hbase.sh



  可以通过:http://192.168.1.70:60010/master-status 查看hbase允许状态,也可通过其判断是否成功启动。
  4.错误解决及排除
  (1)zookeeper遇到的问题:
  1)Error contactiong service. It is probably not runnin
  查看zookeeper状态时出现:Error contactiong service. It is probably not running
  先使用jps查看是否有QuorumPeerMain;
  再查看2181端口是否开启:   netstat -an | grep 2181 
  如果这2项都没有问题,原因可能是你只是单机启动,集群中其他计算机并没有启动zookeeper,把集群中其他的启动后再使用此命令。而且此命令功能太过单一,反馈信息也不准确。 
  (2)Hbase遇到的问题
  ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times
  问题发生在list 查看表时,通过查看 logs/ 下的日子信息:
  stopping hbasecat: /tmp/hbase-mango-master.pid: No such file or directory  
  发现是HBASE_PID_DIR 没有配置,使用的是默认配置,但是默认配置会在下次启动后自动清除,所以需要手动配置并创建相应的文件。(参考:hbase-env.sh)  
  (3)hadoop遇到的问题
  All directories in dfs.data.dir are invalid
  这个问题以前没有遇到过,而且在之前节点启动正常,但这次不知道是何原因。
  通过:hadoop dfsadmin -report 发现一个节点没有启动,通过查看此节点的logs信息,发现是文件权限引起的:Invalid directory in dfs.data.dir: Incorrect permission for /hadoop/hadoop-data, expected: rwxr-xr-x, while actual: rwxrwxr-x 
  更改权限,文件解决:chmod g-w /hadoop/hadoop-data/    (其他节点权限和以前一样却没有出现这问题,好奇怪~~)
  Ps:最有效、快速定位错误的方法是看logs,千万不要忽视了哦! 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-366368-1-1.html 上篇帖子: paxos算法和zookeeper领导者选举 下篇帖子: solrcloud分布式集群部署zookeeper集群安装+ClientCRUD实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表