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

[经验分享] 【修改】Centos6.3 下安装hadoop2.3.0+hbase0.98+zookeeper3.4.5-Aloneforyou

[复制链接]

尚未签到

发表于 2018-10-31 09:24:21 | 显示全部楼层 |阅读模式
  原文链接:http://wangneng-168.iteye.com/blog/1962238
  因公司需求需要研究一些关于hbase相关的知识,所以自己手动搭建了一下hadoop、hbase、zookeeper的相关环境,在网上找了许多文档总是不成功,不知道是我自己操作有错误还是环境有差异导致,最后自己参考上面这篇文章终于搭建好了,留下文章做以后查看之用。
  一、环境准备
  1、安装centos系统时为hadoop指定专用用户:hadoop
  2、如果sudo命令有问题则可以先配置sudo,以便后续安装运维方便,如下步骤修改:
  1)、切换到root权限:su root(如果已经是则不用切换)
  2)、修改sudoers文件,添加hadoop用户的权限:vi /etc/sudoers,在“root  ALL=(ALL)  ALL”这一行后面添加一行:“hadoop  ALL=(ALL)  ALL”。
  3、修改hosts:vi /etc/hosts,配置master和slave的ip与域名,例如:
  192.168.94.130 master
  192.168.94.129 slave1
  192.168.94.128 slave2
  4、修改系统的域名:vi /etc/sysconfig/network,把HOSTNAME修改为新的主机名称(主机为master,从机为slave(1..n)),修改完后重新启动服务器,启动后重新连接linux远程终端,重新进入则可在执行命令处看到变化:[root@localhost]# 变为:[root@master]#
  二、安装jdk
  1、下载jdk的安装包,执行如下命令:
  cd /usr/local/
  chmod +x jdk-6u37-linux-x64.bin
  ./jdk-6u37-linux-x64.bin
  安装完成后,执行java –version,查看是否安装成功。
  2、配置环境变量:vi /etc/profile,添加如下内容:
  AVA_HOME=/usr/local/jdk1.6.0_37/
  CLASSPATH=/usr/local/jdk1.6.0_37/lib/dt.jar:/usr/local/jdk1.6.0_37/lib/tools.jar
  JRE_HOME=/usr/local/jdk1.6.0_37/
  PATH=/usr/local/jdk1.6.0_37/bin:$PATH

  export PATH JAVA_HOME>  添加完成后,执行source /etc/profile
  注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作
  三、配置ssh
  需配置ssh实现master、slave机之间的相互免密码登录。
  1、 如果不是hadoop用户,需要切换到hadoop用户;
  2、 如果centos没有安装ssh,则需先安装
  3、 在所有的服务器执行如下命令,生成密钥对
  ssh-keygen -q -t rsa -N ""
  4、 复制所有的slave服务器的公钥到master的.ssh目录下
  [hadoop@slave1 ~]$ scp ~/.ssh/id_rsa.pub hadoop@master:~/.ssh/slave1.pub
  [hadoop@slave2 ~]$ scp ~/.ssh/id_rsa.pub hadoop@master:~/.ssh/slave2.pub
  5、 在master服务器把所有服务器的公钥加入到用于认证的公钥文件:
  [hadoop@master ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  [hadoop@master ~]cat ~/.ssh/slave1.pub >> ~/.ssh/authorized_keys
  [hadoop@master ~]cat ~/.ssh/slave2.pub >> ~/.ssh/authorized_keys
  6、 对authorized_keys 进行授权:
  [hadoop@master ~]chmod 600 ~/.ssh/authorized_keys
  7、 复制master的authorized_keys到所有的slave服务器:
  [hadoop@master ~]scp ~/.ssh/authorized_keys hadoop@slave1:~/.ssh/authorized_keys
  [hadoop@master ~]scp ~/.ssh/authorized_keys hadoop@slave2:~/.ssh/authorized_keys
  注:.ssh文件是隐藏文件,在~/下看不见,但是可以通过cd进入
  至此免密码登录本机的配置已经配置好
  8、 验证ssh是否安装成功:
  在master、slave之间以及slave之间进行相互的ssh登录,如果不需要输入密码则成功:
  例如:[hadoop@master ~]ssh slave1,执行后不需要密码及可以登录slave1
  四、安装hadoop
  解压hadoop压缩包:sudo tar xzf hadoop-2.3.0.tar.gz
  更改用户和用户组:sudo chown -R hadoop:hadoop hadoop-2.3.0
  配置hadoop:
  1. 修改$HADOOP_HOME/conf/hadoop-evn.sh,取消JAVA_HOME的注释并配置正确的信息,如:
  export JAVA_HOME=/usr/local/jdk1.6.0_37/
  2. 配置$HADOOP_HOME/conf/core-site.xml添加如下内容:
  
  fs.default.name
  hdfs://master:9000
  
  
  hadoop.tmp.dir
  /home/hadoop/data
  
  3. 配置$HADOOP_HOME/conf/hdfs-site.xml添加如下内容:
  
  dfs.replication
  2
  
  4. 配置$HADOOP_HOME/conf/mapred-site.xml添加如下内容:
  
  mapred.job.tracker
  master:9001
  
  5. 配置$HADOOP_HOME/conf/masters添加如下内容:
  master
  6. 配置$HADOOP_HOME/conf/slaves添加如下内容:
  slave1
  slave2
  7. 通过scp命令把在master服务器上配置好的hadoop目录copy到所有的slave服务器上,保持目录相同
  如果slave的jdk安装目录有不同的,需要单独修改$HADOOP_HOME/conf/hadoop-evn.sh配置文件
  8. 配置master和所有的slave服务器的环境变量:sudo vi /etc/profile在profile中加入:
  export HADOOP_HOME=/home/hadoop/hadoop-2.3.0/
  export PATH=$PATH:$HADOOP_HOME/bin
  export PATH=$PATH:$HADOOP_HOME/sbin
  添加完成后,执行source /etc/profile命令
  注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作
  9. 格式化namenode
  hadoop namenode –format
  10. 关闭所有服务器的防火墙(否则可能因为端口不可访问而导致启动失败)
  重启后永久性生效:chkconfig iptables off
  即时生效,重启后失效:service iptables stop
  11. 安装成功,通过命令start-all.sh启动hadoop集群
  五、安装hbase
  安装前提:
  l Java已经安装;
  l Hadoop已经正确安装,并可以启动hdfs;
  l 必须安装ssh,并且已经实现服务器建的免密码登陆;
  l 集群的时钟基本一致,如果时间相差比较大,则会导致安装失败;
  解压hbase-0.98.0-hadoop2-bin.tar.gz并且配置hbase
  tar -zxvf hbase-0.98.0-hadoop2-bin.tar.gz
  1. 配置hbase-env.sh:
  export JAVA_HOME=/usr/local/jdk1.6.0_37/
  export HBASE_MANAGES_ZK=false:false,使用独立的zookeeper
  2. 配置hbase-site.xml:
  
  
  hbase.master
  hdfs://master:60000
  
  
  hbase.rootdir
  hdfs://master:9000/hbase
  
  
  hbase.cluster.distributed
  true
  
  
  hbase.zookeeper.quorum
  master,slave1,slave2
  
  
  3. 配置regionservers,添加hbase的region服务器域名:
  slave1
  slave2
  4. 通过scp命令copy hbase的目录到其他服务器
  5. 配置所有服务器的环境变量:vi /etc/profile,添加如下内容:
  export HBASE_HOME=/home/hadoop/hbase-0.98.0-hadoop2
  export PATH=$PATH:$HBASE_HOME/bin
  执行source /etc/profile命令,使修改生效。
  注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作
  六、安装zookeeper
  1. 解压zookeeper-3.4.5.tar.gz并且配置:
  tar -zxvf zookeeper-3.4.5.tar.gz
  2. 进入conf目录,把zoo_sample.cfg更名为zoo.cfg
  3. 配置zoo.cfg,在文件中添加或者修改如下信息:
  dataDir=/home/hadoop/zookeeper
  server.1=master:2888:3888
  server.2=slave1:2888:3888
  server.3=slave2:2888:3888
  4. 通过scp命令把zookeepere的目录copy到其它几台服务器
  5. 执行vi /home/hadoop/zookeepermyid命令在文件myid中保存服务器对应的id,与zoo.cfg中的数字对应,本文的master服务器为1,slave1:2,slave2:3
  6. 修改各服务器的环境变量:vi /etc/profile:
  export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.4.5
  export PATH=$PATH:$ZOOKEEPER_HOME/bin
  执行命令source /etc/profile
  注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作
  七、启动hadoop、zookeeper、hbase
  启动顺序先hadoop,再zookepper,最后hbase,分别的执行命令如下:
  start-all.sh
  zkServer.sh start
  start-hbase.sh
  其中zookeeper的启动需要在每台服务器执行,hadoop和hbase只需在master服务器启动,slave集群会自动启动。
  停止的顺序与启动向反。
  启动完后,在master服务器通过jps命令可以看到如下的进程:
  [hadoop@master zookeeper]$ jps
  3779 QuorumPeerMain
  2917 SecondaryNameNode
  2767 NameNode
  4053 HMaster
  2999 JobTracker
  在slave服务器可以看到如下的进程:
  [hadoop@slave1 zookeeper-3.4.5]$ jps
  3526 HRegionServer
  2602 DataNode
  2669 TaskTracker
  3393 QuorumPeerMain
  在master服务器执行hbase shell命令,进入hbase命令模式,执行create 'f1', 'f2'命令创建表f1,再执行list命令查看是否有表f1,如果均符合预期则说明hbase可用:
  hbase(main):001:0> list
  TABLE
  0 row(s) in 4.7660 seconds
  hbase(main):002:0> create 'f1', 'f2'
  0 row(s) in 1.8420 seconds
  hbase(main):003:0> list
  TABLE
  f1
  1 row(s) in 0.1310 seconds
  至此完全安装完成。
  八、安装及使用等问题解决方案
  1. master与slave机无法通信问题
  通常是因为防火墙导致的问题,可以关闭防火墙试试。
  2. 使用非hadoop用户启动hadoop时导致再用hadoop用户启动失败的问题
  例如:如果hadoop集群的用户是非root用户,但是通过root用户启动后,再用hadoop启动,会失败,此时通过如下步骤解决;
  l 在root用户下执行stop-all.sh命令
  l ps -aux|grep java查找是否有hadoop的进程,有则kill
  l 切换到hadoop用户
  l 通过chown -R 把$hadoop.tmp.dir指定的data目录的所有文件的拥有者设置为hadoop用户,
  因为hdfs在启动时会生成新的fsimage和edits文件,通过root用户启动过后,这两个文件的拥有者变为root用户,再用hadoop用户启动时会没有写权限导致失败
  l 重启成功
  3. 启动hbase后立马停止hbase可能导致无法停止hbase的问题
  通过master的日志:Master has completed initialization,当出现了这句话后才可以停止hbase,否则就算通过jps可以看到hbase的进程,但是并不是真正的启动完成,这时停止hbase会导致无法停止,这时可以强制kill hbase的进程,需要注意的是,强制kill后,需要重新启动zookeepper,否则再启动hbase时,master启动不了,因为在zookeeper里还有master的信息,但是实际master已经被kill了。
  4. hbase的regionserver依赖hdfs的datanode,因此在配置hbase的regionservers配置文件时,需配置有datanode的服务器,否则会导致hbase经常失败,或者经常无法停止的问题。
  附:java、hadoop、hbase、zookeeper的环境变量配置信息
  vim /etc/profile
  # java
  AVA_HOME=/usr/local/jdk1.6.0_37/
  CLASSPATH=/usr/local/jdk1.6.0_37/lib/dt.jar:/usr/local/jdk1.6.0_37/lib/tools.jar
  JRE_HOME=/usr/local/jdk1.6.0_37/
  PATH=/usr/local/jdk1.6.0_37/bin:$PATH

  export PATH JAVA_HOME>  # hadoop
  export HADOOP_HOME=/home/hadoop/hadoop-2.3.0/
  export PATH=$PATH:$HADOOP_HOME/bin
  export PATH=$PATH:$HADOOP_HOME/sbin
  # hbase
  export HBASE_HOME=/home/hadoop/hbase-0.98.0-hadoop2
  export PATH=$PATH:$HBASE_HOME/bin
  # zookeeper
  export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.4.5
  export PATH=$PATH:$ZOOKEEPER_HOME/bin


运维网声明 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-628779-1-1.html 上篇帖子: hadoop用ssh key 验证的方式script-DavideyLee 下篇帖子: [Hadoop] Install Hadoop 2.2 on Win7 64bit-ZenMaster
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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