大数据学习之Hadoop
文章平均质量分 57
介绍大数据学习中的hadoop相关内容
Faith_xzc
PowerData联合创始人,某数据库在职,对Java和大数据感兴趣,欢迎大家交流学习!
展开
-
大数据基准测试工具HiBench部署与测试
本文介绍了大数据基准测试工具HiBench的部署,并进行了测试。欢迎大家交流讨论!原创 2022-03-17 05:30:00 · 5359 阅读 · 89 评论 -
Spark的Yarn模式及其案例
目录基本概念Yarn模式搭建1. 解压缩文件2.修改配置文件启动集群测试Spark中examples案例1. 提交应用2.Web 页面查看日志配置历史服务器1.具体步骤2.重新提交应用3.Web 页面查看日志基本概念独立部署(Standalone)模式由Spark 自身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是也要记住,Spark 主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是和其他专业的资源调度框架集成会更靠谱原创 2021-08-11 12:37:02 · 2894 阅读 · 1 评论 -
Call From hadoop102/192.168.121.102 to hadoop102:9000 failed on connection exception
问题截图问题描述在测试Spark中examples案例时,出现Call From hadoop102/192.168.121.102 to hadoop102:9000 failed on connection exception: java.net.ConnectException: 拒绝连接的错误。问题原因hadoop集群没有开启解决办法打开hadoop集群[root@hadoop102 hadoop-2.7.2]# sbin/start-all.sh结果截图...原创 2021-08-10 17:24:15 · 1411 阅读 · 0 评论 -
Hadoop的资源调度器
Hadoop的资源调度器概念资源调度器分类FIFO(先进先出调度器)Capacity Scheduler(容量调度器)Fair Scheduler(公平调度器)概念目前,Hadoop作业调度器主要有三种:FIFO(先进先出调度器)、Capacity Scheduler(容量调度器)和Fair Scheduler(公平调度器)。Hadoop2.7.2默认的资源调度器是Capacity Scheduler。其配置位置在yarn-default.xml文件中。<property> <原创 2021-07-21 21:27:33 · 497 阅读 · 0 评论 -
Yarn基本架构和工作机制
Yarn基本架构和工作机制概念Yarn基本架构ResourceManager (RM)作用NodeManager (NM)作用ApplicationMaster (AM)作用container作用Yarn工作机制Yarn的工作机制图工作机制详解概念Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。Yarn基本架构YARN主要由ResourceManager、NodeManager、Appl原创 2021-07-21 18:56:15 · 621 阅读 · 0 评论 -
YARN的job提交过程
YARN的job提交过程job提交过程示意图job提交过程详解1.作业提交2.作业初始化3.任务分配4.任务运行5.进度和状态更新6.作业完成job提交过程示意图job提交过程详解1.作业提交(1)Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。(2)Client向RM申请一个作业id。(3)RM给Client返回该job资源的提交路径和作业id。(4)Client提交jar包、切片信息和配置文件到指定的资源提交路径。(5)Client原创 2021-07-19 21:33:32 · 610 阅读 · 4 评论 -
HDFS小文件优化方法
HDFS小文件弊端HDFS上每个文件都要在NameNode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用NameNode的内存空间,另一方面就是索引文件过大使得索引速度变慢。HDFS小文件解决方案小文件的优化有以下几种方式:(1)在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。Hadoop Archive是一个高效地将小文件放入HDFS块中的文件存档工具,它能够将多个小文件打包成一个HAR文件,这样就减少了Na原创 2021-07-19 21:23:31 · 449 阅读 · 0 评论 -
MapReduce的优化
MapReduce的优化MapReduce 运行慢的原因1.计算机性能2.I/O操作优化MapReduce的优化方法1.数据输入2.Map阶段3.Reduce阶段4.IO传输5.数据倾斜问题6.常用的调优参数MapReduce 运行慢的原因MapReduce程序效率的瓶颈在于两点:1.计算机性能CPU、内存、磁盘健康、网络2.I/O操作优化(1)数据倾斜(2)Map和Reduce数设置不合理(3)Map运行时间太长,导致Reduce等待过久(4)小文件过多(5)大量的不可分块的超大文件原创 2021-07-19 21:14:30 · 303 阅读 · 0 评论 -
Hadoop数据压缩
Hadoop数据压缩概述压缩概述压缩策略和原则1. 压缩策略2. 压缩基本原则压缩方式介绍压缩方式选择1.Gzip压缩2.Bzip2压缩3.Lzo压缩4.Snappy压缩压缩位置选择压缩参数配置压缩案例数据流的压缩和解压缩代码实现结果截图概述压缩概述压缩是提高Hadoop运行效率的一种优化策略。压缩技术能够有效减少底层存储系统(HDFS)读写字节数。压宿提高了网络带宽和磁盘空间的效率。在运行MR程序时,I/O操作、网络数据传输、Shuffle和Merge要花大量的时间,尤其是数据规模很大和工作负载密原创 2021-07-18 11:43:45 · 323 阅读 · 2 评论 -
MapReduce开发总结
MapReduce开发总结输入数据接口: lnputFormat默认使用的实现类是:TextInputFormatTextInputFormat的功能逻辑是:一次读一行文本,然后将该行的起始偏移量作为key,行内容作为valuei返回。KeyValueTextInputFormat每一行均为一条记录,被分隔符分割为key ,value。默认分隔符是tab ( it) 。NlineInputFormat按照指定的行数N来划分切片。CombineTextInputFormat可以把多个小文件合并成原创 2021-07-18 10:58:39 · 265 阅读 · 0 评论 -
数据清洗(ETL)
数据清洗(ETL)概念案例需求1.需求分析2.文件案例分析1.需求分析2.输入数据3.输出数据4.规则设定代码实现1. 编写LogMapper类2. 编写LogDriver类结果截图概念在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。案例需求1.需求分析去除日志中字段长度小于等于11的日志。2.文件案例分析1.需求分析按照需求设定规则,即可去除日志中字段长度小于等于11的原创 2021-07-17 15:26:16 · 727 阅读 · 4 评论 -
Map Join介绍及案例
Map Join介绍及案例Map Join介绍1. 使用场景2. 优点3. 实现方法Map Join案例1. 需求(1)需求说明(2)文件2.案例分析(1)需求分析(2)输入数据(3)期望输出数据(4) Map端表合并3.代码实现4.结果截图Map Join介绍1. 使用场景Map Join适用于一张表十分小、一张表很大的场景。2. 优点思考:在Reduce端处理过多的表,非常容易产生数据倾斜。怎么办?在Map端缓存多张表,提前处理业务逻辑,这样增加Map端业务,减少Reduce端数据的压力,原创 2021-07-16 15:46:29 · 2222 阅读 · 0 评论 -
Reduce Join介绍及案例
Reduce Join介绍及案例Reduce Join介绍Reduce Join案例需求1.需求说明2.文件案例分析1.需求分析2.输入数据3.期望输出数据4.MapTask5. ReduceTask代码实现1.创建商品和订单合并后的Bean类2.编写TableMapper类3.编写TableReducer类4. 编写TableDriver类结果截图Reduce Join介绍Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加原创 2021-07-16 15:11:28 · 1189 阅读 · 0 评论 -
OutputFormat接口实现类
OutputFormat接口实现类OutputFormat接口实现类概念自定义OutputFormat介绍1. 使用场景2. 自定义OutputFormat步骤自定义OutputFormat案例1.需求(1)需求说明(2)文件2.案例分析(1)需求分析(2)输入数据(3)输出数据(4)自定义OutputFormat类(5)驱动类代码实现1. 编写FilterMapper类2. 编写FilterReducer类3. 编写自定义OutputFormat类4. 编写RecordWriter类5. 编写Filter原创 2021-07-16 14:16:10 · 572 阅读 · 2 评论 -
ReduceTask工作机制
ReduceTask工作机制图示ReduceTask工作机制流程1. Copy阶段ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。2. Merge阶段在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。3. Sort阶段按照MapReduce语义,用户编写reduce()函数输入数据是按key进行聚集的一组数据。为了将key相同的数原创 2021-07-16 12:00:40 · 378 阅读 · 0 评论 -
MapTask的工作机制
MapTask工作机制图MapTask工作机制流程1. Read阶段MapTask通过用户编写的RecordReader,从输入InputSplit中解析出key/value。2. Map阶段该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。3. Collect收集阶段在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调原创 2021-07-16 11:52:28 · 638 阅读 · 0 评论 -
GroupingComparator分组
GroupingComparator分组GroupingComparator分组介绍概念分组排序步骤GroupingComparator分组案例需求1. 需求说明2. 文件案例分析1. 需求分析2. 输入数据3. 期望输出数据4. Map阶段5. Ruduce阶段代码实现1. 定义订单信息orderBean类2. 编写OrderSortMapper类3. 编写OrderSortGroupingComparator类4. 编写OrderSortReducer类5.编写OrderSortDriver类结果截图原创 2021-07-16 10:51:10 · 230 阅读 · 0 评论 -
Combiner合并案例
Combiner合并案例需求1. 需求说明2. 文件案例分析1. 需求分析2. 输入数据3. 期望输出数据4. 实施方案(1)方案一(2)方案二代码实现1. 基于wordcount案例2. 方案一3. 方案二结果截图需求1. 需求说明统计过程中对每一个MapTask的输出进行局部汇总,以减小网络传输量。2. 文件案例分析1. 需求分析可以采用Combiner功能来对每个MapTask的输出进行局部汇总,从而达到减小网络传输量。2. 输入数据3. 期望输出数据Combine输入数据多,原创 2021-07-15 14:44:59 · 421 阅读 · 2 评论 -
WordCount案例
WordCount案例需求1. 需求说明2. 文件案例分析1.需求分析2.输入数据3.期望输出数据4.Mapper类5. Reducer类6. Driver类代码实现1. 编写Mapper类2. 编写Reducer类3.编写Driver类结果截图需求1. 需求说明在给定的文本文件中统计输出每一个单词出现的总次数2. 文件案例分析1.需求分析在给定的文本文件中对内容进行统计,累加每一个单词出现的总次数并输出。2.输入数据3.期望输出数据4.Mapper类(1)将Maptask传给我原创 2021-07-15 11:32:25 · 572 阅读 · 1 评论 -
WritableComparable排序案例(区内排序)
需求1. 需求说明要求每个省份手机号(前三位手机号决定省份)输出的文件中按照总流量内部排序2. 文件案例分析1. 需求分析在全排序的基础上增加自定义分区类,分区按照省份手机号设置。2. 输入数据3. 期望输出数据4. 实现基于WritableComparable排序案例(全排序)WritableComparable排序案例(全排序)实现过程5. 增加自定义分区类自定义分区类ProvincePartitioner继承Partitioner代码实现1.基于WritableCom原创 2021-07-15 11:01:06 · 367 阅读 · 0 评论 -
WritableComparable排序案例(全排序)
WritableComparable排序案例(全排序)需求1. 需求说明2. 文件案例分析1. 需求分析2. 输入数据3. 期望输出数据4. FlowBean类5. Mapper类6. Reducer类代码实现1. 编写FlowBean类2.编写Mapper类3.编写Reducer类4.编写Driver类结果截图需求1. 需求说明对文件中的对总流量进行排序(降序排列)2. 文件案例分析1. 需求分析根据手机的总流量进行排序,即最终输出的文件只有一个,且文件内部有序。2. 输入数据3.原创 2021-07-15 10:46:50 · 654 阅读 · 2 评论 -
No FileSystem for scheme: S解决
问题描述在进行Map Join添加缓存文件时出现异常问题原因URI的写法错了原来的代码截图解决方法修改为正确的URL写法file:///S:/centos学习笔记/input/cacheinput/pd.txt结果截图原创 2021-07-15 08:51:47 · 765 阅读 · 0 评论 -
Partition分区及实例
Partition分区及实例Partition分区介绍概念自定义分区步骤分区总结:Partition分区案例需求1.需求说明2.文件案例分析1.需求输入数据期望输出数据实现分析代码实现1. MapReduce的序列化2. ProvincePartitioner分区类3. 修改Driver类结果截图Partition分区介绍概念需要将统计结果按照条件输出到不同的文件中(即分区中)。默认的Partition分区public class HashPartitioner<K,V> exte原创 2021-07-13 15:25:47 · 937 阅读 · 0 评论 -
自定义InputFormat案例
自定义InputFormat案例背景说明需求1. 需求说明2.文件案例分析1.需求2.输入数据3.输出数据4.实现分析代码实现1.自定义InputFromat2.自定义RecordReader类3.编写SequenceFileMapper类处理流程4.编写SequenceFileReducer类处理流程5.编写SequenceFileDriver类处理流程结果截图背景说明无论HDFS还是MapReduce,在处理小文件时效率都非常低,但又难免面临处理大量小文件的场景,此时,就需要有相应解决方案。可以自定原创 2021-07-13 14:13:33 · 477 阅读 · 0 评论 -
NLineInputFormat案例
NLineInputFormat案例需求文件内容案例分析1. 需求2. 输入数据3.期望输出数据代码实现1.编写Mapper类2.编写Reducer类3.编写Driver类结果截图需求对每个单词进行个数统计,要求根据每个输入文件的行数来规定输出多少个切片。此案例要求每三行放入一个切片中。文件内容案例分析1. 需求对每个单词进行个数统计,要求根据每个输入文件的行数来规定输出多少个切片。此案例要求每三行放入一个切片中。2. 输入数据3.期望输出数据4.Map阶段(1)获取一行(2)切原创 2021-07-12 23:21:17 · 267 阅读 · 2 评论 -
KeyValueTextInputFormat使用案例
需求统计输入文件中每一行的第一个单词相同的行数。文件内容案例分析1.需求统计输入文件中每一行的第一个单词相同的行数。2.输入数据3.期望输出数据4.Map阶段(1)设置key和value(2)写出5.Reduce阶段(1) 汇总(2) 写出6.Driver(1)设置切割符(2)设置输入格式代码实现1.编写Mapper类package com.atguigu.mr.kv;import java.io.IOException;import org.apache原创 2021-07-12 10:07:21 · 303 阅读 · 0 评论 -
Hadoop集群的安全模式
基本语法集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。bin/hdfs dfsadmin -safemode get //(功能描述:查看安全模式状态)bin/hdfs dfsadmin -safemode enter //(功能描述:进入安全模式状态)bin/hdfs dfsadmin -safemode leave //(功能描述:离开安全模式状态)bin/hdfs dfsadmin -safemode wait //(功能描述:等待安全模式状态)案原创 2021-07-11 22:21:21 · 407 阅读 · 2 评论 -
MapReduce的序列化案例
MapReduce的序列化案例需求文件内容案例分析1. 需求:2. 输入数据格式3. 期望输出格式4. Map阶段5. Reduce阶段编码实现1. 编写流量统计的Bean对象2. 编写Mapper类3. 编写Reducer类4. 编写Driver驱动类结果截图需求统计每一个手机号耗费的总上行流量、下行流量、总流量文件内容案例分析1. 需求:统计每一个手机号耗费的总上行流量、下行流量、总流量2. 输入数据格式3. 期望输出格式4. Map阶段(1)读取一行数据,切分字段(2)抽取原创 2021-07-09 10:36:48 · 552 阅读 · 2 评论 -
hadoop集群的白名单和黑名单示例说明
白名单示例说明:说明添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被退出。web浏览器查看添加白名单前:配置白名单的具体步骤如下:(1)在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目录下创建dfs.hosts文件[xzc@hadoop102 hadoop]$ pwd/opt/module/hadoop-2.7.2/etc/hadoop[xzc@hadoop102 hadoop]$ touch dfs.hosts原创 2021-07-08 13:07:25 · 735 阅读 · 3 评论 -
hdfs.DFSClient: Exception in createBlockOutputStream
问题描述:向hadoop集群上传文件报错[xzc@hadoop105 hadoop-2.7.2]$ hadoop fs -put wcinput/wc.input /user/atguigu/input/原因:防火墙没有关闭解决办法:关闭防火墙(注意需要切换root用户)重新上传:[xzc@hadoop105 hadoop-2.7.2]$ hadoop fs -put wcinput/wc.input /user/atguigu/input/...原创 2021-07-07 12:20:39 · 673 阅读 · 0 评论 -
hadoop定位文件读取
hadoop定位文件读取需求说明:上传文件分块下载查看需求说明:分块读取HDFS上的大文件,比如根目录下的/hadoop-2.7.2.tar.gz上传文件[xzc@hadoop102 /]$ hadoop fs -put /opt/module/hadoop-2.7.2.tar.gz查看文件块数(两块)分块下载下载第一块 //把HDFS的hadoop-2.7.2.tar.gz文件的前128M(第一块)下载到本地 @Test public void readFileSeek1()原创 2021-07-07 08:58:51 · 411 阅读 · 4 评论 -
HDFS以IO流的形式上传和下载文件案例
Maven工程HdfsClient的创建,对应包和类的创建参考HDFS文件上传、下载和删除案例1.文件上传//把本地的banzhang.txt文件上传到HDFS的根目录 @Test public void putFileToHDFS() throws IOException, InterruptedException, URISyntaxException { // 1 获取文件对象 Configuration configuration = new Configuration原创 2021-07-06 09:05:33 · 523 阅读 · 0 评论 -
HDFS文件详情查看案例
Maven工程HdfsClient的创建,对应包和类的创建参考HDFS文件上传、下载和删除案例1.HDFS文件详情查看代码 //文件详情查看 @Test public void testListFiles() throws IOException, InterruptedException, URISyntaxException { //获取fs对象 Configuration conf = new Configuration(); FileSystem fs = Fi原创 2021-07-05 22:21:06 · 358 阅读 · 0 评论 -
HDFS文件上传、下载和删除案例
(前提已经配置好HADOOP_HOME的环境变量,用的是hadoop2.7.2)1.创建Maven工程HdfsClient2.导入相应的依赖坐标+日志添加在上面箭头指的文件夹里添加下面的代码<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEAS原创 2021-07-05 11:25:44 · 381 阅读 · 0 评论 -
hdfs dfs的bash hdfs command not found解决方案
问题描述:在使用hdfs dfs命令时候发现bash hdfs command not found的错误问题原因:没有进行相关环境变量的配置解决方法:配置相关环境变量:在/etc/profile文件添加(HADOOP_HOME为你安装hadoop的位置)HADOOP_HOME=/opt/module/hadoop-2.7.2PATH=/opt/module/hadoop-2.7.2/bin:$PATH结果:...原创 2021-07-04 07:47:40 · 4700 阅读 · 0 评论 -
bash: xsync: command not found的解决方法
问题描述:在进行xsync集群分发,已经安装rsync的情况下,执行xsync /bin出现指令找不到的错误问题原因:自己在用户目录下,编写的/bin文件没有拷贝到系统目录的bin下。个人用户的bin,不在path中,拷贝过去后才能过去个人用户的环境变量。解决方法:将自己编写的/bin文件拷贝到系统目录的bin下[xzc@hadoop102 bin]$ sudo cp xsync /bin结果:...原创 2021-07-03 07:52:29 · 17034 阅读 · 10 评论 -
hadoop在Browse Directory中文件下载不了
问题描述解决方法:修改windows下的hosts文件步骤:1.找到windows的hosts文件:C:\Windows\System32\drivers\etc2.用编辑软件打开进行编辑3.添加下面的信息4.保存退出(一般要修改下当前权限下可以编辑,右键hosts文件的属性进行修改)结果如下:...原创 2021-07-02 08:46:47 · 709 阅读 · 2 评论 -
ntpdate[27350]: no server suitable for synchronization found
在进行ntpdate 同步时间时,出现下面的错误产生原因可能很多:1.换别的时间服务器2.ping 域名得到IP,在linux和windows上都ping,根据得到的ip再ntpdate3.防火墙没关(我的原因,大概率都是这个)4.ntpd -v 查看ntp版本,要求ntp 4.2以上版本5.需要重启ntpd服务...原创 2021-06-14 08:39:14 · 376 阅读 · 0 评论 -
集群时间同步
集群同步的方式找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔一分钟,同步一次时间。步骤1.时间服务器配置(必须为root用户,使用 su root 修改为root用户)(1)检查ntp是否安装[root@hadoop102 ~]# rpm -qa|grep ntp截图(2)修改ntp配置文件[root@hadoop102 ~]# vi /etc/ntp.confa)修改文件中对应部分为下面的形式(授权192.168.1.0-192.168.1.255原创 2021-06-14 08:26:18 · 403 阅读 · 0 评论 -
CentOS7下ntp安装步骤
NTP:网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒), 用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为 NTP 服务器的时间服务器同步它们的时间。检查ntp是否安装[root@hadoop102 /]# rpm -qa | grep ntp发现有服务包,但是只有原创 2021-05-18 07:03:59 · 1924 阅读 · 0 评论