火冰狐 发表于 2018-10-28 12:08:54

Hadoop zookeeper HA高可靠集群部署搭建,及错误诊断

  http://archive-primary.cloudera.com/cdh5/cdh/5/
  一.准备工作
  1.修改Linux主机名,每台都得配置
  # vim /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=h201
  2.修改IP /etc/sysconfig/network-scripts/ifcfg-eth0
  3.修改主机名和IP的映射关系(h24,h25为主,h21,h22,h23为从)
  # vim /etc/hosts
  192.168.1.21 h21
  192.168.1.22 h22
  192.168.1.23 h23
  192.168.1.24 h24
  192.168.1.25 h25
  ######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机、阿里云主机等)
  /etc/hosts里面要配置的是内网IP地址和主机名的映射关系
  4.关闭防火墙
  #查看防火墙状态
  # service iptables status
  #关闭防火墙
  # service iptables stop
  #查看防火墙开机启动状态
  # chkconfig iptables --list
  #关闭防火墙开机启动
  # chkconfig iptables off
  5台机器 创建hadoop 用户
  # useradd hadoop
  # passwd hadoop
  hadoop 密码:123456
  前4步用root用户操作,操作完后重启机器
  5.ssh免登陆hadoop用户操作
  # su - hadoop
  #生成ssh免登陆密钥
  #进入到我的home目录
  cd ~/.ssh
  ssh-keygen -t rsa (四个回车)
  执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
  将公钥拷贝到要免密登陆的目标机器上
  $ ssh-keygen -t rsa
  $ ssh-keygen -t rsa
  $ ssh-keygen -t rsa
  $ ssh-keygen -t rsa
  $ ssh-keygen -t rsa
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
  $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
  6.安装JDK,配置环境变量等root用户操作(//根据自己的路金配置)
  卸载系统之前jdk版本(便于已安装的jdk生效)
  $rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
  # tar -zxvf jdk-7u25-linux-i586.tar.gz -C /usr/local
  # vim /etc/profile    或者在用户下   vim .bash_profile
  export JAVA_HOME=/usr/local/jdk1.7.0_25
  export HADOOP_HOME=/usr/local/hadoop-2.6.0
  export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  source /etc/profile 或者 source.bash_profile
  查看java版本
  # java -version
  ————————————————————————————————
  (/etc/bashrc
  export JAVA_HOME=/usr/jdk1.7.0_25
  export JRE_HOME=$JAVA_HOME/jre
  export PATH=$JAVA_HOME/bin:$PATH)
  ————————————————————————————————
  二.集群规划:
  主机名 IP安装软件 运行进程
  h24 192.168.1.24:jdk、hadoop
  namenode resourcemanage
  DFSZKFailoverController(zkfc)
  h25 192.168.1.25:jdk、hadoop
  namenode resourcemanage
  DFSZKFailoverController(zkfc)
  h21 192.168.1.21:jdk、hadoop、zookeeper
  datanode nodemanage
  journalnode QuorumPeerMain
  h22 192.168.1.22:jdk、hadoop、zookeeper
  datanode nodemanage
  journalnode QuorumPeerMain
  h23 192.168.1.23:jdk、hadoop、zookeeper
  datanode nodemanage
  journalnode QuorumPeerMain
  三.安装步骤:
  1.安装配置zooekeeper集群(在hadoop-server3上)
  1.1解压
  # tar zxvf zookeeper-3.4.5-cdh5.5.2.tar.gz -C /usr/local/
  1.2修改配置
  # cd /usr/localzookeeper-3.4.5/conf/
  # cp zoo_sample.cfg zoo.cfg
  # vim zoo.cfg
  修改添加:
  dataDir=/usr/local/zookeeper-3.4.5-cdh5.5.2/data
  dataLogDir=/usr/local/zookeeper-3.4.5-cdh5.5.2/log
  在最后添加:
  server.1=192.168.1.23:2888:3888
  server.2=192.168.1.24:2888:3888
  server.3=192.168.1.25:2888:3888
  保存退出
  然后创建一个data文件夹
  # cd /usr/local/zookeeper-3.4.5-cdh5.5.2/
  # mkdir -pv data log
  再创建一个空文件
  touch /usr/localzookeeper-3.4.5/data/myid
  最后向该文件写入ID
  echo 1 > /usr/localzookeeper-3.4.5/data/myid
  1.3将配置好的zookeeper拷贝到其他节点
  # scp -r /usr/localzookeeper-3.4.5/ h22:/usr/local
  # scp -r /usr/localzookeeper-3.4.5/ h23:/usr/local
  注意:修改hadoop-server4、hadoop-server5对应/usr/localzookeeper-3.4.5/data/myid内容
  hadoop-server4:
  echo 2 > /usr/localzookeeper-3.4.5/data/myid
  hadoop-server5:
  echo 3 > /usr/localzookeeper-3.4.5/data/myid
  2.安装配置hadoop集群(在hadoop-server1上操作)
  2.1解压
  # tar -zxvf hadoop-2.6.0-cdh5.5.2.tar.gz -C /usr/local/
  mv hadoop-2.6.0-cdh5.5.2 hadoop-2.6.0
  2.2配置HDFS(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下)
  #将hadoop添加到环境变量中
  vim /etc/profile或者在用户下   vim .bash_profile
  export JAVA_HOME=/usr/local/jdk1.7.0_25
  export HADOOP_HOME=/usr/local/hadoop-2.6.0
  export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
  #hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
  # cd /usr/local/hadoop-2.6.0/etc/hadoop
  2.2.1修改vim hadoop-env.sh
  export JAVA_HOME=/usr/local/jdk1.7.0_25
  2.2.2修改vim core-site.xml
  
fs.defaultFShdfs://ns1/hadoop.tmp.dir/usr/local/hadoop-2.6.0/tmpha.zookeeper.quorumh21:2181,h22:2181,h23:21812.2.3修改vim hdfs-site.xmldfs.nameservicesns1dfs.ha.namenodes.ns1nn1,nn2dfs.namenode.rpc-address.ns1.nn1h24:9000dfs.namenode.http-address.ns1.nn1h24:50070dfs.namenode.rpc-address.ns1.nn2h25:9000dfs.namenode.http-address.ns1.nn2h25:50070dfs.namenode.shared.edits.dirqjournal://h21:8485;h22:8485;h23:8485/ns1dfs.journalnode.edits.dir/usr/local/hadoop-2.6.0/journaldatadfs.ha.automatic-failover.enabledtruedfs.client.failover.proxy.provider.ns1org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProviderdfs.ha.fencing.methodssshfenceshell(/bin/true)dfs.ha.fencing.ssh.private-key-files/home/hadoop/.ssh/id_rsadfs.ha.fencing.ssh.connect-timeout300002.2.4拷贝生成 # cp mapred-site.xml.template mapred-site.xml修改vim mapred-site.xmlmapreduce.framework.nameyarn2.2.5修改vim yarn-site.xmlyarn.resourcemanager.ha.enabledtrueyarn.resourcemanager.cluster-idyrcyarn.resourcemanager.ha.rm-idsrm1,rm2yarn.resourcemanager.hostname.rm1h24yarn.resourcemanager.hostname.rm2h25yarn.resourcemanager.zk-addressh21:2181,h22:2181,h23:2181yarn.nodemanager.aux-servicesmapreduce_shuffle2.2.6修改vim slaves(slaves是指定子节点的位置)h21h22h23—————————————————————————————————————————————————————————————-------------------------------------------********************************************************************************************************2.2.7配置免密码登陆#首先要配置hadoop-server1到hadoop-server2、hadoop-server3、hadoop-server4、hadoop-server5的免密码登陆#在hadoop-server1上生产一对钥匙ssh-keygen -t rsa#将公钥拷贝到其他节点,包括自己ssh-copy-id h201ssh-copy-id h202ssh-copy-id h203ssh-copy-id h204ssh-copy-id h205#注意:resourcemanager到nodemanager要配置免密登录#注意:两个namenode之间要配置ssh免密码登陆,别忘了配置hadoop-server2到hadoop-server1的免登陆在hadoop-server2上生产一对钥匙ssh-keygen -t rsassh-copy-id -i h201**********************************************************************************************************____________________________________________________________________________________________________________2.4将配置好的hadoop拷贝到其他节点$ scp -r /usr/local/hadoop-2.6.0/ h21:/usr/local/$ scp -r /usr/local/hadoop-2.6.0/ h22:/usr/local/$ scp -r /usr/local/hadoop-2.6.0/ h23:/usr/local/$ scp -r /usr/local/hadoop-2.6.0/ h25:/usr/local/授权$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R配置环境变量$su - hadoop$ vi .bash_profile   /etc/profileexport JAVA_HOME=/usr/local/jdk1.7.0_25export JAVA_BIN=/usr/local/jdk1.7.0_25/binexport PATH=$PATH:$JAVA_HOME/binexport>通过浏览器访问:http://192.168.1.212:50070NameNode 'h212:9000' (active)这个时候hadoop-server2上的NameNode变成了active这个时候hadoop-server1的网页刷新后 无显示处于宕机状态在执行命令:hadoop fs -ls /-rw-r--r--   3 root supergroup       1926 2015-06-24 15:36 /profile刚才上传的文件依然存在!!!手动启动那个挂掉的NameNodesbin/hadoop-daemon.sh start namenode通过浏览器访问:http://192.168.1.24:50070NameNode 'h24:9000' (standby)验证YARN:运行一下hadoop提供的demo中的WordCount程序:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount /profile /outOK,大功告成!!!测试集群工作状态的一些指令 :bin/hdfs dfsadmin -report查看hdfs的各节点状态信息bin/hdfs haadmin -getServiceState nn1获取一个namenode节点的HA状态sbin/hadoop-daemon.sh start namenode单独启动一个namenode进程./hadoop-daemon.sh start zkfc   单独启动一个zkfc进程_____________________________________________________________________________*****************************************************************************报错:$ ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfgError contacting service. It is probably not running.解决办法$ vimzkServer.sh在文件最后添加jdk环境变量export JAVA_HOME=/usr/jdk1.7.0_25export HADOOP_HOME=/usr/local/hadoop-2.6.0export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin$ ./zkServer.sh stopJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfg$ ./zkServer.sh startJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfg此时其他节点也要开启$ ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfgMode: follower$ ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfgMode: leader$ ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfgMode: follower警告:$ hadoop fs -put WordCount.txt /profile/18/06/21 02:56:39 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java>
页: [1]
查看完整版本: Hadoop zookeeper HA高可靠集群部署搭建,及错误诊断