hadoop
风zi
这个作者很懒,什么都没留下…
展开
-
hadoop 配置snappy压缩
snappy压缩插件:链接:https://pan.baidu.com/s/1z19IIJ_odoY-6ogSN6OfFw 提取码:enny 1、没有snappy时 native下有什么[root@hadoop102 native]# ll总用量 4372-rw-r--r-- 1 root root 1122774 5月 22 2017 libhadoop.a-rw-r--r-- 1 root root 1487268 5月 22 2017 libhadooppipes.alrwxrw原创 2021-03-15 15:45:53 · 630 阅读 · 0 评论 -
Hadoop之LZO压缩配置
一、下载地址1、先下载lzo的jar项目https://github.com/twitter/hadoop-lzo/archive/master.zip2、下载后的文件名是hadoop-lzo-master,它是一个zip格式的压缩包,先进行解压,然后用maven编译。生成hadoop-lzo-0.4.20.jar。二、配置lzo1、将编译好后的hadoop-lzo-0.4.20.jar放入hadoop-2.7.2/share/hadoop/common/[root@hadoop102 com原创 2020-05-26 09:46:45 · 432 阅读 · 0 评论 -
601、思路-找两人之间共同好友分析
如下好友列表当事人 好友列表A B,C,D,F,E,OB A,C,E,KC F,A,D,ID A,E,F,LE B,C,D,M,LF A,B,C,D,E,O,MG A,C,D,E,FH A,C,D,E,OI A,OJ B,OK A,C,DL D,E,FM E,F,GO A,H,I,J分析:找共同好友的中心应该是在朋友身上;假设a有三原创 2020-05-14 20:54:45 · 401 阅读 · 0 评论 -
二十九、 计数器应用
一、计数器介绍2、计数器用途可以在map、reduce计算处理了多少数据二、代码实操1、以一个数据日志为例,判断如下日志是否完整,最后统计出各有多少行58.248.178.212 - - [18/Sep/2013:06:51:40 +0000] "GET /wp-includes/js/comment-reply.min.js?ver=3.6 HTTP/1.1" 200 786 "http://blog.fens.me/nodejs-grunt-intro/" "Mozilla/4.0 (com原创 2020-05-14 16:25:19 · 256 阅读 · 0 评论 -
二十八、map join实操
一、map join 使用场景1.使用场景Map Join适用于一张表十分小、一张表很大的场景。2.优点思考:在Reduce端处理过多的表,非常容易产生数据倾斜。怎么办?在Map端缓存多张表,提前处理业务逻辑,这样增加Map端业务,减少Reduce端数据的压力,尽可能的减少数据倾斜。3.具体办法:采用DistributedCache(1)在Mapper的setup阶段,将文件读取到缓存集合中。(2)在驱动函数中加载缓存。// 缓存普通文件到Task运行节点。job.addCacheFi原创 2020-05-14 16:13:10 · 684 阅读 · 0 评论 -
二十七、reduce join案例
一、Reduce Join工作原理Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在Map阶段已经打标志)分开,最后进行合并就ok了。二、案例实操1、需求分析如下两张数据表商品表01 小米02 华为03 格力订单表1001 01 110原创 2020-05-14 16:07:14 · 265 阅读 · 0 评论 -
二十六、OutputFormat数据输出-自定义数据输出规则
一、OutputFormat接口实现类OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了 OutputFormat接口。下面我们介绍几种常见的OutputFormat实现类。1、文本输出TextOutputFormat默认的输出格式是TextOutputFormat,它把每条记录写为文本行。它的键和值可以是任意类型,因为TextOutputFormat调用toString()方法把它们转换为字符串。2、SequenceFileOutputFormat将S原创 2020-05-14 10:28:37 · 1078 阅读 · 0 评论 -
二十五、GroupingComparator分组
一、GroupingComparator介绍GroupingComparator是对Reduce阶段的数据根据某一个或几个字段进行分组;如果是自定义类型的key,可以按照自定义的bean对象设置分组规则。1、分组排序步骤(1)自定义类继承WritableComparator(2)重写compare()方法 @Override public int compare(WritableComparable a, WritableComparable b) { // 比较的业务逻辑 retur原创 2020-05-13 23:14:15 · 340 阅读 · 0 评论 -
二十四、 Combiner合并介绍
一、什么是Combiner合并本质:其实Combiner就是reduce在每个maptask执行的数据汇总,特殊情况可以将reduce作为Combiner;二、自定义Combiner实现步骤1、需求?统计过程中对每一个MapTask的输出进行局部汇总,以减小网络传输量即采用Combiner功能2、实现方式有两种:Combiner与Reducer3、Combiner解决3.1、自定义一个Combiner继承Reducer,重写Reduce方法public class WordcountC原创 2020-05-13 21:21:24 · 511 阅读 · 0 评论 -
二十三、WritableComparable排序
一、排序概述1、MR排序规则排序是MapReduce框架中最重要的操作之一。MapTask和ReduceTask均会对数据按照key进行排序。该操作属于Hadoop的默认行为。任何应用程序中的数据均会被排序,而不管逻辑上是否需要。 默认排序是按照字典顺序排序,且实现该排序的方法是快速排序。2、什么地方排序?对于MapTask,它会将处理的结果暂时放到环形缓冲区中,当环形缓冲区使用率达到一定阈值后,再对缓冲区中的数据进行一次快速排序,并将这些有序数据溢写到磁盘上,而当数据处理完毕后,它会对磁盘上原创 2020-05-13 20:50:47 · 279 阅读 · 0 评论 -
二十二、Partition分区介绍
一、为什么要分区1、有如下一批数据原创 2020-05-13 20:13:34 · 2539 阅读 · 0 评论 -
二十一、MapReduce工作流程介绍
一、流程示意图如下图流程mr工作详细运行流程步骤详细说明1、获取待处理文件信息,得到文件大小,文件存储位置2、根据切片参数,准备文件切片信息,如上假设按照默认块大小切片0-128M129-200M两个数据片3、切片完成有由客户端向yarn提交:job信息、split切片信息、jar包4、Appmaster根据提交信息计算出开启几个Maptask,其实是由切片个数决定的,它实际决定将开启哪些节点运行任务5、开启的MapTask按照切片信息加载数据,默认是TextInputFormat所以原创 2020-05-13 16:57:40 · 1544 阅读 · 0 评论 -
二十(续)、自定义Inputformat读取mysql中的数据
分为两种加载方式:一种整个数据切片,一种是按照指定数据条数切片有点类似NLine方式下面就来进行代码实操:读取mysql数据写入写入本地文件不做计算,不需要用到redece阶段,只需map即可1、既然是加载mysql必然少不了数据库访问添加mysql连接依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifac原创 2020-05-14 15:17:08 · 320 阅读 · 0 评论 -
二十、自定义InputFormat——加载整个文件数据
一、使用场景 对于小文件来说,MR默认会为其分配一个maptask,由于数据量过小可以不会造成内存溢出,所以可以考虑一次将整个文件数据加载,而不是一行行数据加载。二、自定义InputFormat实现0、需求?加载指定目录下的所有文件,统计每个文件的单词个数?1、实现步骤自定义类继承FileInputFormat自定义类继承RecordReader,制定数据加载规则修改createRecordRea原创 2020-05-12 16:54:51 · 221 阅读 · 0 评论 -
十九、CombineTextInputFormat切片机制源码分析
一、CombineTextInputFormat切片机制1、思考?框架默认的TextInputFormat切片机制是对任务按文件规划切片,不管文件多小,都会是一个单独的切片,都会交给一个MapTask,这样如果有大量小文件,就会产生大量的MapTask,处理效率极其低下。2、CombineTextInputFormat应用场景CombineTextInputFormat用于小文件过多的场景,它可以将多个小文件从逻辑上规划到一个切片中,这样,多个小文件就可以交给一个MapTask处理3、虚拟存储切片原创 2020-05-12 09:16:05 · 790 阅读 · 2 评论 -
十八、NLineInputFormat实操与源码分析
一、介绍 NLineInputFormat是FileInputFormat的实现类,与kv相反的是Nline的切片机制重定义了。NlineInputFormat切片规则:如果使用NlineInputFormat,代表每个map进程处理的InputSplit不再按Block块去划分,而是按NlineInputFormat指定的行数N来划分。即输入文件的总行数/N=切片数,如果不整除,切片数=商+1。示例描述:原创 2020-05-11 01:03:40 · 369 阅读 · 0 评论 -
十七、KeyValueTextInputFormat实操与源码分析
一、介绍 KeyValueTextInputFormat是FileInputFormat的实现类,所以kv的分片机制是由父类决定的,既然是子类那么必然有不一样的地方。不同之处是它的读取数据规则不同。KV的读取数据特点: KV读取每一行均为一条记录,被分隔符分割为key,value。可以通过在驱动类中设置conf.set(KeyV原创 2020-05-10 23:34:16 · 438 阅读 · 0 评论 -
十六、FileInputFormat介绍,切片源码分析
一、InputFormat介绍InputFormat,从单词意思解读分为输入、格式,也就是数据来源与加载数据的方式是决定MR编程的map阶段的任务并行度。数据来源划分:其实也就是他的子类,由于我目前只使用了如下三种方式,其实还有很多子类。HLogInputFormat:从hbase加载数据编写mr程序计算FileInputFormat:主要从hdfs或本地加载数据自定义实现:可以编写从mysql或oracle中加载数据InputFormat它是一个抽象类,定义了获取切片与切片划分的抽象函数,具体原创 2020-05-10 21:27:32 · 651 阅读 · 0 评论 -
十五、Hadoop序列化操作
一、序列化概述1、什么是序列化1.1 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。 1.2 反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。2、 为什么要序列化 一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 然而序列化可原创 2020-05-10 00:00:38 · 322 阅读 · 0 评论 -
十四、简单WordCount案例编写
前言:如果需要在本地测试MR程序需要安装hadoop,就跟本地安装jdk一个道理,JAVA_HOME变成HADOOP_HOME,最后在cmd测试输入hadoop命令看安装结果,是不是跟jdk配置一样hadoop包:链接:https://pan.baidu.com/s/1bPlkKnYLXsfOjMtcK1Nq8g密码:nzqg一、计算任务分析1、需求:统计指定文本文件里面每个单词出现的次数。文件内容如.原创 2020-05-09 22:34:28 · 856 阅读 · 0 评论 -
十三、MapReduce介绍
一、MapReduce定义 MR是一个分布式运算程序的编程框架,是用户开发基于Hadoop的数据分析应用核心框架,MR的核心功能就是将用户编写的业务逻辑代码和自带的默认组件整合成一个完整的分布式运算程序,并发运行在Hadoop集群上。二、MR的优缺点1、优点1.1 MR易于编程:它简单的实现一些接口,就可以完成一个分布运算式程序。这个程序可以分不到大量廉价的机器上运行,也就是说你写一个分布式程序,跟写一原创 2020-05-09 20:59:00 · 171 阅读 · 0 评论 -
hadoop 错误记录
1、PATH=$PATH:/sbin:/usr/sbin fuser -v -k -n tcp 9000 via ssh: bash: fuser: 未找到命令PATH=$PATH:/sbin:/usr/sbin fuser -v -k -n tcp 9000 via ssh: bash: fuser: 未找到命令2020-05-08 00:45:27,356 INFO org.apache.hadoop.ha.SshFenceByTcpPort: rc: 1272020-05-08 00:45:27原创 2020-05-09 00:13:51 · 518 阅读 · 0 评论 -
十二、Hadoop HA集群高可用配置
https://blog.csdn.net/qq_34764487/article/details/78392014https://blog.csdn.net/weixin_42425970/article/details/103825812由于namenode属于standby状态operation category read is not supported in state stand...原创 2020-05-09 00:09:40 · 327 阅读 · 0 评论 -
十一、HDFS 2.X新特性
一、集群间数据拷贝1)scp实现两个远程主机之间的文件复制 scp -r hello.txt root@hadoop103:/user/root/hello.txt // 推 push scp -r root@hadoop103:/user/root/hello.txt hello.txt // 拉 pull scp -r root@hadoop103:/user/root/hell...原创 2020-05-07 21:55:05 · 102 阅读 · 0 评论 -
十、hadoop集群服役新数据节点与退役旧数据节点
一、新增节点需求? 随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。环境准备:1.由于我这里使用的是虚拟机环境(102、103、104),根据104完整克隆一台105虚拟机2.修改105的ip地址和主机名称–hado...原创 2020-05-07 20:57:55 · 528 阅读 · 0 评论 -
九、DataNode介绍
一、DataNode工作机制工作机制介绍:1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,数据块的校验和,以及时间戳。2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块...原创 2020-05-07 17:23:40 · 1043 阅读 · 0 评论 -
八、NameNode多目录配置
我这里演示的是已经使用的集群,所以需要删除data与log文件;如果是初次配置集群不用。为什么要配置多目录?NameNode的本地目录配置成多个,且每个目录存放内容相同,增加了可靠性。具体配置调整如下:(1)在hdfs-site.xml文件中增加如下内容<property> <name>dfs.namenode.name.dir</name>...原创 2020-05-07 16:03:52 · 414 阅读 · 0 评论 -
七、hadoop集群安全模式
一、介绍概述1.NameNode启动 NameNode启动时,首先将镜像文件(Fsimage)载入内存,并执行编辑日志(Edits)中的各项操作。-旦在内存中成功建立文件系统元数据的影像,则创建一个新的Fsimage文件和一个空的编辑日志。此时,NameNode开始监听DataNode请求。这个过程期间,Name...原创 2020-05-07 15:24:08 · 216 阅读 · 0 评论 -
六、NameNode故障处理--元数据恢复
NameNode故障后,可以采用如下两种方法恢复数据,如下两种解决方式:hadoop102是NameNode所在节点;hadoop104是SecondaryNameNode所在节点;方法二:将SecondaryNameNode中数据拷贝到NameNode存储数据的目录;1. kill -9 NameNode进程,模拟故障2. 删除NameNode存储的数据(/opt/module/h...原创 2020-05-07 14:53:41 · 728 阅读 · 0 评论 -
五、NameNode和SecondaryNameNode的介绍
一、NN和SNN工作机制 了解hadoop的一定不会陌生NameNode和SecondaryNameNode这两个组件,NameNode是保存数据元信息,SecondaryNameNode是帮助NN工作,也可以做元数据备份工作。1.第一阶段:NameNode启动(1)第一次启动Nam...原创 2020-05-07 12:50:57 · 392 阅读 · 0 评论 -
四、HDFS读写数据流程解析
一、HDFS写数据流程图释解析:1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。2)NameNode返回是否可以上传。3)客户端请求第一个 block上传到哪几个datanode服务器上。4)NameNode返回3个datanode节点,分别为dn1、dn2、dn3。5)客户端通过...原创 2020-05-06 22:08:40 · 206 阅读 · 0 评论 -
三、HDFS操作文件
一、HDFS操作文件方式HDFS操作文件方式有两种:1.shell命令操作服务器本地文件至HDFS中2.客户端api方式自己编写代码操作文件二、HDFS的shell操作1.基本命令bin/hadoop fs 具体命令 OR bin/hdfs dfs 具体命令dfs是fs的实现类。2.查旬可用命令,如下会列出可以使用的所有命令及参数bin/hadoop fs3.常用命...原创 2020-05-06 21:46:21 · 348 阅读 · 0 评论 -
二、hdfs介绍
组成:hdfs、yarn、mapreducehdfs存储yarn资源分配mr数据计算任务hdfs产生:hdfs的优缺点hdfs的架构hdfs的存储单元原创 2020-05-06 10:01:07 · 191 阅读 · 0 评论 -
一、hadoop 2.7.2 集群环境搭建
一、前提介绍环境:centos7 虚拟机三台软件:jdk1.8、hadoop2.7.2环境准备:设置虚拟机静态ip、域名、关闭防火墙,这些操作就不举例了,网上搜索一下即可我这里为了方便设置三台虚拟机为:hadoop102、hadoop103、hadoop104,这里域名需要在三机器上都配置,因为后续配置文件中使用这样的方式。二、上传解压tar包,配置环境上传jdk、hadoop 包到...原创 2020-04-29 23:53:07 · 525 阅读 · 1 评论 -
大数据学习异常记录
集群启动成功 50070web页面的datanodes 显示只有一个并且后面ip显示是127.0.0.1,并且当前机器上传的数据未同步到其它机器机器中,并且集群的 50090 namesecondary 无法访问原因:/etc/hosts 中有127.0.0.1 的配置 注释掉此配置即可...原创 2019-05-31 22:57:08 · 2206 阅读 · 0 评论