Hadoop2.x
文章平均质量分 83
专用于教学实验,便于学生查阅方便
若兰幽竹
认认真真做事,踏踏实实做人。不以物喜,不以己悲,活出自我,成就自我。
展开
-
MapReduce之日志分析
MapReduce之日志分析一、相关说明二、测试数据三、编程思路四、实现步骤五、打包上传到集群中运行(仅供参考,自行修改)一、相关说明要求:对电商访问日志进行清洗,求出每种商品或者url的访问量(PV)二、测试数据测试数据如下,部分内容如下:niit110,192.168.215.131 - - [28/May/2019:18:11:44 +0800] "GET /shop/detail.html?id=402857036a2831e001kshdksdsdk89912 HTTP/1.0"原创 2021-06-24 09:02:50 · 2191 阅读 · 3 评论 -
MapReduce之倒排索引
MapReduce之倒排索引一、相关说明二、测试数据三、编程思路四、实现步骤五、打包上传到集群中运行(仅供参考,自行修改)一、相关说明倒排列表概念 :倒排列表用来记录有哪些文档包含了某个单词。一般在文档集合里会有很多文档包含某个单词,每个文档会记录文档编号(DocID),单词在这个文档中出现的次数(TF)及单词在文档中哪些位置出现过等信息,这样与一个文档相关的信息被称做倒排索引项(Posting),包含这个单词的一系列倒排索引项形成了列表结构,这就是某个单词对应的倒排列表。图1是倒排列表的示意原创 2021-06-17 10:17:06 · 4733 阅读 · 0 评论 -
MapReduce之数据库表输入
MapReduce之数据库表输入一、需求说明二、测试数据三、编程思路四、实现步骤五、打包上传到集群中运行(仅供参考,自行修改)一、需求说明说明:直接从MySQL表中读取数据,将其作为MapReduce的输入源要求:要求:利用MR直接读取emp表中的数据,并统计出各个部门的工资之和。二、测试数据员工信息表【emp】表创建表的SQL语句:/*Navicat MySQL Data TransferSource Server : local-mysqlSource S原创 2021-06-04 09:55:26 · 730 阅读 · 0 评论 -
MapReduce之多输入
MapReduce之多输入一、需求说明二、测试数据三、编程思路四、实现步骤五、打包上传到集群中运行一、需求说明说明:多输入指的是数据源有多种格式的数据,比如在一个目录下有文本类型的和SequenceFile二进制格式的。 针对这种场景,需要使用MapReduce来分析数据。要求:改写wordcount程序的输入数据源,实现单词统计。二、测试数据序列化文件:下载地址文本文件可以使用之前的wordcount案例所使用的测试数据三、编程思路思路:1、有多少种数据格式,就需要编写与原创 2021-05-25 11:42:37 · 693 阅读 · 0 评论 -
MapReduce之自定义分组
MapReduce之自定义分组一、需求说明二、测试数据三、编程思路四、实现步骤五、打包上传到集群中运行一、需求说明说明: 分组是一种特殊的比较器,对key做比较,并进行归并,类似于合并同类项,也类似于SQL中的分组查询要求: 通过自定义分组比较器实现将emp.csv中的数据按照部门号分成三个分组,并显示出每组的人员名称,最终显示的结果格式如下所示:<10,CLARK1;KING1;MILLER1><20,CLARK2;KING2;MILLER2><30,CLA原创 2021-05-25 11:33:14 · 634 阅读 · 1 评论 -
MapReduce之Join多表查询实现
MapReduce之Join多表查询实现一、需求说明二、测试数据三、编程思路四、实现步骤五、打包上传到集群中运行一、需求说明要求:实现dept部门表和emp员工表关联查询即等值查询,实现如下SQL功能:select b.deptname,a.ename from emp a join dept b on a.deptno=b.deptno二、测试数据员工信息表:下载地址表字段说明:三、编程思路思路:1、在map阶段注意区分读取进来的数据所属哪张表,需做判断进行区分2、在原创 2021-05-25 11:25:16 · 666 阅读 · 3 评论 -
MapReduce之自定义分区
MapReduce之自定义分区一、需求说明二、测试数据三、编程思路四、实现步骤四、打包上传到集群中运行(参考如下步骤)一、需求说明要求:按照员工的部门号分为3个分区。二、测试数据员工信息表:下载地址表字段说明:三、编程思路思路:1、定义一个java类【EmpPartitioner】,实现【Partitioner】接口2、重写方法【getPartition】,编写分区规则3、只需写Mapper阶段,验证是否按照分区规则进行分区4、编写Job类,设置mapper及输入输出原创 2021-05-25 11:18:45 · 461 阅读 · 1 评论 -
MapReduce之序列化对象作为key来进行排序
MapReduce之序列化对象作为key来进行排序一、需求说明二、测试数据三、编程思路四、实现步骤四、打包上传到集群中运行(参考如下步骤)一、需求说明要求:按照员工的部门号排序select * from emp order by deptno;按照员工的部门号、薪水排序select * from emp order by deptno asc,sal desc;二、测试数据参考测试数据三、编程思路思路:1、定义一个java类,实现WritableComparable接口原创 2021-05-25 11:11:25 · 696 阅读 · 0 评论 -
Java对象排序
Java对象排序一、需求说明二、编程思路三、实现步骤一、需求说明要求:利用Java面向对象的方法实现两个Java对象的比较规则,从而按照规则实现对Java对象的排序。二、编程思路思路:1、定义一个java类,实现Comparable接口2、重写方法compare3、定义测试类,利用集合完成排序三、实现步骤在Idea或eclipse中创建maven项目在pom.xml中添加hadoop依赖<dependency> <groupId>org.原创 2021-05-25 11:00:46 · 442 阅读 · 0 评论 -
MapReduce之字符串排序
MapReduce之字符串排序一、需求说明二、测试数据三、编程思路四、实现步骤四、打包上传到集群中运行(参考如下步骤)一、需求说明要求:自定义一个字符串排序规则,实现字符串与默认的字典顺序相反。以wordcount程序为基础来改写,实现小写在前,大写在后的排序规则。二、测试数据参考MapReduce入门案例三、编程思路因在MapReduce中字符串数据类型默认是英文的26字母大小写排序的(大写在前,小写在后),因此我们只需要写一个类继承Text.Comparator,重写comp原创 2021-05-25 10:33:16 · 779 阅读 · 0 评论 -
MapReduce之Mapper源码
MapReduce之Mapper解析一、Mapper类源码二、Mapper类概述与作用三、Maps的数量四、Mapper的Context一、Mapper类源码Mapper源码如下,去除了类的注释,保留了方法上的注释package org.apache.hadoop.mapreduce;import java.io.IOException;import org.apache.hadoop.classification.InterfaceAudience;import org.apache.ha原创 2021-05-19 23:50:03 · 494 阅读 · 5 评论 -
MapReduce之基本数据类的排序
MapReduce之基本数据类的排序一、需求说明二、测试数据三、编程思路四、实现步骤四、打包上传到集群中运行一、需求说明要求:将各个部门降序排列,利用MapReduce实现将emp.csv中的部门倒序排列二、测试数据员工信息表:下载地址表字段说明:三、编程思路因在MapReduce中基本数据类型(如int)默认是升序排序的,因此我们只需要写一个类继承IntWritable.Comparator,重写compare方法即可四、实现步骤在Idea或eclipse中创建原创 2021-05-17 22:53:10 · 883 阅读 · 6 评论 -
MapReduce之利用对象序列化方式来求各个部门工资与奖金的总额
MapReduce之利用对象序列化方式来求各个部门工资与奖金的总额一、需求说明二、测试数据三、实现步骤四、打包上传到集群中运行一、需求说明MapReduce之利用对象序列化方式来求各个部门工资与奖金的总额二、测试数据员工信息表:下载地址表字段说明:三、实现步骤在Idea或eclipse中创建maven项目在pom.xml中添加hadoop依赖<dependency> <groupId>org.apache.hadoop</groupI原创 2021-05-17 22:41:43 · 1122 阅读 · 3 评论 -
MapReduce之求各个部门工资的总和
MapReduce之求各个部门工资的总和一、需求说明二、测试数据三、实现步骤四、打包上传到集群中运行一、需求说明利用MapReduce程序求出各个部门工资的总和二、测试数据员工信息表:下载地址表字段说明:三、实现步骤在Idea或eclipse中创建maven项目在pom.xml中添加hadoop依赖<dependency> <groupId>org.apache.hadoop</groupId> <artifactId&原创 2021-05-17 22:32:01 · 3902 阅读 · 13 评论 -
Hadoop开发环境准备及错误问题解决方法
Hadoop开发环境准备及错误问题解决方法一、开发环境准备二、错误问题及其产生原因三、错误问题解决方法一、开发环境准备Hadoop环境已经搭建好(伪分布式搭建好即可)eclipse或者idea已经下载安装好修改下idea中默认的maven镜像地址为阿里云的镜像地址,配置如下(1)启动idea,找到idea中maven默认的仓配置地址:(2)找到上述红色部分的文件夹后,查看下.m2下面有没有settings.xml,如果,你需要在.m2下面创建settings.xml文件,文件内容如下,你复原创 2021-04-28 22:06:46 · 1343 阅读 · 4 评论 -
MapReduce入门案例
MapReduce概述及其Wordcount案例一、MapReduce简介二、MapReduce优缺点三、MapReduce核心思想四、MapReduce实例进程五、MapReduce编程规范六、WordCount入门案例实现一、MapReduce简介Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架;其思想来源于Google的MapReduce。Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并原创 2021-04-28 09:24:29 · 3672 阅读 · 6 评论 -
Hadoop Rpc简单实现
Hadoop Rpc简单实现一、Hadoop RPC总体架构二、Hadoop Rpc特点三、实现步骤四、运行及实验结果一、Hadoop RPC总体架构序列化层序列化作用主要还是将结构化数据对象转换成字节流用于网络传输或写入持久存储。在RPC中,主要是将用户请求的参数或者服务器应答转化成字节流跨机器传输。函数调用层作用:定位所需调用的函数并执行函数。依赖:Java的反射与Java的动态代理模式来实现网络传输层作用:用于描述Client与Server之间的消息格式。依赖:Hadoop原创 2021-04-22 00:15:26 · 3164 阅读 · 11 评论 -
RPC及其简单实现
RPC及其简单实现一、RPC介绍1. 概念2. 通讯模式3. 通用架构4. 调用原理二、简单实现一、RPC介绍1. 概念远程过程调用(Remote Procedure Call,RPC)是一种常用的分布式网络通信协议,它允许运行于一台计算机的程序调用另一台计算机的子程序,同时将网络的通信细节隐藏起来,使得用户无须额外地为这个交互作用编程。2. 通讯模式基于Client/Server客户机与服务器的交互模式3. 通用架构通用架构图通信模块基于请求-应答模式,在客户程序与服务程序间传递数据原创 2021-04-15 20:05:46 · 954 阅读 · 0 评论 -
Java网络编程小案例
Java网络编程小案例一、Java网络工具包简介二、InetAddress三、InetSocketAddress四、URL类五、Socket一、Java网络工具包简介Java为了可移植性,不允许直接调用操作系统,而是由java.net包来提供网络功能。Java虚拟机负责提供与操作系统的实际连接。下面我们来介绍几个java.net包中的常用的类。二、InetAddress作用封装计算机的IP地址和DNS(Domain Name System)但不封装端口信息。特点这个类没有构造方法。如果要原创 2021-04-15 12:05:11 · 1024 阅读 · 3 评论 -
Hadoop2.7.3之数据压缩
Hadoop2.7.3之文件压缩一、概述二、MR支持的压缩编码三、各种压缩方式详解3.1 Gzip压缩3.2 lzo压缩3.3 snappy压缩3.3 bzip2压缩3.4 如何选择压缩格式?四、压缩/解压案例一、概述压缩技术能够有效减少底层存储系统(HDFS)读写字节数。压缩提高了网络带宽和磁盘空间的效率。在Hadood下,尤其是数据规模很大和工作负载密集的情况下,使用数据压缩显得非常重要。在这种情况下,I/O操作和网络数据传输要花大量的时间。还有Shuffle与Merge过程同样也面临着巨大的I原创 2021-04-13 00:25:00 · 760 阅读 · 2 评论 -
Hadoop2.7.3 Writable 序列化之二
Hadoop2.7.3 Writable 序列化之二1. Hadoop序列化背景或原因2. Hadoop Writable机制3. 实验内容3.1 思路3.2 编写HadoopPerson类3.3 编写测试类4. 实验结果4.1 调用ser()序列化后文件内容如下4.1 调用反序列化方法deSer()结果如下1. Hadoop序列化背景或原因Java序列化会附带额外的信息,浪费带宽资源Java反序列化,会不断创建新的对象,无法实现对象共享Hadoop处理大文件的特征决定大数据平台序列化特征:原创 2021-03-31 17:14:24 · 715 阅读 · 0 评论 -
Hadoop2.7.3 Writable 序列化之一
Hadoop2.7.3 Writable 序列化之一1. Hadoop序列化背景或原因2. Hadoop Writable机制3. 实验内容3.1 思路3.2 编写HadoopPerson类3.3 编写测试类4. 实验结果4.1 调用ser()序列化后文件内容如下4.1 调用反序列化方法deSer()结果如下![在这里插入图片描述](https://img-blog.csdnimg.cn/20210330132540656.png)1. Hadoop序列化背景或原因Java序列化会附带额外的信息,浪原创 2021-03-30 13:26:41 · 645 阅读 · 0 评论 -
Hadoop2.7.3之HDFS IO流实现数据分块读取
Hadoop2.7.3之HDFS IO流实现数据分块读取一、读取HDFS大致流程1.1 HDFS架构1.2 读文件流程图二、编写代码实现三、小结说 明: IO流实现数据分块获取环 境: Hadoop2.7.3测试数据: 319M的hadoop3.1.1.tar.gz一、读取HDFS大致流程读文件流程,其实是client程序先向namenode节点通信,获取数据块元信息后,再和datanode节点进行通信,获取对应数据节点上的数据即可。因此,我将列出hdfs的架构图,让读取了解其架构,回原创 2021-03-25 21:44:41 · 1812 阅读 · 0 评论 -
在CentOS7(有图形化界面)上安装maven和idea
在CentOS7(有图形化界面)上安装maven和idea一、安装maven二、安装idea社区版一、安装mavenmaven下载地址https://maven.apache.org/download.cgi安装包会默认在当前用户的家目录下,将其移动到tgz目录mv apache-maven-3.6.3-bin.tar.gz tgz/解压安装,需进入到tgz目录下,执行如下命令tar -zvxf apache-maven-3.6.3-bin.tar.gz -C traini原创 2021-03-20 23:05:20 · 1804 阅读 · 0 评论 -
Hadoop2.7.3客户端之Java API查看当前文件详情
Hadoop2.7.3客户端之Java API查看当前文件详情在Idea或eclipse中创建maven项目在pom.xml中添加hadoop依赖(参考前面博文)编写测试代码,代码如下:/*** 查看文件的详情* 思路:* 1、配置信息Configuration* 2、FileSystem* 3、拿到文件,调用fileSystem提供的获取文件信息的方法listFiles* 4、关闭系统资源*/public static void listFiles() throws IOExcep原创 2021-03-17 23:23:20 · 539 阅读 · 0 评论 -
Hadoop2.7.3客户端之Java API上传/下载文件
Hadoop2.7.3客户端之Java API上传/下载文件在Idea或eclipse中创建maven项目在pom.xml中添加hadoop依赖(请参考前面的博文)编写测试代码上传代码/*** 文件上传:从本地上传文件到HDFS上* 思路:* 1、明确目的地,Configuration设置HDFS* 2、利用FileInputStream,读取本地文件* 3、通过FileSystem对象调用create方法,在hdfs创建一个空文件,并返回输出流FSDataOutputStream*原创 2021-03-17 23:20:18 · 1866 阅读 · 0 评论 -
Hadoop客户端之Java API创建目录/删除目录
Hadoop客户端之Java API创建目录/删除目录一、创建目录二、删除目录环境:Windows + IDEA + Hadoop2.7.3目的:熟悉Hadoop API依赖:<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.原创 2021-03-10 15:28:16 · 2936 阅读 · 0 评论 -
Hadoop2.7.3 之 CLI 操作
Hadoop2.7.3 之 CLI 操作一、常用命令二、管理员命令说明:熟悉使用hadoop的命令行来操作hdfs一、常用命令二、管理员命令查看当前分布式文件系统的状态hdfs dfsadmin -report查看当前分布式文件系统的安全模式状态hdfs dfsadmin -safemode get将当前分布式文件系统设置成安全模式后,进行文件上传操作,查看下文件是否能上传设置成安全模式hdfs dfsadmin -safemode enter传到分布式系统上的/inpu原创 2021-03-10 15:19:15 · 685 阅读 · 2 评论 -
Hadoop2.7.3 HA模式搭建
Hadoop2.7.3 HA模式搭建一、集群的规划二、准备工作三、配置Zookeeper四、安装Hadoop集群五、启动Zookeeper集群六、在bigdata112和bigdata113上启动journalnode七、格式化HDFS(在bigdata112上执行)八、在bigdata112上启动Hadoop集群九、在 bigdata113上的ResourceManager需要单独启动说明:为解决Hadoop单点故障问题,需要采用HA模式进行部署环境:VMWare + Centos7 + JDK原创 2021-03-10 15:12:36 · 626 阅读 · 0 评论 -
Hadoop2.7.3全分布式环境搭建
Hadoop2.7.3全分布式环境搭建一、准备工作二、在主节点上进行安装配置(niit01)三、分发到从节点四、在主节点(niit01)上启动五、验证结果说明:完成Hadoop全分布式环境搭建,需准备至少3台虚拟机(niit01 niit02 niit03)环境:VMWare + Centos7 + JDK1.8+ Hadoop2.7.3主机规划:主节点:niit01从节点:niit02 , niit03一、准备工作1、所有主机安装jdk2、所有主机都需要关闭防火墙3、所有主机原创 2021-03-10 14:45:06 · 2236 阅读 · 0 评论 -
Hadoop2.7.3环境搭建之伪分布式
Hadoop伪分布式环境搭建一、前置条件二、准备工作三、Hadoop安装四、伪分布式配置说明:熟悉Hadoop伪分布式环境搭建基本思路与流程,理解主从式结构体系思想一、前置条件前置条件请自行参考如下资料进行操作,确保虚拟机及操作系统正常安装安装VMware参考: https://blog.csdn.net/sujiangming/article/details/87991536创建虚拟机和安装操作系统CentOS7参考: https://blog.csdn.net/sujiangmi原创 2021-03-08 21:46:04 · 9059 阅读 · 2 评论 -
Hadoop实验环境与资料说明
Hadoop实验准备工作一、实验环境二、两种依赖引入方式三、安装约定说明:将实训所需的资料和实验所需依赖放在该文章内,便于以后查看!一、实验环境虚拟机:VMware/VirtualBoxCentos7镜像:CentOS-7-x86_64-DVD-1511.isoJDK: jdk-8u171-linux-x64.tar.gz (建议与我保持一致)Hadoop:hadoop-2.7.3.tar.gz(建议与我保持一致)连接工具:MobaXterm_Portable 或FinalShell(可原创 2021-03-08 20:52:10 · 1359 阅读 · 1 评论