
Hadoop
上善若水
每天努力一点,就离大神们近一点。
展开
-
MapReducer——分析WordCount数据处理的过程并开发WordCount(1)
学习MapReduce程序开发,入门的第一个Demo就是WordCount。因此,分析WordCount数据处理的过程(非常、非常、非常重要)。下图是:分析WordCount数据处理的过程。WordCount数据处理过程:开发WordCount程序:项目结构:WordCountMapper.javapackage com.wordcount;import org....原创 2019-09-04 16:16:15 · 352 阅读 · 0 评论 -
Hadoop的三种安装模式——本地模式(2)
本地模式:特点:没有HDFS,只能测试MapReduce程序(不是运行在Yarn中,做一个独立的Java程序来运行)本地模式的配置测试MapReduce程序:hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /root/temp/input/data.txt /root/temp/output/wc注意:路径都是本地L...原创 2019-09-25 21:33:06 · 448 阅读 · 0 评论 -
Hadoop的三种安装模式——伪分布模式(3)
特点:在单机上,模拟一个分布式的环境,具备Hadoop的所有功能 HDFS:NameNode + DataNode + SecondaryNameNode Yarn:ResourceManager + NodeManager(*)hadoop-env.sh JAVA_HOME /root/training/jdk1.8.0_144(*)hdfs-site.xml...原创 2019-09-25 22:12:10 · 248 阅读 · 0 评论 -
免密码登录的原理和配置(4)
ssh-keygen -t rsassh-copy-id -i .ssh/id_rsa.pub root@bigdata111原创 2019-09-26 21:49:48 · 170 阅读 · 0 评论 -
Hadoop的三种安装模式——全分布模式(5)
全分布模式的配置1、至少需要3台机器,新建机器bigdata112,然后克隆机器bigdata113、bigdata114对克隆的机器bigdata113进行配置,配置网卡,修改IP.重启网络服务永久性修改主机名,重启机器2、集群的规划3、准备工作(*)安装三台Linux、JDK、关闭防火墙(*)设置主机名和IP vi /etc/...原创 2019-09-26 22:42:20 · 307 阅读 · 0 评论 -
HDFS——HDFS体系结构(1)
一、HDFS体系结构1、NameNode:名称节点(*)职责:(1)是HDFS的主节点、管理员(2)接收客户端(命令行、Java程序)的请求:创建目录、上传数据、下载数据、删除数据等等(3)管理和维护HDFS的日志和元信息(*)日志文件(edits文件)记录的是客户端的所有操作,同时体现了HDFS的最新的状态。是一个二进制文件位置:$HADOOP_HOME/tmp/dfs...原创 2019-10-08 19:11:51 · 645 阅读 · 0 评论 -
HDFS——HDFS的命令行操作(2)
HDFS操作命令(HDFS操作命令帮助信息:hdfs dfs) 命令 说明 示例 -mkdir 在HDFS上创建目录 l在HDFS上创建目录/data hdfs dfs -mkdir /data l在HDFS上级联创建目录/data/input...原创 2019-10-08 19:18:26 · 475 阅读 · 0 评论 -
HDFS——HDFS的Java API(3)
依赖的jar包: $HADOOP_HOME/share/hadoop/common/*.jar $HADOOP_HOME/share/hadoop/common/lib/*.jar $HADOOP_HOME/share/hadoop/hdfs/*.jar $HADOOP_HOME/share/hadoop/hdfs/lib/*.jar创建目录: HDFS的权限的问题&l...原创 2019-10-08 19:42:13 · 216 阅读 · 0 评论 -
HDFS——HDFS的安全模式(4)
什么时候安全模式?安全模式是hadoop的一种保护机制,用于保证集群中的数据块的安全性。如果HDFS处于安全模式,则表示HDFS是只读状态。 当集群启动的时候,会首先进入安全模式。当系统处于安全模式时会检查数据块的完整性。假设我们设置的副本数(即参数dfs.replication)是5,那么在datanode上就应该有5个副本存在,假设只存在3个副本,那么比例就是3/5=0.6。在配置文件hdf...原创 2019-10-08 19:48:27 · 320 阅读 · 0 评论 -
HDFS——HDFS的快照(5)
一个snapshot(快照)是一个全部文件系统、或者某个目录在某一时刻的镜像 快照应用在以下场景中:防止用户的错误操作 备份 试验/测试 灾难恢复HDFS的快照操作开启快照hdfs dfsadmin -allowSnapshot /input 创建快照 hdfs dfs -createSnapshot /input backup_input_20190804_01 ...原创 2019-10-08 19:59:21 · 248 阅读 · 0 评论 -
HDFS——HDFS的配额(6)
什么是配额?配额就是HDFS为每个目录分配的大小空间,新建立的目录是没有配额的,最大的配额是Long.Max_Value。配额为1可以强制目录保持为空。配额的类型名称配额:用于设置该目录中能够存放的最多文件(目录)个数。 空间配额:用于设置该目录中最大能够存放的文件大小。限定HDFS目录下,文件的大小 ---> 值必须大于数据块大小配额的应用案例设置名称配额命令:dfsad...原创 2019-10-08 20:14:13 · 364 阅读 · 0 评论 -
HDFS——HDFS的回收站(7)
默认回收站是关闭的,可以通过在core-site.xml中添加fs.trash.interval来打开幵配置时间阀值,例如: 删除文件时,其实是放入回收站/trash 回收站里的文件可以快速恢复 可以设置一个时间阈值,当回收站里文件的存放时间超过返个阈值,就被彻底删除,并且释放占用的数据块 查看回收站:hdfs dfs -lsr /user/root/.Trash/Curre...原创 2019-10-08 20:17:41 · 394 阅读 · 1 评论 -
搭建Hadoop的环境(1)
安装Linux和配置Linux 关闭防火墙、配置主机名 安装JDK解压安装包Hadoop的目录结构使用tree命令查看目录结构报错,提示我们该系统未安装tree。安装tree命令查看Hadoop目录结构 ...原创 2019-09-25 21:09:19 · 140 阅读 · 0 评论 -
MapReducer——使用MRUnit进行单元测试(12)
使用MRUnit进行单元测试过程使用的时候需要从官网http://mrunit.apache.org/下载jar包 基本原理是JUnit和EasyMock,其核心的单元测试依赖于JUnit,并且MRUnit实现了一套Mock对象来控制MapReduce框架的输入和输出;语法也比较简单。 注意:需要把mockito-all-1.8.5.jar从Build Path中去掉WordCou...原创 2019-09-21 18:14:30 · 272 阅读 · 0 评论 -
MapReducer——实现倒排索引(11)
倒排索引数据处理的过程使用MapReduce实现倒排索引RevertedIndexMapper.javapackage com.revertedindex;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce...原创 2019-09-20 20:50:11 · 851 阅读 · 0 评论 -
MapReducer——MapReduce编程案例:求部门的工资总额(2)
MapReduce编程案例:求部门的工资总额1、员工表 SQL:select deptno,sum(sal) from emp group by deptno;2、分析数据处理的过程3、开发程序项目结构:SalaryTotalMapper.javapackage com.salarytotal;import org.apache.had...原创 2019-09-04 21:34:14 · 850 阅读 · 0 评论 -
MapReducer——Java序列化和MapReducer序列化(3)
Java序列化必须实现 java.io.Serializable 接口,可以达到对象持久化的效果。代码实现:Student.javapackage com.serializable.java;import java.io.Serializable;public class Student implements Serializable { private int s...原创 2019-09-05 20:26:10 · 439 阅读 · 0 评论 -
MapReducer——使用序列化求部门工资总额(4)
举例2:使用MapReduce序列化重写“求部门工资的总额的例子数据处理过程如图:代码实现:EmpMapper.javapackage com.serializable.salarytotal;import com.serializable.hadoop.Emp;import org.apache.hadoop.io.IntWritable;import or...原创 2019-09-07 13:47:36 · 280 阅读 · 0 评论 -
MapReducer——Java对象排序和MapReducer基本数据类型排序(5)
Java对象排序若想使Java对象排序,就得实现java.lang.Comparable接口Student.javapackage com.sort.java;// 学生对象:按照学生的age年龄进行排序public class Student implements Comparable<Student> { private int stuID; pr...原创 2019-09-07 15:09:44 · 562 阅读 · 0 评论 -
MapReducer——MapReducer对象排序(6)
MapReducer对象的排序:必须实现接口:WritableComparable前提:(*)该对象必须是Key2 (*)必须实现序列化接口:Writable接口。public interface WritableComparable<T> extends Writable, Comparable<T>{} (*)对象...原创 2019-09-07 16:15:16 · 361 阅读 · 0 评论 -
MapReducer——分区(7)
MR的分区:根据Map的输出<key2 value2>进行分区(*)默认情况下,MR的输出只有一个分区(一个分区就是一个文件)(*)自定义分区:按照员工的部门号进行分区MyPartitionMapper.javapackage com.partition;import org.apache.hadoop.io.IntWritable;import org.a...原创 2019-09-08 17:42:17 · 269 阅读 · 0 评论 -
MapReducer——合并(8)
合并: Combiner (1)合并是一种特殊的Reducer (2)合并是在Mapper端执行一次合并,用于减少Mapper输出到Reducer的数据量,可以提高效率。 (3)举例:以WordCount为例 (4)注意:一定要谨慎使用Combiner,有些不能使用:求平均值 ...原创 2019-09-08 19:32:07 · 352 阅读 · 0 评论 -
MapReducer——数据去重(9)
数据去重复习SQL:distinct实现去重,作用于后面所有的列 一个列: select job from emp; select distinct job from emp; 多个列: select distinct...原创 2019-09-14 18:22:26 · 343 阅读 · 0 评论 -
MapReducer——多表查询:等值连接(10)
笛卡尔积:使用MR,求出员工姓名以及员工所属部门。分析等值连接的处理过程:EqualJoinMapper.javapackage com.equaljoin;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.ha...原创 2019-09-14 20:31:25 · 295 阅读 · 0 评论 -
MapReducer——多表查询:自连接(11)
查询员工信息,要求显示:员工老板的名字,员工的名字使用MR查询员工信息,要求显示:员工老板的名字,员工的名字分析自连接的处理过程SelfJoinMapper.javapackage com.selfjoin;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritabl...原创 2019-09-19 20:03:46 · 361 阅读 · 0 评论 -
HDFS——HDFS的底层通信原理采用的是:RPC和动态代理对象Proxy(8)
RPC什么是RPC?Remote Procedure Call,远程过程调用。也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信。RPC的基本通信模型是基于Client/Server进程间相互通信模型的一种同步通信形式;它对Client提供了远程服务的过程抽象,其底层消息传递操作对Client是透明的。在RPC中,Client即是请求服务的调用...原创 2019-10-08 20:19:00 · 305 阅读 · 0 评论