MapReduce知识点总结

1.企业集群的规划方案:
a. 节点分开部署主从服务
b.集群部署的节点是奇数
c.针对提供线上服务的存储组件,一般采用主从备份原则
2.组件规划(考虑版本之间的兼容性和稳定性)
3.数据目录规划(软件安装目录、数据目录、日志目录等)
核心配置(安装软件必备的)、自定义配置(根据目前的场景进行设置)
4.常见场景:
a.高可用集群:针对我们目前的配置环境
b.HDFS数据迁移:hadoop1.x —> hadoop2.x 集群升级
使用命令:distcp
执行命令:hadoop distcp hdfs://master1:8080/source hdfs://master2:8080/target
c.HDFS小文件合并
命令:archive 归档
/bin/hadoop archive -archiveName a.har /source /target
vim批量注释:
CTRL+v 可视化块
上下键选中,shift+i 添加# 再按两次esc
5.mapreduce
map的输出就是reduce的输入
6.–通过文件名称模糊匹配到文件位置:
find 目录 -name “hadoop*”
–通过文件中字符串内容查找到对应的文件
find 目录 “*.sh” | xargs grep 文件中的字符串
– sh -x run.sh 调试脚本进行输出
浏览器 master:8088
需求二:只统计白名单中的数据
cat 文件.txt | python map.py mapper_func 白名单文件 | sort -k1 | python red.py reducer_func | head
需求三:统计用户的订单记录
需求四:实现join操作:
7.MapReduce 分而治之 (shuffle)
分解—map 数据切片操作 ->split ->map输出结果有一个环形内存缓冲区(该缓冲区默认为100M),当该缓存区达到80M,在本地创建一个溢写文件,将该缓存区的数据写入该文件->数据涉及(排序(快速排序)、合并)目的:1.尽量减少写入磁盘的数据量。2.减少传输到写一个阶段的数据量 ->reduce通过jobtracker维护的整个集群的宏观信息,找到对应的map输出位置即可。

合并–reduce reduce本身也有环形内存缓冲区,阈值是80% ,生成一个split文件 ->会有后台线程不断将小文件合并为一个有序的大文件(目的:节约后面执行的时间),合并和排序(归并排序)-> 将合并的数据交给reduce,作为reduce文件的输入,通过代码逻辑处理->最终结果生成hdfs。

shuffle阶段:map的输出到reduce的输入整个阶段。在shuffle阶段致命的问题:网络带宽!
8.block是hdfs的基本单位,block是无法被map直接读取,需要通过转换为record,通过record解决了“跨block问题”,record 可以理解为一个逻辑上的记录

                                 一个文件
                                 |block1|block2|
                                 |record       |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值