Hadoop 高级(一)
1)Hadoop集群的规划
学习部署:1台 4G VM
集群部署:3台/5台 VM
生产部署:实时数仓1+2+24
2)Zookeeper组件 http://zookeeper.apache.org/
2.1 概念
分布式服务框架。协调服务
Q:HDFS的NN(namenode)和SNN(second namenode),checkpoint多久同步一次?哪些参数控制?参数在哪找?
如:12点checkpoint------------》13点cp;12.30 NN挂了,只能恢复12点cp的元数据,如何解决这个问题?
A:额
2.2 zookeeper部署节点
zk部署节点必须是2n+1>=3 ,选举
100台以内:7/9
100台以上: 13/15 (经验值)控制好数量,不是越多越好,减少选举leader所用的成本
3)Hadoop集群的HDFS、YARN HA的架构原理
3.1 HDFS HA
3.2 YARN HA
3.3 补充
3.3.1 部署了HDFS HA的访问,不要直接访问IP
DN(数据存储)和NM(计算)部署在同一台: 数据本地化 减少网络消耗,让计算更加的快
hdfs dfs -ls hdfs://nameservice1/
假设NN1 active:
hdfs dfs -ls hdfs://192.168.137.131:8020/ active 可以的, 有读写权限
hdfs dfs -ls hdfs://192.168.137.132:8020/ standby 可以的, read only
3.3.2 热备: 元数据信息想要热备,必然要有一个公共的存储的地方 (JN)
Q:为什么HDFS HA的ZKFC要单独出来一个进程?而YARN HA没有?在哪里?
A:因为大数据里面,数据是根本。存储比计算重要(备份重于一切),所以在YARN的设计尽量简化,把ZKFC作为线程部署在RM上
4)部署
4.1 多台机器配置互相信任关系 SSH 3台VM
配置多台互相SSH信任关系(Apache HADOOP) http://blog.itpub.net/30089851/viewspace-1992210/
4.2 部署Zookeeper集群
4.2.1 wget https://www.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
4.2.2 配置zoo.cfg
dataDir=/opt/software/zookeeper/data
server.1=hadoop001:2888:3888
server.2=hadoop002:2888:3888
4.2.3 配置myid
4.2.4 scp到其他机器
4.3 部署HDFS
4.3.1 wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz
4.3.2 配置core-site.xml
4.3.3 配置hdfs-site.xml
4.3.4 配置mapred-site.xml
4.3.5 配置slaves
4.3.6 mkdir /opt/software/hadoop/tmp && chmod -R 777 tmp && mkdir /opt/software/hadoop/data/dfs
4.3.7 scp到其他机器
4.3.8 启动
cd /opt/software/hadoop/bin
./hadoop-daemon.sh start journalnode 启动JN(3台机器分开启)
cd /opt/software/hadoop/sbin
./hadoop namenode -format (要看到/opt/software/hadoop/data/dfs/name successfully)
scp /opt/software/hadoop/data/dfs 到其他机器
cd /opt/software/hadoop/bin
./hdfs zkfc
./hdfs zkfc -formatZK (格式化ZK,要看到successfully created /hadoop-ha/mycluster in ZK)
cd /opt/software/hadoop/sbin
./start-dfs.sh
4.4 部署YARN
4.4.1 配置yarn-site.xml
4.4.2 启动
cd /opt/software/hadoop/sbin
./start-yarn.sh (只启动了一个RM,另外一个机器需要手工启动)
机器2:
cd /opt/software/hadoop/sbin
yarn-daemon.sh start resourcemanager
4.5 Check
hadoop001:50070 hadoop002:50070
hadoop001:8088 hadoop002:8088
查看active和standby状态
5)作业
1. ssh多台机器互相信任关系(完成)
2. A机器去无密码执行B机器的SHELL脚本,pub文件用谁的?copy到哪了? ()
3. start-dfs.sh 进程顺序是什么?
4. HDFS 和 YARN HA从架构原理 和 启动方式有什么区别?
6)优化
1. 硬件
2. linux参数 swap 大页面 网络参数 进程数和文件数调大
3. hdfs yarn 进程的内存 timeout rpc
4. 容器 两篇博客