Hadoop
hadoop学习
Movle
this is the way
展开
-
Hadoop基础介绍
目录一.Hadoop概述 1.Hadoop的优势 2.Hadoop组成 3.YARN架构概述 4.MapReduce架构概述二.Hadoop 1.hado...原创 2020-05-05 15:26:05 · 268 阅读 · 0 评论 -
Hadoop环境搭建-全分布模式
1.Hadoop安装准备工作:(1)安装好linux操作系统(2)关闭防火墙(3)在linux上安装JDK(4)hadoop2,hadoop3,hadoop4三台服务器已经设置过免密登陆2.解压Hadoop压缩包并配置环境变量(1)将Hadoop安装包拷贝到/opt/software文件目录下(2)将Hadoop安装包解压到/opt/module文件目录下命令为:tar -zxv...原创 2020-04-06 11:25:00 · 207 阅读 · 0 评论 -
Hadoop环境搭建-本地模式
1.Hadoop安装准备工作:(1)安装好linux操作系统(2)关闭防火墙(3)在linux上安装JDK2.本地模式具体步骤:(1)解压hadoop安装包:tar -zxvf hadoop-2.8.4.tar.gz -C /opt/module (2)配置环境变量:a.修改命令:vi ~/.bash_profile //修改环境变量的文件b.添加的内容为...原创 2020-04-06 11:22:46 · 172 阅读 · 0 评论 -
HDFS基础概念以及HDFS命令行操作
一.HDFS基础概念1.概念HDFS,它是一个文件系统,全称:Hadoop Distributed File System,用于存储文件通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。2.组成(1)HDFS集群包括,NameNode和DataNode以及Secondary Namenode。(2)NameNode负责管理整个文件系统的...原创 2020-05-05 22:21:56 · 309 阅读 · 0 评论 -
Hadoop之通过API操作HDFS
HDFS客户端操作1.1 IDEA环境准备1.修改$MAVEN_HOME/conf/settings.xml <!--本地仓库所在位置--><localRepository>F:\m2\repository</localRepository><!--使用阿里云镜像去下载Jar包,速度更快--> <mirrors> ...原创 2020-05-05 18:20:15 · 226 阅读 · 1 评论 -
HDFS的读写数据流程
HDFS的数据流1.1 HDFS写数据流程1.剖析文件写入(1)客户端向namenode请求上传文件,namenode检查目标文件是否已存在,父目录是否存在。(2)namenode返回是否可以上传。(3)客户端请求第一个 block上传到哪几个datanode服务器上。(4)namenode返回3个datanode节点,分别为dn1、dn2、dn3。(5)客户端请求dn1上传数据,...原创 2020-05-05 22:24:39 · 375 阅读 · 0 评论 -
HDFS之NameNode工作机制
1.1 NameNode&Secondary NameNode工作机制1.第一阶段:namenode启动(a)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载编辑日志(edits)和镜像文件(fsimage)到内存(b)客户端对元数据进行增删改的请求©namenode记录操作日志,更新滚动日志(d)namenode在内存中对数...原创 2020-05-05 22:34:24 · 578 阅读 · 0 评论 -
HDFS之DataNode工作机制
1.1 NameNode & DataNode工作机制1.一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。2.DataNode启动后向namenode注册,通过后,周期性(1小时)的向namenode上报所有的块信息。3.心跳是每3秒一次,心跳返回结果带有namenode给该datanod...原创 2020-05-05 22:39:49 · 184 阅读 · 0 评论 -
HDFS的其他功能
1.1 集群间数据拷贝1.scp实现两个远程主机之间的文件复制scp -r hello.txt [root@bigdata111:/user/itstar/hello.txt](mailto:root@bigdata111:/user/itstar/hello.txt) // 推 pushscp -r [root@bigdata112:/user/itstar/hello....原创 2020-05-05 22:42:41 · 144 阅读 · 0 评论 -
MapReduce的基本概念
1. MapReduce定义 Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架。 Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。2. MapReduce优缺点...原创 2020-05-05 22:47:16 · 2924 阅读 · 0 评论 -
Hadoop序列化
1 为什么要序列化? 一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 然而序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。2 什么是序列化? 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议...原创 2020-05-05 22:48:50 · 101 阅读 · 0 评论 -
MapReduce工作流程
1.流程示意图:2.流程详解 上面的流程是整个mapreduce最全工作流程,但是shuffle过程只是从第7步开始到第16步结束,具体shuffle过程详解,如下:(1)maptask收集我们的map()方法输出的kv对,放到内存缓冲区中(2)从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件(3)多个溢出文件会被合并成大的溢出文件(4)在溢出过程中,及合并的过程中,都要调用partitioner进行分区和针对key进行排序原创 2020-06-09 23:50:12 · 173 阅读 · 0 评论 -
MapReduce之InputFormat数据输入
1.Job提交流程和切片源码详解(1).job提交流程源码详解waitForCompletion() submit(); connect(); // 1建立连接 new Cluster(getConfiguration()); // 1)创建提交job的代理 initialize(jobTrackAddr, conf); // (1)判断是本地yarn还是远程 submitter.submitJobInternal(Job.this,原创 2020-06-09 23:52:20 · 495 阅读 · 0 评论 -
MapReduce之MapTask工作机制
1.并行度决定机制(1).问题引出 maptask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度。那么,mapTask并行任务是否越多越好呢?(2).MapTask并行度决定机制 一个job的map阶段MapTask并行度(个数),由客户端提交job时的切片个数决定。2.MapTask工作机制(1)Read阶段:Map Task通过用户编写的RecordReader,从输入In原创 2020-06-09 23:53:01 · 136 阅读 · 0 评论 -
MapReduce之Shuffle机制
1. Shuffle机制 Mapreduce确保每个reducer的输入都是按键排序的。系统执行排序的过程(即将map输出作为输入传给reducer)称为shuffle。2.Partition分区(0).问题引出:要求将统计结果按照条件输出到不同文件中(分区)。比如:将统计结果按照手机归属地不同省份输出到不同文件中(分区)(1).默认partition分区public class HashPartitioner<K, V> exten原创 2020-06-09 23:55:06 · 273 阅读 · 0 评论 -
MapReduce之ReduceTask工作机制
1.设置ReduceTask并行度(个数) reducetask的并行度同样影响整个job的执行并发度和执行效率,但与maptask的并发数由切片数决定不同,Reducetask数量的决定是可以直接手动设置://默认值是1,手动设置为4job.setNumReduceTasks(4);2.注意(1)reducetask=0 ,表示没有reduce阶段,输出文件个数和map个数一致。(2)reducetask默认值就是1,所以输出文件个数为一个。(原创 2020-06-09 23:55:48 · 264 阅读 · 0 评论 -
MapReduce之OutputFormat数据输出
1.OutputFormat接口实现类 OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了 OutputFormat接口。下面我们介绍几种常见的OutputFormat实现类。(1).文本输出TextOutputFormat 默认的输出格式是TextOutputFormat,它把每条记录写为文本行。它的键和值可以是任意类型,因为TextOutputFormat调用to原创 2020-06-09 23:56:19 · 408 阅读 · 0 评论 -
MapRedude之Join,数据清洗,计数器应用
一. Join多种应用1.Reduce join(1).原理: Map端的主要工作:为来自不同表(文件)的key/value对打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。 Reduce端的主要工作:在reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在map阶段已经打标志)分开,最后进行合并就ok原创 2020-06-09 23:57:00 · 165 阅读 · 0 评论 -
MapReduce开发总结
在编写mapreduce程序时,需要考虑的几个方面:1.输入数据接口:InputFormat 默认使用的实现类是:TextInputFormat TextInputFormat的功能逻辑是:一次读一行文本,然后将该行的起始偏移量作为key,行内容作为value返回。 KeyValueTextInputFormat每一行均为一条记录,被分隔符分割为key,value原创 2020-06-09 23:57:29 · 121 阅读 · 0 评论 -
Hadoop之Yarn
1 Hadoop1.x和Hadoop2.x架构区别在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算2 Yarn概述 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相...原创 2020-05-06 09:04:56 · 146 阅读 · 0 评论 -
HDFS之HA高可用概述
一.HA概述1.所谓HA(2high available),即高可用(7*24小时不中断服务)2.实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。3.Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)4.NameNode主要在以下两个方面影响HDFS集群 &nbs...原创 2020-05-06 09:05:37 · 630 阅读 · 1 评论 -
HDFS-HA高可用集群配置
1.1配置Hadoop-HA高可用集群1.前提:hadoop1,hadoop2,hadoop3集群已经配置好zookeeper集群2.在opt目录下创建一个HA文件夹cd /optmkdir HA3.将hadoop-2.8.4压缩包解压到/opt/HA目录下tar -zxvf hadoop-2.8.4.tar.gz -C /opt/HA/4.配置hadoop-env.sh...原创 2020-05-07 16:04:56 · 235 阅读 · 0 评论 -
Yarn-HA配置
一.Yarn-HA配置1.1 YARN-HA工作机制1.官方文档:官方文档2.YARN-HA工作机制1.2 配置YARN-HA集群0.环境准备(1)修改IP(2)修改主机名及主机名和IP地址的映射(3)关闭防火墙(4)ssh免密登录(5)安装JDK,配置环境变量等(6)配置Zookeeper集群1.规划集群bigdata111bigdata112bigda...原创 2020-05-06 09:06:00 · 269 阅读 · 0 评论 -
Hadoop之数据压缩
1 概述 压缩技术能够有效减少底层存储系统(HDFS)读写字节数。压缩提高了网络带宽和磁盘空间的效率。在Hadoop下,尤其是数据规模很大和工作负载密集的情况下,使用数据压缩显得非常重要。在这种情况下,I/O操作和网络数据传输要花大量的时间。还有,Shuffle与Merge过程同样也面临着巨大的I/O压力。 &nb...原创 2020-05-06 09:06:16 · 141 阅读 · 0 评论 -
Hadoop之优化
一.MapReduce 跑的慢的原因Mapreduce 程序效率的瓶颈在于两点:1.计算机性能CPU、内存、磁盘健康、网络2.I/O 操作优化(1)数据倾斜(2)map和reduce数设置不合理(3)map运行时间太长,导致reduce等待过久(4)小文件过多(5)大量的不可分块的超大文件(6)spill次数过多(7)merge次数过多等。二. MapReduce优化方法...原创 2020-05-06 09:06:29 · 309 阅读 · 0 评论