MapReduce

【MapReduce】Mapreduce基础知识整理(三)

女生的网名这么多〃 提交于 2019-12-14 23:41:52
目录 1. 为什么需要自定义输入 2. 默认输入源码分析 2.1 org.apache.hadoop.mapreduce.Mapper 2.2 org.apache.hadoop.mapred.MapTask 2.3 org.apache.hadoop.mapreduce.lib.map.WrappedMapper 2.4 org.apache.hadoop.mapreduce.task.MapContextImpl 2.5 org.apache.hadoop.mapred.MapTask.NewTrackingRecordReader 2.6 org.apache.hadoop.mapreduce.JobContext#getInputFormatClass 2.7 org.apache.hadoop.mapreduce.task.JobContextImpl#getInputFormatClass 2.8 org.apache.hadoop.mapreduce.lib.input.TextInputFormat 2.9 org.apache.hadoop.mapreduce.lib.input.LineRecordReader 2.10 源码总结 3. 自定义输入 1. 为什么需要自定义输入 我们都知道namenode负责存储文件的metadata,运行时所有数据都保存到内存

MapReduce详解(二)

拥有回忆 提交于 2019-12-14 21:50:03
MapReduce详解(二) 今天介绍的主要是运行环境是MR ON YARN 一.MR详解 MR是Hadoop里面的一种计算框架 map:映射 shuffle:洗牌 reduce:聚合 既然是计算框架,那肯定有数据输入端、数据输出端,首先先把数据通过input split ,切分成一个个分片,一个分片对应着一个map task任务,先把数据映射成key、value键值对,然后再通过shuffle,把相同的key洗到一起,最后通过reduce聚合操作,把相同的key聚合成一个key、value键值对,最后再把这个聚合的数据输出 shuffle主要是洗牌的作用,把map task的输出作为reduce task的输入数据 详细介绍: http://blog.itpub.net/30089851/viewspace-2095837 二.MR ON YARN的详细流程 RM: applications Manager 应用程序管理器 resource scheduler 资源memory+cpu调度器 1.首先client端向Yarn提交一个MR的应用程序,rm会给该job分配一个container(容器,类似一个空间),运行该job的ApplicationMaster 2.ApplicationMaster会向applications Manager注册下

MapReduce Shuffle 和 Spark Shuffle 区别看这篇

家住魔仙堡 提交于 2019-12-14 19:18:21
MapReduce Shuffle 和 Spark Shuffle 区别看这篇即可 Shuffle的本意是洗牌、混洗的意思,把一组有规则的数据尽量打乱成无规则的数据。而在MapReduce中,Shuffle更像是洗牌的逆过程,指的是将map端的无规则输出按指定的规则“打乱”成具有一定规则的数据,以便reduce端接收处理。其在MapReduce中所处的工作阶段是map输出后到reduce接收前,具体可以分为map端和reduce端前后两个部分。 在shuffle之前,也就是在map阶段,MapReduce会对要处理的数据进行分片(split)操作,为每一个分片分配一个MapTask任务。接下来map会对每一个分片中的每一行数据进行处理得到键值对(key,value)此时得到的键值对又叫做“中间结果”。此后便进入reduce阶段,由此可以看出Shuffle阶段的作用是处理“中间结果”。 由于Shuffle涉及到了磁盘的读写和网络的传输,因此Shuffle性能的高低直接影响到了整个程序的运行效率。 MapReduce Shuffle Hadoop的核心思想是MapReduce,但shuffle又是MapReduce的核心。shuffle的主要工作是从Map结束到Reduce开始之间的过程。shuffle阶段又可以分为Map端的shuffle和Reduce端的shuffle。

Hive架构原理

房东的猫 提交于 2019-12-14 15:33:37
什么是Hive Hive是由Facebook开源用于解决海量结构化日志的数据统计;Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射 成一张表,并提供类SQL查询功能,底层计算引擎默认为Hadoop的MapReduce(本质是将sql转化成mapreduce程序),可以将引擎更换为Spark/Tez; Hive架构 Hive架构.PNG 如图中所示,Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口。 1)用户接口:Client CLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive) 2)元数据:Metastore 元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等; 默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore 推荐学习博客 数仓--Hive--元数据表结构学习 3)Hadoop 使用HDFS进行存储,使用MapReduce进行计算。 4)驱动器:Driver (1)解析器(SQL Parser)

零基础就可搞懂的Hadoop架构原理

穿精又带淫゛_ 提交于 2019-12-14 07:51:17
我今天花了大半个下午的时间,写了这篇hadoop的架构,全篇都是以大白话的形式,也算是为后面更加详细的每一部分开了个好头吧,如果喜欢请点转发和关注,如果有疑问,直接在评论里说出来,大家一起解决,才能进步。作者:IT技术管理那些事儿 一、概念 Hadoop诞生于2006年,是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。Hadoop是根据Google公司发表的MapReduce和Google档案系统的论文自行实作而成。 Hadoop与Google一样,都是小孩命名的,是一个虚构的名字,没有特别的含义。从计算机专业的角度看,Hadoop是一个分布式系统基础架构,由Apache基金会开发。Hadoop的主要目标是对分布式环境下的“大数据”以一种可靠、高效、可伸缩的方式处理。 Hadoop框架透明地为应用提供可靠性和数据移动。它实现了名为MapReduce的编程范式:应用程序被分割成许多小部分,而每个部分都能在集群中的任意节点上执行或重新执行。 Hadoop还提供了分布式文件系统,用以存储所有计算节点的数据,这为整个集群带来了非常高的带宽。MapReduce和分布式文件系统的设计,使得整个框架能够自动处理节点故障。它使应用程序与成千上万的独立计算的电脑和PB级的数据。 二、组成 1.Hadoop的核心组件

Hadoop WordCount sorted by word occurrences

孤街醉人 提交于 2019-12-14 04:10:00
问题 I need to run WordCount which will give me all the words and their occurrences but sorted by the occurrences and not by the alphabet I understand that I need to create two jobs for this and run one after the other I used the mapper and the reducer from Sorted word count using Hadoop MapReduce package org.myorg; import java.io.IOException; import java.util.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.*; import org.apache.hadoop.mapred.*; import org.apache.hadoop.mapreduce

Running two mapper and two reducer for simple hadoop mapreduce jobs

跟風遠走 提交于 2019-12-14 03:46:28
问题 I just wanted to have a better understanding on using multiple mappers and reducers.I want to try this out using a simple hadoop mapreduce Word count job.I want to run two mapper and two reducer for this wordcount job.Is there that I need to configure manually on the configuration files or is it just enough to just make changes on the WordCount.java file. I'm running this job on a Single node.And I'm running this job as $ hadoop jar job.jar input output And i've started $ hadoop namenode

Testing multiple outputs with MRUnit

老子叫甜甜 提交于 2019-12-14 03:45:06
问题 Is there a way to test a reduce class with MRUnit that uses MultipleOutputFormat to write to multiple output files? 回答1: It looks like support for MultipleOutputs is still work in progress in the MRUnit Jira. That being said, I found someone who implemented his own drivers subclassing MRUnit's MapReduceDriver to make it work with MultipleOutputs here, hope that helps. 回答2: MRUnit 1.1.0 has been released in June 2014 (see http://mrunit.apache.org/) This latest release includes support for

How to set OutputCommitter config?

假装没事ソ 提交于 2019-12-14 03:19:00
问题 I have a mapreduce code that submits job using JobClient . I keep getting this null pointer error stack 12/12/10 12:42:44 INFO mapred.LocalJobRunner: OutputCommitter set in config null Exception in thread "main" java.lang.NullPointerException at org.apache.hadoop.mapred.JobClient$NetworkedJob.<init>(JobClient.java:226) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:924) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:844) at java.security.AccessController.doPrivileged

MapReduce Job to Collect All Unique Fields in HDFS Directory of JSON

帅比萌擦擦* 提交于 2019-12-14 02:38:38
问题 My question is in essence the application of this referenced question: Convert JSON to Parquet I find myself in the rather unique position of having to semi-manually curate an Avro schema for the superset of fields contained in JSON files (composed of arbitrary combinations of known resources)in an HDFS directory. This is part of an ETL pipeline I am trying to develop to convert these files to parquet for much more efficient/easier processing in Spark. I have never written a MapReduce program