今天心情不错,所以就整一个hadoop生态系统框架图:
通过flume,kafka,sqoop收集海量数据,存储到分布式文件系统hdfs中。
分布式计算MapReduce对hdfs中的数据进行ETL,分析等操作。
通过Hive对MapReduce进行封装成HQL可以大大减轻编程人员的工作量。
以上分析计算都运行在资源调度平台Yarn中。
由于业务在多台服务器中进行,需要zookeeper进行管理。
本文包含内容:
管理工具:zookeeper
采集部分:flume,sqoop,kafka
存储部分:HDFS
资源调度:YARN
分布式计算:MapReduce
封装:Hive
官网地址:
zookeeper:https://zookeeper.apache.org/
hadoop:https://hadoop.apache.org/
flume:https://flume.apache.org/
关于Flume对接kafka采集用户日志以及sqoop采集用户业务数据的过程参考我的一篇文章:用户数据采集分析
HDFS
分布式文件存储系统
优点:存储规模大,高容错,低成本
缺点:实时性差,无法高效存储小文件,不支持随机修改,只支持追加
Hdfs文件块(block)大小:128MB(10ms/(1%)*100MB/s)
常用命令:
hdfs读写数据和网络拓扑可以参考我之前的另一篇文章:一文折服面试官-HDFS分布式文件存储系统读写过程
机架感知:
HDFS小文件处理:
(1)har小文件归档
(2)Combinetextinputformat
(3)开启jvm重用
YARN
MR运行需要yarnRunner向resourcemanager申请一个application,resourcemanager会向yarnRunner返回application提交路径......
整个原理图:
Zookeeper
Zookeeper=文件系统+通知机制
文件结构:
监听原理:
选举机制:少数服从多数,墙头草,leader,follower
半数机制:半数以上存活,集群可用。Zookeeper适合安装奇数台服务器
常用命令:
写数据流程:
累了,剩下的下一次继续。。。