[精通Hadoop]
文章平均质量分 90
Avalonist
这个作者很懒,什么都没留下…
展开
-
6.2 开发YARN的应用程序
6.2 开发YARN的应用程序 YARN能引入其他的计算模式到Hadoop中。Hadoop 2.x、MapReduce、Pig和Hive都有AM的库和对应的客户端。开发人员可以使用YARN API编写自己的应用并运行在现有的Hadoop框架内。同样,企业如果已经有大量的数据集在HDFS中,也可以编写自定义的应用来使用它们,而不需要提供新的集群或者迁移已有的数据。 Storm是一个已经移转载 2017-11-16 12:37:15 · 1248 阅读 · 0 评论 -
6.1 YARN的架构
6.1 YARN的架构 下图展示了基于YARN的集群的架构,这个集群的模块主要有以下5种类型。资源管理器(Resource Manager,RM):每个集群里面都有一个RM守护进程,专门负责集群中可用资源的分配和管理。节点管理器(Node Manager,NM):每个节点都有一个NM守护进程,负责节点的本地资源管理。在RM中,NM代表本地节点。Application Master(转载 2017-11-16 10:37:01 · 255 阅读 · 0 评论 -
5.4 压缩
5.4 压缩 为了节省存储空间和网络数据传输量,我们会反复提到压缩这个问题。当处理大量数据时,只要有办法减少存储空间和网络数据传输量,就能在速度和成本两方面给予效率提升。压缩就是这样一种策略,能帮助基于Hadoop更高效。 所有的压缩技术都在压缩速度和压缩效率之间进行了折衷。压缩率越高,压缩速度越慢,反之亦然。每种压缩技术都可以通过调整来权衡以上两个方面。例如,gzip压缩工具提供了选项-1到-转载 2017-11-16 09:46:24 · 285 阅读 · 0 评论 -
5.3 文件格式
5.3 文件格式 有很多文件格式自身也是数据结构。在Hive那章中,我们介绍了ORC文件——优化记录列式文件存储。Hadoop还支持其他一些流行的文件格式。5.3.1 Sequence文件格式 Sequence文件是包含二进制键值对的一种文件格式。Sequence文件中的每一条记录都含有一个键和键对应的值。Sequence文件把多个较小的文件合并成单个较大的文件,这样可以缓解Had转载 2017-11-15 22:09:55 · 649 阅读 · 0 评论 -
5.2 Avro序列化
5.2 Avro序列化 Avro是一个流行的序列化框架,其主要特点如下:支持多种数据结构的序列化。支持多种编程语言,而且序列化速度快,字节紧凑。Avro代码生成功能是可选的。无需生成类或代码,即可读写数据或使用RPC传输数据。 Avro使用schema来读取和写入数据。schema有助于简洁标识序列化后的对象。在Java序列化中,对象类型的元数据会被写入序列化后的字节流中,转载 2017-11-15 16:04:47 · 487 阅读 · 0 评论 -
2.6 数据连接的处理
2.6 数据连接的处理 在MapReduce中,连接可以在Map任务中完成,也可以在Reduce任务中完成。前者被称为Map侧的连接,后者被称为Reduce侧的连接。2.6.1 Reduce侧的连接 基本的原理是,在每条记录添加一个标签指明数据的来源,并在Map任务中提取连接键。Reduce任务收到同一个连接键的所有记录并执行连接操作。如果参与连接的数据集非常小,可以通过一个旁路通转载 2017-11-15 12:56:01 · 161 阅读 · 0 评论 -
2.3 Reduce任务
2.3 Reduce任务 Reduce任务是一个数据聚合的步骤。如果Reduce任务的数量没有指定,默认值为1。只执行1个Reduce,可能会面临这个Reduce节点负载过大的风险,而使用过多的Reduce任务则意味着复杂的洗牌处理(shuffle),并使输出文件的数量激增,从而对NameNode造成很大的压力。想要确定一个最优的Reduce任务的数量,关键是要理解数据分布和分片函数。转载 2017-11-15 11:49:13 · 364 阅读 · 0 评论 -
2.2Map任务
2.2 Map任务 Map阶段的效率是由作业的输入数据的特点决定的。我们已经知道,过多的小文件会出现大量的分片,从而导致Map任务的激增。另一个需要特别注意的重要统计项是Map任务的平均运行时间。太多或者太少的Map任务都会对作业的性能产生不利影响。关键时让这两者达到一个平衡点,二这又取决于应用和数据本身。根据实践总结的一条经验法则是:单个Map任务的执行的时间大约保持在1至3分钟。2.转载 2017-11-14 22:59:52 · 566 阅读 · 0 评论 -
2.1MapReduce输入
2.1MapReduce输入 MapReduce作业依赖于Map阶段为它提供原始数据的输入,这个阶段提供了能获得的最大并行度,因此它的智能化对一个作业的提速至关重要。数据被分成块(chunk),然后Map任务对每块数据进行操作。每块数据被称为InputSplit。[//后面称分片]Map任务需要在每个InputSplit类上进行操作。还有其他两种类,InputFormat和RecordRea转载 2017-11-14 11:59:29 · 501 阅读 · 0 评论 -
5.1 Hadoop数据序列化
5.1 Hadoop数据序列化 尽管我们看到的数据是结构化的形式,但数据的原始形式是序列化的比特或比特流。数据以这种原始形式通过网络传输,然后保存在RAM或其他持久性存储媒体中。序列化过程就是把结构化的数据转换为原始形式。反序列化过程则相反,是把数据从原始比特流形式重建为结构形式。 Hadoop中不同的组件使用远程调用(Remote Procedure Call,RPC)进行交互。在发送调用函数转载 2017-11-15 15:00:13 · 416 阅读 · 0 评论