Hadoop
文章平均质量分 82
泰山不老生
耿嘉安,15年IT经验。《深入理解Spark》与《Spark内核设计的艺术》两书的作者。Apache Spark Contributor和MongoDB Contributor。曾就职于阿里巴巴,基于ODPS构建大数据商业解决方案——御膳房。曾负责艺龙大数据平台的架构工作。现在负责360对于Spark的运维、调优、扩展、开发等工作。在大量的工作实践中,对J2EE、JVM、Tomcat、Spring、Hadoop、Spark、MySQL、Redis、Zookeeper都有深入研究。早期从事J2EE企业级应用开发,对Java相关技术有独到见解。业余喜欢研究中国古代历史,古诗词,旅游,足球等。
展开
-
Hadoop2.6.0的FileInputFormat的任务切分原理分析(即如何控制FileInputFormat的map任务数量)
前言首先确保已经搭建好Hadoop集群环境,可以参考《Linux下Hadoop集群环境的搭建》一文的内容。我在测试mapreduce任务时,发现相比于使用Job.setNumReduceTasks(int)控制reduce任务数量而言,控制map任务数量一直是一个困扰我的问题。好在经过很多摸索与实验,终于梳理出来,希望对在工作中进行Hadoop进行性能调优的新人们有个借鉴。本文只针对FileI...原创 2016-04-12 13:42:17 · 18614 阅读 · 0 评论 -
Spark2.1.0之模块设计
在阅读本文之前,读者最好已经阅读了《Spark2.1.0之初识Spark》和《Spark2.1.0之基础知识》两篇文章。本文将主要介绍Spark2.1.0版本中的模块设计以及各个模块的功能和特点。整个Spark主要由以下模块组成:Spark Core:Spark的核心功能实现,包括:基础设施、SparkContext(Application通过SparkContext提交)、Spark执行环境(S...原创 2018-06-05 10:00:02 · 1782 阅读 · 2 评论 -
Spark2.1.0之模型设计与基本架构
Spark编程模型 正如Hadoop在介绍MapReduce编程模型时选择word count的例子,并且使用图形来说明一样,笔者对于Spark编程模型也选择用图形展现。 Spark 应用程序从编写到提交、执行、输出的整个过程如图2-5所示。图2-5 代码执行过程图2-5中描述了Spark编程模型的关键环节的步骤如下:用户使用SparkContext提供的API(常用的有t...原创 2018-06-12 09:41:32 · 2272 阅读 · 6 评论 -
Spark2.1.0之初识Spark
随着近十年互联网的迅猛发展,越来越多的人融入了互联网——利用搜索引擎查询词条或问题;社交圈子从现实搬到了Facebook、Twitter、微信等社交平台上;女孩子们现在少了逛街,多了在各大电商平台上的购买;喜欢棋牌的人能够在对战平台上找到世界各地的玩家对弈。在国内随着网民数量的持续增加,造成互联网公司的数据在体量、产生速度、多样性等方面呈现出巨大的变化。 互联网产生的...原创 2018-04-09 09:48:51 · 4763 阅读 · 12 评论 -
Hadoop2.6.0运行mapreduce之推断(speculative)执行(上)
前言当一个应用向YARN集群提交作业后,此作业的多个任务由于负载不均衡、资源分布不均等原因都会导致各个任务运行完成的时间不一致,甚至会出现一个任务明显慢于同一作业的其它任务的情况。如果对这种情况不加优化,最慢的任务最终会拖慢整个作业的整体执行进度。好在mapreduce框架提供了任务推断执行机制,当有必要时就启动一个备份任务。最终会采用备份任务和原任务中率先执行完的结果作为最终结果。由于具体分析推原创 2016-05-12 14:39:44 · 23882 阅读 · 0 评论 -
Hadoop2.6.0运行mapreduce之推断(speculative)执行(下)
前言在《Hadoop2.6.0运行mapreduce之推断(speculative)执行(上)》一文中对推断执行技术的背景进行了介绍,并且在Hadoop集群上做了一些测试以验证mapreduce框架的推断执行。最后还从源码分析的角度解读了DefaultSpeculator的初始化和启动过程,其中涉及DefaultSpeculator的实例化、LegacyTaskRuntimeEstimator的实原创 2016-05-19 10:00:07 · 11350 阅读 · 0 评论 -
附录E Hadoop的word count例子
注:本文是为了配合《Spark内核设计的艺术——架构设计与实现》一书的内容而编写,目的是为了节省成本、方便读者查阅。书中附录E的内容都在本文呈现。 这里主要演示Hadoop1.0版本中的word count例子,用于和Spark中的实现对比。package org.apache.hadoop.examples;import java.io.IOException;import java.ut...原创 2018-03-04 16:54:09 · 758 阅读 · 0 评论 -
Hadoop2.6.0运行mapreduce之Uber模式验证
在有些情况下,运行于Hadoop集群上的一些mapreduce作业本身的数据量并不是很大,如果此时的任务分片很多,那么为每个map任务或者reduce任务频繁创建Container,势必会增加Hadoop集群的资源消耗,并且因为创建分配Container本身的开销,还会增加这些任务的运行时延。如果能将这些小任务都放入少量的Container中执行,将会解决这些问题。原创 2016-05-05 14:55:38 · 25595 阅读 · 2 评论 -
Hadoop2.6.0中YARN底层状态机实现分析
Hadoop2.x.x版本的底层实现中作了很多优化:用状态机对各种对象生命周期和状态转移进行管理;采用事件机制避免线程同步与阻塞;采用Protocol Buffers优化RPC性能;采用Apache Avro优化日志等。本文主要针对YARN中状态机的实现进行分析,在这个过程中,会捎带一些事件的内容。原创 2016-04-29 08:30:19 · 24955 阅读 · 2 评论 -
记Hadoop2.5.0线上mapreduce任务执行map任务划分的一次问题解决
近日在线上发现有些mapreduce作业的执行时间很长,我们需要解决这个问题。输入文件的大小是5G,采用了lzo压缩,整个集群的默认block大小是128M。本文将详细描述这次线上问题的排查过程。原创 2016-07-14 13:31:59 · 14063 阅读 · 2 评论 -
Hadoop旧mapreduce的map任务切分原理
最近在工作过程中接触一些Hive数据仓库中的表,这些表实际是从关系型数据库通过Sqoop抽到Hive的。在开发过程中对map任务的划分进行性能调优,发现mapreduce中关于FileInputFormat的参数调整都不起作用,最后发现这些老任务都是用旧版的mapreduce开发的,于是顺便研究下旧版mapreduce的任务划分策略。原创 2016-06-16 09:47:35 · 11469 阅读 · 4 评论 -
Hadoop2.6.0配置参数查看小工具
使用Hadoop进行离线分析或者数据挖掘的工程师,经常会需要对Hadoop集群或者mapreduce作业进行性能调优。性能调优的前提是需要能准确知道目前针对Hadoop集群或者mapreduce作业配置的参数。本文将针对这一需求,基于Hadoop开发一个简单实用的工具查询查看各种参数。原创 2016-04-21 15:31:50 · 17631 阅读 · 0 评论 -
Linux下Hadoop2.6.0集群环境的搭建
本文旨在提供最基本的,可以用于在生产环境进行Hadoop、HDFS、Hbase分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用。原创 2016-04-11 11:50:43 · 20879 阅读 · 18 评论 -
Hadoop2.6.0子项目hadoop-mapreduce-examples的简单介绍
学习Hadoop的同学们,一定知道如果运行Hadoop自带的各种例子。hadoop-mapreduce-examples项目中还提供了这些例子,本文就其中例子的执行方式进行分析。看看它能否让我们学习mapreduce编程变得更加容易。原创 2016-04-18 11:41:44 · 19133 阅读 · 0 评论 -
Hadoop2.6.0的事件分类与实现
说实在的,在阅读Hadoop YARN的源码之前,我对于java枚举的使用相形见绌。YARN中实现的事件在可读性、可维护性、可扩展性方面的工作都值得借鉴。原创 2016-04-26 10:45:05 · 13239 阅读 · 2 评论 -
Spark2.1.0——SparkContext概述
Spark应用程序的提交离不开Spark Driver,后者是驱动应用程序在Spark集群上执行的原动力。了解Spark Driver的初始化,有助于读者理解Spark应用程序与Spark Driver的关系。Spark Driver的初始化始终围绕着SparkContext的初始化。SparkContext可以算得上是Spark应用程序的发动机引擎,轿车要想跑起来,发动机首先要启动。Spar...原创 2018-11-12 10:07:23 · 2805 阅读 · 0 评论