
hadoop
ygpGoogle
这个作者很懒,什么都没留下…
展开
-
ReduceTask的shuffle流程(包括分组比较器,数据清洗,计数器等)
文章目录ReduceTask总流程说明ReduceTask的shuffle细节获取分组比较器排序分类分组案例具体需求编写代码ReduceTask总流程说明(1)Copy阶段:ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。(2)Merge阶段:在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。(3)Sort阶段:按照MapReduce语原创 2020-11-01 18:50:27 · 646 阅读 · 0 评论 -
MapTask的shuffle流程(收集器,分区器,缓冲区对象,排序器,比较器,合并器详解)
文章目录MapTask总流程说明MapTask总流程说明使用TextInputFormat的RecordReader去读取每一行,将key和value封装好,然后交给Mapper。然后Mapper进行逻辑运算,map(key,value)和Context.write(key,value),然后这个write之前的所有步骤都称为map阶段,write之后的阶段为sort阶段该write将key-value写入到缓冲区,当达到80%时再从缓冲区写出,不过再写出之前,会先排序,然后以分区写到文件,然后将多个临原创 2020-10-31 16:57:09 · 580 阅读 · 0 评论 -
Spark 运行模式(安装方式)及核心概念介绍
文章目录2.1 Local 模式2.1.1 解压 Spark 安装包2.1.2 使用 Spark-shell2.1.3 wordcount 数据流程分析:首先需要下载 Spark1.官网地址 http://spark.apache.org/2.文档查看地址 https://spark.apache.org/docs/2.1.1/3.下载地址 https://archive.apache.org/dist/spark/目前最新版本为 2.4.4, 考虑到国内企业使用情况我们仍然选择 2.1.1 来学原创 2020-10-29 20:20:07 · 420 阅读 · 0 评论 -
MapReduce自定义输入格式和自定义输出格式
文章目录需求编写自定义输出格式编写自定义记录读取器Mapper类Reducer类设置Driver执行结果需求将下面的三个文件的内容读取到一个SequenceFile中,SequenceFile是hadoop中特有的文件格式,适合key-value的存储。比普通文件格式节省空间。现在默认的输出格式是TextOutputFormat(文本格式的输出),改为SequenceFileOutputFormat。将输入目录的文件读取key-value(bytes)形式,将文件的内容读取封装为bytes类型,然后将文原创 2020-10-28 15:29:56 · 1843 阅读 · 1 评论 -
Hadoop切片策略及Job提交流程详解
文章目录一、切片1. FileInputFormat的切片策略(默认)2. 从Job的配置中获取参数3. TextInputFormat判断文件是否可切4.片大小的计算5.片和块的关系二、常见的输入格式1. TextInputFormat2. NlineInputFormat3. KeyValueTextInputFormat4. ConbineTextInputFormat三、关键设置1.如何设置MapTask的数量四、Job提交流程阶段总结1.准备阶段2. 提交阶段一、切片1. FileInputF原创 2020-10-16 10:28:10 · 385 阅读 · 0 评论 -
MapReduce计算手机流量案例
文章目录准备数据自定义Bean对象构建Mapper构建Reducer准备数据我们的需求是:统计每个手机号的上行流量之和,下行流量之和,以及每个手机号的总流量之和,下面的数据有7列,以制表符隔开,倒数第三列是上行,倒数第二列是下行。自定义Bean对象为什么要自定义Bean对象?因为Mapper<?, ?, ?, ?>这个里面的泛型数量只有四个,然后input_key和input_value的类型是固定的,但是经过mapper之后的output_key和output_value应当是(原创 2020-10-14 09:52:42 · 729 阅读 · 1 评论 -
MapReduce统计单词数目详细说明
文章目录一、准备数据二、MR的编程规范一、准备数据 注意:准备的数据的格式必须是文本 编码必须是utf-8无bom!二、MR的编程规范MR的编程只需要将自定义的组件和系统默认组件进行组合,组合之后运行即可!编程步骤:①Map阶段的核心处理逻辑需要编写在Mapper中②Reduce阶段的核心处理逻辑需要编写在Reducer中③将编写的Mapper和Reducer进行组合,组合成一个Job④对Job进行设置,设置后运行...原创 2020-10-12 20:39:21 · 2826 阅读 · 0 评论 -
MapReduce入门及核心流程案例
文章目录第1章 MapReduce入门1.1 MapReduce定义1.2 MapReduce优缺点1.3 MapReduce核心思想1.4 MapReduce进程1.5 MapReduce编程规范1.6 核心流程案例总结第1章 MapReduce入门1.1 MapReduce定义1.2 MapReduce优缺点1.3 MapReduce核心思想1)分布式的运算程序往往需要分成至少2个阶段。2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。3)第二个阶段的ReduceT原创 2020-10-08 19:21:47 · 622 阅读 · 0 评论 -
Hadoop-HDFS之Datanode的操作及原理
文章目录DataNode详解Datanode工作机制设置节点掉线时限数据完整性新节点服役退役节点添加白名单(伪退役)添加黑名单(真退役)Datanode多目录配置HDFS 2.X新特性DataNode详解Datanode工作机制箭头所指的第一个文件存放真实的文件块,第二个meta文件是存放一些时间戳,校验和之类的。1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。2)DataNode启动后向NameN原创 2020-10-08 17:48:46 · 968 阅读 · 0 评论 -
Hadoop-HDFS之Namenode操作及原理
文章目录NamenodeNamenode的元数据存储edits文件与fsimage文件Namenode中存储的信息Namenode的安全模式Namenode总结DatanodeDatanode原理服役新节点白名单使用黑名单退役多目录配置使用har在线归档NamenodeNamenode的元数据存储如下图,由于我在hadoop1上启动了namenode和datanode,会产生如下两个文件夹,name是namenode存放的元数据,而data是datanode存放的块的数据。下面是存放元数据的两种重要原创 2020-10-05 21:29:29 · 8472 阅读 · 0 评论 -
Hadoop-HDFS数据流详细说明
文章目录一、正常写数据流程源码解释二、异常写流程三、机架感知四、读数据流程五、网络拓扑-节点距离计算一、正常写数据流程①服务端启动HDFS中的NN和DN进程②客户端创建一个分布式文件系统客户端,由客户端向NN发送请求,请求上传文件③NN处理请求,检查客户端是否有权限上传,路径是否合法等④检查通过,NN响应客户端可以上传⑤客户端根据自己设置的块大小,开始上传第一个块,默认0-128M,NN根据客户端上传文件的副本数(默认为3),根据机架感知策略选取指定数量的DN节点返回⑥客户端根据返回的DN原创 2020-10-05 15:41:14 · 320 阅读 · 0 评论 -
Hadoop-HDFS用户自定义上传和下载
用户自定义上传文件大小需求:我把这个文件的前20kb上传。// 只上传文件的前20K /* * 官方的实现 * InputStream in=null; OutputStream out = null; try { in = srcFS.open(src); out = dstFS.create(dst, overwrite); IOUtils.copyBytes(in, out, conf, true);原创 2020-10-05 12:32:33 · 251 阅读 · 0 评论 -
克隆方式搭建hadoop集群时,datanode在管理界面始终只能看到一个,而且是随机的一个,并且在上传大文件时会出问题
这个问题困扰了我一晚上,开始我上传了一个670M的文件到HDFS上,但是直接报了如下的错误: java.io.IOException: Unable to close file because the last block does not have enough number of replicas. at org.apache.hadoop.hdfs.DFSOutputStream.completeFile(DFSOutputStream.java:2266) at org.apache.ha原创 2020-10-05 01:00:01 · 582 阅读 · 0 评论 -
Java操作Hadoop-HDFS详解
Tip:本节内容均是在我之前搭建的完全分布式上进行!!Java客户端操作HDFS 服务端: 启动NN,DN 客户端: 使用shell客户端 hadoop fs 使用java客户端 使用python客户端我在windows也要配置hadoop,如下图:然后创建一个maven项目,并添加依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2原创 2020-10-05 00:35:32 · 877 阅读 · 0 评论 -
HDFS基础知识及Shell命令
完全分布式搭建的注意点完全分布式集群的搭建1.进程规划 原则: ①核心进程尽量分散 ②同质进程尽量分散 2.集群间复制①scp scp -r 源文件的用户名@主机名:源文件路径 目标文件的用户名@主机名:目标文件路径 特点: 全量复制 ②rsync rsync -rvlt 源文件路径 目标文件的用户名@主机名:目标文件路径 源文件路径是个目录,源文件路径/,只会同步源文件目录中的内容! 源文件路径,不仅会同步源文件原创 2020-10-04 16:02:21 · 214 阅读 · 0 评论 -
Hadoop教程(第一节)
大数据概论概念大数据的特点大数据应用场景大数据部门业务流程分析从Hadoop框架讨论大数据生态Hadoop是什么Hadoop的优势完成大数据的计算①写程序,程序需要复合计算框架的要求!java---->main----->运行MapReduce(编程模型)----->Map–Reducer②运行程序,申请计算资源(cpu+内存,磁盘IO,网络IO)java----->JVM------>OS----->申请计算资源1.原创 2020-09-24 15:59:47 · 219 阅读 · 0 评论 -
Hadoop完全分布式最终版
使用ssh执行命令登录脚本的执行顺序:【注:仅适用于 bash shell】 Login Shell 是指登录时,需要提供用户名密码的shell,如:su – user1 , 图形登录, ctrl+alt+F2-6进入的登录界面。 这种Login shell 执行脚本的顺序: 1. /etc/profile 【全局profile文件;它定义了LoginUser的 PATH, USER, LOGNAME(登录使用者帐号)】 2. /et原创 2020-09-29 14:27:41 · 173 阅读 · 0 评论 -
Hadoop完全分布式准备工作
准备工作我们在搭建完一台Hadoop机器之后,要再克隆两份机器,我们要将这三台机器的主机名,ip重新配置一下。三台机器上的节点规划如下Hadoop中的进程在多台机器运行!HDFS: 1个nn+N个DN n个2nnYARN: 1个RM+N个NM避免单点故障,NN和RM建议分散到多台机器!注意负载均衡hadoop101 hadoop102 hadoop103DN ----------- DN-------------- DNNM------------ NM------原创 2020-09-26 19:41:36 · 223 阅读 · 0 评论 -
Hadoop教程(第三节)
MapReduce如上图位置,有一个事例jar包,我们可以运行测试一下。如上图,我们可以看到有很多参数,我们可以试着传入。上述命令是将根路径hdfs下的文件里的不同单词做个数统计,并输出到/wc目录中。网页显示如下。...原创 2020-09-26 10:26:34 · 159 阅读 · 0 评论 -
Hadoop教程(第二节)
Hadoop运行环境搭建①Hadoop运行的前提是本机已经安装了JDK,配置JAVA_HOME变量②在Hadoop中启动多种不同类型的进程 例如NN,DN,RM,NM,这些进程需要进行通信! 在通信时,常用主机名进行通信! 在192.168.6.100机器上的DN进程,希望访问192.168.6.104机器的NN进程! 需要在集群的每台机器上,配置集群中所有机器的host映射! 配置: Linux: /etc/hosts Windows: C:\Windows原创 2020-09-25 00:20:38 · 252 阅读 · 0 评论