
Hadoop
ZG_24
这个作者很懒,什么都没留下…
展开
-
Hadoop之MapReduce编写入门和提交集群运行
1. MapReduce编写入门对于一个MapReduce程序,我们需要编写三个类。第一个类是Mapper类,用于实现map的逻辑。第二个类是Reducer类,用于实现reduce逻辑。第三个类用来描述整个逻辑,来建立业务逻辑间的关联(map与reduce的关联)1.1. Mapper类import java.io.IOException;import org.apache.commons.lan...原创 2018-05-17 00:56:50 · 370 阅读 · 0 评论 -
Hadoop之分布式集群高可用性(HA)模式部署详解与Zookeeper
1 分布式协调技术 提到zookeeper,首先需要理解什么是分布式协调技术。分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果,如下图所示: 在这图中有三台机器,每台机器各跑一个应用程序。然后我们将这三台机器通过网络将其连接起来,构成一个系统来为用户提供服务,对...原创 2018-06-16 19:24:46 · 928 阅读 · 0 评论 -
Hadoop实战之自定义分组的实现
一 Hadoop中自带的Partitioner从源码可以看出,现在是根据key的哈希值进行分组的。/** Partition keys by their {@link Object#hashCode()}. */@InterfaceAudience.Public@InterfaceStability.Stablepublic class HashPartitioner<K, V>...原创 2018-06-09 13:44:37 · 490 阅读 · 0 评论 -
Hadoop实战之自定义排序实现
一 在javaBean中定义排序规则(Compare方法)import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;import org.apache.hadoop.io.Writable;import org.apache.hadoop.io.WritableComparable;p...原创 2018-06-08 15:22:45 · 542 阅读 · 0 评论 -
Hadoop实战之流量求和MR程序开发
一 数据格式实现针对每个手机号码实现流量(上行、下行)求和。二 自定义JavaBean当map输出的“value”包含多个值的时候,我们可以自定义JavaBean,来将需要的数据封装在一起。import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;import org.apache.had...原创 2018-06-07 22:59:08 · 454 阅读 · 0 评论 -
Hadoop实战之多个job在同一个main方法中提交
有两种方式,一般是用shell脚本。还可以在main函数中编写,例如: public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); //先构造job_one Job job_one = Job.getInstance(conf); ...原创 2018-06-14 11:12:20 · 1218 阅读 · 1 评论 -
Hadoop实战之倒排索引的MR实现
一 目标:实现倒排索引由于多个文件得到如下结果:二 分析---------------------------------mapper//context.wirte("hello->a.txt", "1")//context.wirte("hello->a.txt", "1")//context.wirte("hello->a.txt", "1"原创 2018-06-13 23:33:12 · 368 阅读 · 0 评论 -
Hadoop之MR程序的组件全貌及textinputformat对切片规划的源码分析
一 MR程序的组件全貌之前的文章中已经描述过了大部分的组件。目前没有接触过的只剩InputFormat、RecordReaders、OutputFormat。InputFormat和RecordReaderHadoop提出了InputFormat的概念org.apache.hadoop.mapreduce包里的InputFormat抽象类提供了如下列代码所示的两个方法public abstrac...原创 2018-06-13 12:57:09 · 407 阅读 · 0 评论 -
Hadoop之分块、分片与shuffle机制详解
一 分块(Block) HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB。与单磁盘文件系统相似,存储在 HDFS上的文件均存储为多个块,不同的是,如果某文件大小没有到达64MB,该文件也不会占据整个块空间。在分布式的HDFS集群上,Hadoop系统保证一个块存储在一个datanode上。 把File划分成Block,...原创 2018-06-11 15:20:55 · 4693 阅读 · 0 评论 -
Hadoop之map/reduce之间的shuffle,partition,combiner过程的详解
Shuffle的本意是洗牌、混乱的意思,类似于java中的Collections.shuffle(List)方法,它会随机地打乱参数list里的元素顺序。MapReduce中,所谓Shuffle过程可以大致的理解成:怎样把map task的输出结果有效地传送到reduce输入端。也可以这样理解, Shuffle描述着数据从map task输出到reduce task输入的这段过程。 ...原创 2018-06-11 14:50:17 · 1213 阅读 · 0 评论 -
Hadoop中的RPC应用实例2
1.服务端接口public interface LoginServiceInterface { public static final long versionID=1L; public String login(String username,String password);}实现类public class LoginServiceImpl implements LoginServiceIn...原创 2018-05-16 19:08:34 · 205 阅读 · 0 评论 -
Hadoop中的RPC应用实例1
hadoop作为分布式的系统, 集群机器之间的通信是最基本,最常见的需求。这种需求本质上是IPC, 即进程间通信。 按照传统的UINX编程模型,进程间通信无非是如下的几种方式:管道, FIFO, 消息队列, 信号量, 共享存储, 套接字。只有套接字是可以跨机器的网络通信, 能满足hadoop的需求。通常情况下, 网络通信的程序使用显式网络编程(即直接使用java.net包)。比如Web浏览器, W...原创 2018-05-16 18:44:31 · 367 阅读 · 0 评论 -
Hadoop之RPC机制
1 RPC机制介绍在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。123456public class Test { public static void main(String[] args) { HelloWorldService helloWorldService =...原创 2018-05-12 21:53:05 · 315 阅读 · 0 评论 -
Hadoop之本地运行模式详解
Hadoop的运行模式分为3种:本地运行模式,伪分布运行模式,集群运行模式,相应概念如下: 1、独立模式即本地运行模式(standalone或local mode) 无需运行任何守护进程(daemon),所有程序都在单个JVM上执行。由于在本机模式下测试和调试MapReduce程序较为方便,因此,这种模式适宜用在开发阶段。 2、伪分布运行模式 伪分布:如果Hadoop对应的Java进程都运行在一个...原创 2018-05-12 14:17:19 · 1807 阅读 · 0 评论 -
Hadoop之MapReduce程序的3种集群提交运行模式详解
1.MapReduce程序的集群运行模式1MapReduce程序的集群运行模式1—将工程打成jar包,上传到服务器,然后用hadoop命令hadoop jar xxx.jar 将jar包分发到集群中运行。wordcount代码:package MapReduce;import java.io.IOException;import org.apache.hadoop.conf.Configu...原创 2018-05-12 13:07:54 · 1951 阅读 · 0 评论 -
Hadoop之HDFS的Java客户端编写
在使用MapReduce框架进行开发时,总会使用Configuration类的一个实例对象去初始化一个任务,然后进行任务提交,而在整个任务执行过程中,客户点实例化的Configuration的对象,将作为整个任务过程中参数版本,任务执行过程中所需要的所有参数都是从客户端实例化的Configuration对象中进行获取。 Configuration初始化时主要有两步:读取默认文...原创 2018-05-12 00:27:52 · 472 阅读 · 0 评论 -
Hadoop中的序列化机制
1 序列化的概念1、什么是序列化? 将结构化对象转换成字节流以便于进行网络传输或写入持久存储的过程。 2、什么是反序列化? 将字节流转换为一系列结构化对象的过程。2 序列化用途:1、作为一种持久化格式。 2、作为一种通信的数据格式。 3、作为一种数据拷贝、克隆机制。3 Java序列化和反序列化1、创建一个对象并实现Serializable 2、序列化:ObjectOutputStream.writ...原创 2018-05-17 20:27:15 · 1434 阅读 · 0 评论 -
Hadoop Yarn框架原理及运作机制
1 YARN基本架构YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster。其中ResourceManager负责整个系统的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。2 YARN基本组成结构...原创 2018-05-17 14:34:10 · 399 阅读 · 0 评论 -
hadoop之datanode节点超时时间设置与HDFS冗余数据块的自动删除
一 Datanode节点超时时间设置datanode进程死亡或者网络故障造成datanode无法与namenode通信,namenode不会立即把该节点判定为死亡,要经过一段时间,这段时间暂称作超时时长。HDFS默认的超时时长为10分钟+30秒。如果定义超时时间为timeout,则超时时长的计算公式为: timeout = 2 * heartbeat.recheck.interval + 10...原创 2018-06-17 16:56:07 · 1930 阅读 · 0 评论