combiner其实属于优化方案,由于带宽限制,应该尽量map和reduce之间的数据传输数量。它在Map 端把同一个key的键值对合并在一起并计算,计算规则与reduce一致,所以combiner也可以看作特殊的Reducer。查看全文>>
map阶段处理的数据如何传递给reduce阶段,是MapReduce框架中关键的一个流程,这个流程就叫shuffle。本章节内容来看一下shuffle的工作流程和工作机制。查看全文>>
线程由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成,它不能独立拥有系统资源,但它可与同属一个进程的其它线程共享该进程所拥有的全部资源。查看全文>>
在Unix/Linux操作系统中,通过Python的os模块中封装的fork()函数可以轻松地创建一个进程。fork()函数的声明如下:查看全文>>
在Scala中,不能用类名直接访问类中的方法和字段,而是创建类的实例对象去访问类中的方法和字段。Scala中提供了object这个关键字用来实现单例模式,若单例对象名与类名相同,则把这个单例对象称作伴生对象,下面具通过体用代码演示单例对象和伴生对象的创建方法。查看全文>>
服务器每天会产生大量日志数据,并且日志文件可能存在于每个应用程序指定的data目录中,在不使用其它工具的情况下,将服务器中的日志文件规范的存放在HDFS中。通过编写简单的shell脚本,用于每天自动采集服务器上的日志文件,并将海量的日志上传至HDFS中。由于文件上传时会消耗大量的服务器资源,为了减轻服务器的压力,可以避开高峰期,通常会在凌晨进行上传文件的操作。下面按照步骤实现Shell定时日志采集功能查看全文>>