hadoop集群和HA搭建
来源:互联网 发布:沙钢网络培训教育学院 编辑:程序博客网 时间:2024/05/22 08:24
一、搭建集群[hdfs/yarn]
1、规划
1.1 基本配置
1.2 角色分配
2、 环境准备
2.1 克隆主机
2.2 修改各自主机名和IP地址
2.3 创建普通用户,名称和密码与第一台保持一致[jerry:123456]
2.4 实现通过主机名互访
2.5 关闭防火墙
3、时间同步
a.互联网中的服务器进行时间同步[root@java16 jerry]# ntpdate cn.pool.ntp.orgb.在集群中确定一台,然后其他服务器与这台进行时间同步【推荐】[三台服务器]#date -R --检查当前系统的时区[root@java14 ~]# date -Rln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3.1 选择java14作为时间服务器,那么需要在该机器中安装ntp服务器软件
[root@java14 ~]# rpm -qa | grep ntp
3.2 修改ntp服务器的配置
[root@java14 ~]# vi /etc/ntp.conf * 1.1)文件中添加如下内容restrict [本地的NAT子网IP] mask 255.255.255.0 nomodify notrap* 1.2)注释以下三行内容#server 0.centos.pool.ntp.org#server 1.centos.pool.ntp.org#server 2.centos.pool.ntp.org* 1.3)去掉这个两行前面的#server 127.127.1.0 # local clockfudge 127.127.1.0 stratum 10
3.3 配置如下内容,保证BIOS与系统时间同步
## 查看/etc/sysconfig/ntpd内容[hadoop@hadoop-master opt]$ cat /etc/sysconfig/ntpd SYNC_HWCLOCK=yes ##添加的内容OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
3.4 启动java14中的时间服务器
[root@java14 ~]# service ntpd startStarting ntpd: ##查看状态[root@java14 ~]# service ntpd statusntpd (pid 1972) is running...
3.5 在java15和java16中通过ntpdate命令与java14进行定时同步
##添加定时任务敲命令crontab -e*/10 * * * * /usr/sbin/ntpdate java14.zhanghao.com
4、部署分布式
4.1 将搭建的伪分布式中的数据清空
data:目录中的数据全部清空 logs:日志文件清空 share/hadoop:帮助文档删除
4.2 配置HDFS集群
a)配置NameNode地址:core-site.xml文件中 <property> <name>fs.defaultFS</name> <value>hdfs://java14.zhanghao.com:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/modules/hadoop-2.5.0/data</value> </property> b) 配置DataNode地址:slaves java14.zhanghao.com java15.zhanghao.com java16.zhanghao.comc) 配置SecondaryNameNode地址:在hdfs-site.xml文件中配置 <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>java15.zhanghao.com:50090</value> </property>e)将配置好的文件分发到其他服务器中[jerry@java14 modules]$ scp -r hadoop-2.5.0/ java15:/opt/modules/f) 启动HDFS文件 格式化:[jerry@java14 hadoop-2.5.0]$ ./bin/hdfs namenode -format [jerry@java14 hadoop-2.5.0]$ ./sbin/hadoop-daemon.sh start namenode [jerry@java14 hadoop-2.5.0]$ ./sbin/hadoop-daemon.sh start datanode [jerry@java15 hadoop-2.5.0]$ ./sbin/hadoop-daemon.sh start datanode [jerry@java15 hadoop-2.5.0]$ ./sbin/hadoop-daemon.sh start secondarynamenode [jerry@java16 hadoop-2.5.0]$ ./sbin/hadoop-daemon.sh start datanode 测试: [jerry@java16 hadoop-2.5.0]$ ./bin/hdfs dfs -put hadoop-2.5.0.tar.gz /hadoop-2.5.0.tar.gz
4.3 搭建YARN平台
a) 在yarn-site.xml文件中添加配置,指定resourcemanager运行的服务器地址<property> <name>yarn.resourcemanager.hostname</name> <value>java16.zhanghao.com</value></property>b) 配置historyserver,在mapred-site.xml文件中配置<property> <name>mapreduce.jobhistory.address</name> <value>java16.zhanghao.com:10020</value></property><property> <name>mapreduce.jobhistory.webapp.address</name> <value>java16.zhanghao.com:19888</value></property>c) 将修改后的配置文件分发到其他服务器中[jerry@java14 hadoop-2.5.0]$ scp -r etc/hadoop/yarn-site.xml java15:/opt/modules/hadoop-2.5.0/etc/hadoop/[jerry@java14 hadoop-2.5.0]$ scp -r etc/hadoop/mapred-site.xml java15:/opt/modules/hadoop-2.5.0/etc/hadoop/[jerry@java14 hadoop-2.5.0]$ scp -r etc/hadoop/yarn-site.xml java16:/opt/modules/hadoop-2.5.0/etc/hadoop/ [jerry@java14 hadoop-2.5.0]$ scp -r etc/hadoop/mapred-site.xml java16:/opt/modules/hadoop-2.5.0/etc/hadoop/c) 启动服务器[jerry@java14 hadoop-2.5.0]$ ./sbin/yarn-daemon.sh start nodemanager[jerry@java15 hadoop-2.5.0]$ ./sbin/yarn-daemon.sh start nodemanager[jerry@java16 hadoop-2.5.0]$ ./sbin/yarn-daemon.sh start resourcemanager[jerry@java16 hadoop-2.5.0]$ ./sbin/mr-jobhistory-daemon.sh start historyserver各个服务器启动的进程有:[jerry@java14 hadoop-2.5.0]$ jps4799 NodeManager3796 DataNode3709 NameNode4821 Jps[jerry@java15 hadoop-2.5.0]$ jps6555 NodeManager6711 Jps5452 DataNode5560 SecondaryNameNode[jerry@java16 hadoop-2.5.0]$ jps5918 DataNode7652 Jps7210 ResourceManager7466 NodeManager7615 JobHistoryServer
二、HDFS的HA方案[High Availability]
通过备份实现HAa.冷备份:手动切换b.热备份:自动切换High Availability With QJM:通过日志服务实现High Availability With NFS:通过网络文件实现
1) hdfs-site.xml <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>java14.zhanghao.com:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>java15.zhanghao.com:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>java14.zhanghao.com:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>java15.zhanghao.com:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://java14.zhanghao.com:8485;java15.zhanghao.com:8485;java16.zhanghao.com:8485/mycluster</value> </property> ##通过代理访问active状态的namenode <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> ##两个namenode之间的隔离 <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/jerry/.ssh/id_rsa</value> </property>2) core-site.xml文件 ##访问入口 <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> ##journalnode数据存储的位置 <property> <name>dfs.journalnode.edits.dir</name> <value>/opt/modules/hadoop-2.5.0/data/jn</value> </property>3) 将java14修改的配置文件分发到 java15,java16对应目录中 [jerry@java14 hadoop-2.5.0]$ scp -r etc/hadoop/core-site.xml etc/hadoop/hdfs-site.xml java15:/opt/modules/hadoop-2.5.0/etc/hadoop/ [jerry@java14 hadoop-2.5.0]$ scp -r etc/hadoop/core-site.xml etc/hadoop/hdfs-site.xml java16:/opt/modules/hadoop-2.5.0/etc/hadoop/4) 启动step1:分别在java14,java15,java16服务器上启动journalnode进程 [jerry@java14 hadoop-2.5.0]$ ./sbin/hadoop-daemon.sh start journalnode [jerry@java15 hadoop-2.5.0]$ ./sbin/hadoop-daemon.sh start journalnode [jerry@java16 hadoop-2.5.0]$ ./sbin/hadoop-daemon.sh start journalnodeStep2:在[nn1]上,对其进行格式化,并启动: [jerry@java14 hadoop-2.5.0]$ ./bin/hdfs namenode -format [jerry@java14 hadoop-2.5.0]$ ./sbin/hadoop-daemon.sh start namenodeStep3:在[nn2]上,同步nn1的元数据信息: $ ./bin/hdfs namenode -bootstrapStandbyStep4:启动[nn2]: $ ./sbin/hadoop-daemon.sh start namenodeStep5:将[nn1]切换为Active $ ./bin/hdfs haadmin -transitionToActive nn1Step6:在[nn1]上,启动所有datanode $ ./sbin/hadoop-daemons.sh start datanode
补充:实现SSh协议的免秘钥登录过程http://blog.csdn.net/gsnumen/article/details/7293266[参考][jerry@java14 hadoop-2.5.0]$ ssh java15jerry@java15's password: Last login: 2017 from java14.zhanghao.com[jerry@java15 ~]$ ls1.生成公钥私钥对[jerry@java14 hadoop-2.5.0]$ ssh-keygen -t rsa2.拷贝公钥给对方[jerry@java14 .ssh]$ ssh-copy-id jerry@java15在java14-》java14,java14-》java15、java14-》java16实现免秘钥验证[jerry@java14 .ssh]$ ssh-copy-id jerry@java14[jerry@java14 .ssh]$ ssh-copy-id jerry@java15[jerry@java14 .ssh]$ ssh-copy-id jerry@java16
阅读全文
0 0
- hadoop集群和HA搭建
- Hadoop HA 集群搭建
- 搭建Hadoop HA集群
- Hadoop HA集群搭建
- Hadoop---HA集群搭建
- hadoop集群搭建-Namenode HA和ResourceManager HA
- 【笔记】Hadoop-HA集群搭建
- hadoop HA集群的搭建
- Hadoop HA高可用集群原理和搭建
- Hadoop-2.6.0集群HA搭建
- hadoop HA 高可用集群部署搭建
- hadoop集群搭建HDFS、HA、 YARN
- hadoop集群搭建HDFS、HA、 YARN
- Hadoop HA高可用集群搭建
- Hadoop高可用集群搭建(HA)
- hadoop HA集群搭建(red hat)
- 基于docker的hadoop HA 集群搭建
- Hadoop HA 高可用集群搭建
- MyBatis Generator 常用配置记录说明
- FFmpeg安装(windows环境)
- VS2015与Win10SDK的问题
- 职业规划
- 1708-FatMouse and Cheese
- hadoop集群和HA搭建
- maven 倒第三方jar包
- typedef 用法总结
- 讲讲Linux系统工程师的职业规划
- day_11_9 实现数组交换,排序
- 不再傻傻分不清:atoi, itoa, iota
- C语言学习内容总结2017/11/2
- 343. Integer Break (动态规划)
- BAT文件语法和技巧(bat文件的编写及使用)