1.1业务需求调研
从运维角度看,主要调研公司的有哪业务的数据运营需求,是离线计算需求还是实时计算需求。
1)离线计算组件需求:
数据采集组件:FlinkX/DataX
数据存储组件:HDFS
数据加工组件:YARN/Hive/Spark/Flink
数据服务组件:HBase/Elasticsearch/Geomesa(时空数据库)/Kylin(OLAP 引擎)/MPP 数据库(可以用作即席交互查询,如 Greenplum、HAWQ)
2)实时计算组件需求:
数据采集组件:flume/filebeat/Kafka
数据存储组件:Kafka
数据加工组件:Strom/Spark Stream/Flink Stream/Phoenix
数据服务组件:HBase/Elasticsearch/Geomesa(时空数据库)/MPP 数据库(可以用作即席交互查询,如 Greenplum、HAWQ)
1.2、业务数据量需求调研&数据保留周期调研
主要调研各个业务系统的历史数据量、每天的数据增量以及数据保留周期等指标,用来评估大数据平台的存储规划,历史数据量和数据增量需要跟业务方系统的 DBA 沟通,数据保留周期需要跟业务方数据运营人员沟通。
2、集群节点与硬件规划比如业务系统数据量每天增量 50T,保留周期为 30 天,那么 HDFS 存储容量为 50T * 30 天 * 2 倍 * 3 副本 = 9000T = 8.79P
每个机器的磁盘是 4T * 10= 40T, 每台机器的可用存储容量为 40T *0.75 = 30T,节点预估数量= 9000T / 30 = 300 节点,所以 datanode 的节点最小数量为 300 个,也是 YARN 的节点数
根据任务量和性能评估 YARN 的节点数是很难的,难以评估,所以NodeManager 节点数可以和datanode 节点数保持一致,如果算力负载过高, 根据实际情况再扩容即可。
HBase节点规划:一般开始搭建是根据 HDFS 存储公式计算即可,增加并发的考虑,一般一个 RegionSever 并发为 5000 ~1 万(优化后并发更高), 可以根据业务实际并发估计节点数量
Kafka节点规划:一般开始搭建是根据类似 HDFS 存储公式计算,一般一个 broker 并发为 5 万(优化后并发更高),可以根据业务实际并发估计节点数量
Zookeeper 节点规划:集群开始搭建时 3 节点就够用了,如果发现zookeeper 负载过高或有超时现象时可以考虑扩展到 5 节点
集群中的每个组件要做高可用,一般国企会用 CDH,互联网公司会用开源社区版演化自己平台NameNode 内存一般 100 万个 block 对应 1G 的堆内存,比如我们最大的一个集群的 block 达到了 9000 万,会占内存90G,NameNode 的内存不只存放 block,我们产线环境配置的是 200G+
集群硬件选择:
2.1、HDFS 节点配置
主节点 NameNode 主要 CPU/内存配置高些,磁盘做RAID5,容量所需不大,500G~1T 即可
从节点 datanode 内存/CPU/磁盘都有要求,我们产线存储每服务器4T*10=40T/台
2.2、YARN 节点配置
主节点 ResourceManager 主要 CPU/内存配置高些,磁盘做 RAID5,容量所需不大,500G~ 1T 即可
从节点 NodeManager 对 CPU 和内存都有要求
2.3、HBase 节点配置
主节点 Master CPU 内存中配就行
从节点 RegionServer 内存可以大些
2.4、Kafka 产线配置
3、大数据平台目录规划3.1、磁盘raid规划
OS磁盘建议RAID1,建议200G以上,并且做LVM(逻辑卷),这样可以动态调整OS空间大小,安装包需要安装在OS盘;管理节点的数据盘做RAID5,namenode的fsimage/editlog、jouralnode的fsimage/editlog、zookeeper 的数据日志都放在RAID1或RAID5上。
如下有做了 RAID1 的系统盘和做了 RAID5 的/data 盘
3.2、数据节点数据盘raid规划
数据节点的数据盘做 RAID0(一块盘做 RAID0,硬件 RAID)作为数据盘, 文件格式为 xfs,并配置 noatime,不做 LVM,最好是同构。
数据节点的数据盘:
3.3、HDFS目录规划
hdfs://user/[账户]/[数据库]/[表]/[分区]
4、网络规划建立大数据集群是要选择容量大的机房,并且要定期盘点机柜、U 位,带宽一般要支持千兆和万兆带宽,而且每台服务器要有两块网卡,每块网卡连接不同的交换机,这样某块网卡坏了或某个交换机坏了也不影响数据业务。
5、大数据平台日常运维 6、数据迁移至大数据平台FlinkX/DataX
7、HDFS之间数据迁移hadoop distcp -Dmapred.job.queue.name=default -Dmapreduce.job.name=dictcp_test -m 2 -bandwidth 10 hdfs://mybigdata/test/src/* hdfs://mybigdata/test/dist
-Dmapred.job.queue.name:YARN 资源队列名
-Dmapreduce.job.name:作业名
-bandwidth:以 MB 为单位指定每个映射的带宽
-m: map 最大数量