1. Hadoop生态圈
2. Hadoop核心模块
Hadoop Common: 为其他Hadoop模块提供基础设施。
Hadoop HDFS: 一个高可靠、高吞吐量的分布式文件系统
Hadoop MapReduce:一个分布式的离线并行计算框架
Hadoop YARN:一个新的MapReduce框架,任务调度与资源管理
3. HDFS
DataNode:用来保存数据块,提供数据的查询,并定期向NameNode发送请求,确认存活及文件的正确性,通过校验码对比。默认每个数据块64M。
NameNode:文件系统树以及文件树中所有的文件和文件夹的元数据(会被保存到硬盘),记录着每个文件中各个块所在的数据节点的位置信息
4. MapReduce
1. python MapReduce
2. Hadoop MapReduce
Map任务处理
① 读取输入文件内容,解析成<key1, value1>
② 重写map方法,编写业务逻辑输出新的<key2, value2>
③ 对<key2, value2>进行排序,写入HDFS
Reduce任务处理
①对多个map任务的输出<key2, value2>,按照不同的分区,通过网络copy到不同的reduce节点
②对<key2, value2>进行合并、排序。重写reduce函数,对输入的<key2, value2>处理,<key3, value3>
③把reduce的输出保存到HDFS中
3. MapReduce demo
a. 运行程序,该过程必须保证output目录不存在,且为空,要不然会出现如下错误
b. 删除output目录,运行jar文件