图片 19.1 pic
流量比较大的日志要是直接写入 Hadoop 对 Namenode 负载过大,所以入库前合并,可以把各个节点的日志凑并成一个文件写入 HDFS。 根据情况定期合成,写入到 hdfs 里面。
咱们看看日志的大小,200 G 的 dns 日志文件,我压缩到了 18 G,要是用 awk perl 当然也可以,但是处理速度肯定没有分布式那样的给力。
图片 19.2 pic
Hadoop Streaming 原理
mapper 和 reducer 会从标准输入中读取用户数据,一行一行处理后发送给标准输出。Streaming 工具会创建 MapReduce 作业,发送给各个 tasktracker,同时监控整个作业的执行过程。
任何语言,只要是方便接收标准输入输出就可以做 mapreduce~
再搞之前我们先简单测试下 shell 模拟 mapreduce 的性能速度~
图片 19.3 pic
看下他的结果,350 M 的文件用时 35 秒左右。
图片 19.4 pic
这是 2 G 的日志文件,居然用了 3 分钟。 当然和我写的脚本也有问题,我们是模拟 mapreduce 的方式,而不是调用 shell 下牛逼的 awk,gawk 处理。
Loading...
未加载完,尝试【刷新】or【退出阅读模式】or【关闭广告屏蔽】。
尝试更换【Firefox浏览器】or【Chrome谷歌浏览器】打开多多收藏!
移动流量偶尔打不开,可以切换电信、联通、Wifi。
收藏网址:www.ziyungong.cc
(>人<;)