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

[经验分享] hadoop的高可用

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2018-10-29 09:01:09 | 显示全部楼层 |阅读模式
  hadoopHA
  数据类型
  结构化数据RDMS
  非结构化数据借助算法goole pagerank
  半结构算法xmljson通过标签进行。
  一般情况下可以通过并行处理机制提高处理数据效率但是对于海量数据的加载是很慢的所以需要使用分布式文件系统只需要从本地磁盘上加载就好了所以速度很快。
  hadoop集群mapreduce框架其函数要自己写。
  在hadoopHA 集群中,通常有两台不同的机器充当 NameNode。在任何时间,只有一台机器处于Active 状态;另一台机器是处于 Standby 状态。
  在本片文档中主要体现两个高可用
  hdfs和yarn
  hdfs是
  在本文档中
  server1server5作为NN和RMserver2,server3,server4作为DNZK和DN.
  本篇文档从zookeeper开始关于基础配置请参考http://12237658.blog.51cto.com
  本实验出现的错误事项
  1、内存划分要足够本次一共启用5个虚拟机server1和server5要求大于1Gserver2,3,4不能小于768.
  2、再格式化过程中第一次格式化需要先启动日志进程sbin/hadoop.daem.sh start journalnode
  [hadoop@server2/3/4 hadoop]$ sbin/hadoop-daemon.sh start journalnode
  3、再启动过程中,zookeeper会发生服务提不起来的情况在此情况下一般是myid的错误或者端口被占用
  4、在启动hdfs服务时可能出现namenode 或datanode不出现的情况此时一般要查看日志信息根据日志信息作出更改
  5、服务尽量不要多次重复充起因为会导致进程混乱例如zookeeper的进程号和其文件中进程号不一致。[hadoop@server3 zookeeper]$ cat zookeeper_server.pid 1236
  zookeeper的启动
  下载tar包解压到hadoop的家目录
  [hadoop@server3 ~]$ ls
  hadoop        java         zookeeper        zookeeper-3.4.9.tar.gz
  hadoop-2.7.3  jdk1.7.0_79  zookeeper-3.4.9
  修改配置文件
  [hadoop@server3 conf]$ cat zoo.cfg
  # The number of milliseconds of each tick
  tickTime=2000//ZK中的一个时间单元zk中所有时间都是以这个时间为基础以毫秒计用来调节心跳和超时。
  # The number of ticks that the initial
  # synchronization phase can take
  initLimit=10//Follower 在启动过程中,会从 Leader 同步所有最新数据,然后确定自己能够对外服务的起始状态。
  # The number of ticks that can pass between
  # sending a request and getting an acknowledgement
  syncLimit=5  //在运行过程中,Leader 负责与 ZK 集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。
  # the directory where the snapshot is stored.
  # do not use /tmp for storage, /tmp here is just
  # example sakes.
  dataDir=/tmp/zookeeper   //存储快照文件 snapshot 的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数 dataLogDir, 事务日志的写性能直接影响 zk 性能。在生产环境中该目录应该为一个稳定的目录而不应该是在tmp下因为tmp在一定时间后会被清除。
  # the port at which the clients will connect
  clientPort=2181   //客户端连接 server 的端口,即对外服务端口
  # the maximum number of client connections.
  # increase this if you need to handle more clients
  #maxClientCnxns=60
  #
  # Be sure to read the maintenance section of the
  # administrator guide before turning on autopurge.
  #
  # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  #
  # The number of snapshots to retain in dataDir
  #autopurge.snapRetainCount=3
  # Purge task interval in hours
  # Set to "0" to disable auto purge feature
  #autopurge.purgeInterval=1
  server.1=172.25.33.2:2888:3888
  server.2=172.25.33.3:2888:3888
  server.3=172.25.33.4:2888:3888
  server的编号应该和myid的数字一致myid在dataDir下。
  echo “1”> /tmp/zookeeper/myid ....
  启动zookeeper//2,3,4启动。
  [hadoop@server3 zookeeper]$ echo "2" > /tmp/zookeeper/myid
  [hadoop@server3 zookeeper]$ bin/zkServer.sh start
  ZooKeeper JMX enabled by default
  Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
  Starting zookeeper ... STARTED
  [hadoop@server3 zookeeper]$ bin/zkServer.sh status
  ZooKeeper JMX enabled by default
  Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
  Mode: follower
  配置hadoop的hdfs
  cat core-site.xml
  
  
  fs.defaultFS
  hdfs://master
  
  
  ha.zookeeper.quorum
  172.25.33.2:2181,172.25.33.3:2181,172.25.33.3:2181,172.25.33.4:2181
  
  
  cat hdfs-site.xml
  
  dfs.nameservices
  masters
  
  
  
  dfs.ha.namenodes.masters
  h1,h2
  
  
  
  dfs.namenode.rpc-address.masters.h1
  172.25.33.1:9000
  
  
  
  dfs.namenode.http-address.masters.h1
  172.25.33.1:50070
  
  
  
  dfs.namenode.rpc-address.masters.h2
  172.25.33.5:9000
  
  
  
  dfs.namenode.http-address.masters.h2
  172.25.33.5:50070
  
  
  
  dfs.namenode.shared.edits.dir
  qjournal://172.25.33.2:8485;172.25.33.3:8485;172.25.33.4:8485/masters
  
  
  
  dfs.journalnode.edits.dir
  /tmp/journaldata
  
  
  
  dfs.ha.automatic-failover.enabled
  true
  
  
  
  dfs.client.failover.proxy.provider.masters
  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
  
  
  
  dfs.ha.fencing.methods
  
  sshfence
  shell(/bin/true)
  
  
  
  
  dfs.ha.fencing.ssh.private-key-files
  /home/hadoop/.ssh/id_rsa
  
  
  
  dfs.ha.fencing.ssh.connect-timeout
  30000
  
  
  [hadoop@server1 hadoop]$ cat slaves
  172.25.33.3
  172.25.33.4
  172.25.33.2
  至此hdfs的高可用配置文件已经完成
  在格式化hdfs之前要先将server2,3,4节点的journal服务打开因为hdfs在格式化的时候要与2,3,4的8485端口通信。
  [hadoop@server2 hadoop]$ sbin/hadoop-daemon.sh start journalnode
  starting journalnode, logging to /home/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-journalnode-server2.example.com.out
  [hadoop@server2 hadoop]$ jps
  2629 JournalNode
  2398 QuorumPeerMain
  2667 Jps
  在这三个节点看到该jps进程那么说明可以格式化Hdfs了
  [hadoop@server1 hadoop]$ bin/hdfs namenode -format
  [hadoop@server1 hadoop]$ scp -r /tmp/hadoop-hadoop/ 172.25.33.5:/tmp
  fsimage_0000000000000000000                  100%  353     0.3KB/s   00:00
  fsimage_0000000000000000000.md5              100%   62     0.1KB/s   00:00
  seen_txid                                    100%    2     0.0KB/s   00:00
  VERSION
  格式化zookeeper(只需在h1上执行)
  [hadoop@server1 hadoop]$ bin/hdfs zkfc -formatZK
  然后就可以启动服务了。
  此时需要免密码认证所以该制作ssh-keygen的赶紧制作。有时需要用ssh试连各个节点破除yes
  [hadoop@server1 hadoop]$ sbin/start-dfs.sh
  检测[hadoop@server1/5 hadoop]$ jps
  11212 DFSZKFailoverController
  11482 Jps
  10883 NameNode
  通过网页的50070访问正常
  172.25.33.150070

  [hadoop@server1 hadoop]$ jps
  11212 DFSZKFailoverController
  11482 Jps
  10883 NameNode
  [hadoop@server1 hadoop]$ kill -9 10883
  172.25.33.550070

  验证成功hdfs的高可用已经完成下边配置yarn的高可用
  Apache Hadoop YARN Yet Another Resource Negotiator另一种资源协调者是一种新的 Hadoop 资源管理器它是一个通用资源管理系统可为上层应用提供统一的资源管理和调度它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处
  cat mapred-site.xml
  
  
  
  mapreduce.framework.name
  yarn
  
  
  cat yarn-site.xml
  
  
  
  
  yarn.nodemanager.aux-services
  mapreduce_shuffle
  
  
  
  yarn.resourcemanager.ha.enabled
  true
  
  
  
  yarn.resourcemanager.cluster-id
  RM_CLUSTER
  
  
  yarn.resourcemanager.ha.rm-ids
  rm1,rm2
  
  
  
  yarn.resourcemanager.hostname.rm1
  172.25.33.1
  
  
  
  yarn.resourcemanager.hostname.rm2
  172.25.33.5
  
  
  
  yarn.resourcemanager.recovery.enabled
  true
  
  
  
  yarn.resourcemanager.store.class
  org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
  
  
  
  yarn.resourcemanager.zk-address
  172.25.33.2:2181,172.25.33.3:2181,172.25.33.4:2181
  
  
  配置文件完成后启动yarn服务。
  [hadoop@server1 hadoop]$ sbin/start-yarn.sh
  [hadoop@server1 hadoop]$ jps
  13244 ResourceManager
  11212 DFSZKFailoverController
  13330 Jps
  12814 NameNode
  [hadoop@server5 ~]$ jps
  1598 NameNode
  1904 Jps
  1695 DFSZKFailoverController
  在另一个节点上并没有RM,需要手动启动
  [hadoop@server5 hadoop]$ sbin/yarn-daemon.sh start resourcemanager
  starting resourcemanager, logging to /home/hadoop/hadoop-2.7.3/logs/yarn-hadoop-resourcemanager-server5.example.com.out
  [hadoop@server5 hadoop]$ jps
  1598 NameNode
  2018 Jps
  1695 DFSZKFailoverController
  1979 ResourceManager
  172.25.33.18088

  故障切换
  [hadoop@server1 hadoop]$ jps
  13244 ResourceManager
  11212 DFSZKFailoverController
  12814 NameNode
  13923 Jps
  [hadoop@server1 hadoop]$ kill -9 13244
  172.25.33.58088

  使用zookeeper的命令行进行测试
  [hadoop@server3 zookeeper]$ bin/zkCli.sh -server 127.0.0.1:2181
  [zk: 127.0.0.1:2181(CONNECTED) 0] get /yarn-leader-election/RM_CLUSTER/ActiveBreadCrumb
  RM_CLUSTERrm2
  cZxid = 0x100000020
  ctime = Tue Mar 07 22:05:16 CST 2017
  mZxid = 0x100000053
  mtime = Tue Mar 07 22:09:58 CST 2017
  pZxid = 0x100000020
  cversion = 0
  dataVersion = 1
  aclVersion = 0
  ephemeralOwner = 0x0
  dataLength = 17
  numChildren = 0
  [zk: 127.0.0.1:2181(CONNECTED) 1] quit
  Quitting...
  结束5上的服务RM会切换到1上。
  ActiveBreadCrumb           ActiveStandbyElectorLock
  [zk: 127.0.0.1:2181(CONNECTED) 0] get /yarn-leader-election/RM_CLUSTER/ActiveBreadCrumb
  RM_CLUSTERrm1
  cZxid = 0x100000020
  ctime = Tue Mar 07 22:05:16 CST 2017
  mZxid = 0x10000008b
  mtime = Tue Mar 07 22:15:14 CST 2017
  pZxid = 0x100000020
  cversion = 0
  dataVersion = 2
  aclVersion = 0
  ephemeralOwner = 0x0
  dataLength = 17
  numChildren = 0
  [zk: 127.0.0.1:2181(CONNECTED) 1]
  测试成功表示yarn的高可用已经完成。


运维网声明 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-627780-1-1.html 上篇帖子: (第4篇)hadoop之魂--mapreduce计算框架,让收集的数据产生价值 下篇帖子: Hadoop:CCAH及CCA系列认证
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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