Hadoop环境部署-完全分布式
完全分布式 官方文档 https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/ClusterSetup.html https://hadoop.apache.org/docs/r3.1.3/hadoop-project-dist/hadoop-common/ClusterSetup.html 节点克隆与免密登录将预配置好的机器克隆:机器名为node1, node2, node3,根据VM网络信息配置合适IP地址,比如。 IP node1 192.168.179.101 node2 192.168.179.102 node3 192.168.179.103 Hostname修改略。 IP修改略。 配置hosts/etc/hosts (对三个节点都做如下配置) 123456127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost ...
Hadoop环境部署-伪分布式
伪分布式 官方文档 https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation 免密登录未配置免密登录通过ssh工具登录node0的时候,会让你输入密码。 12345678[zhangsan@node0 ~]$ ssh node0The authenticity of host 'node0 (192.168.179.100)' can't be established.ECDSA key fingerprint is SHA256:1+3DDeEwkWu0zRO1RoxISbQoKTSgZ56QO3Rl4XXteTw.ECDSA key fingerprint is MD5:92:c9:cd:4a:b8:07:29:ff:3d:25:1c:45:db:8b:5f:dc.Are you sure you want to continue connecting (yes/n...
Hadoop Windows Dev Env
Windows开发环境搭建MavenMaven下载1https://archive.apache.org 直接解压已经提供的压缩包即可 Maven配置MAVEN_HOME/conf/settings.xml123456789101112<!-- 本地仓库: 根据自己的情况修改保存位置 --><localRepository>D:\maven-repo</localRepository> <!-- 远程仓库: aliyun仓库 --><mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf...
Hadoop Serialize
Hadoop MapReduce 自定义序列化实战:部门工资总额统计一、实验基本信息 实验名称:基于 Hadoop MapReduce 的部门工资总额统计(自定义 Writable 序列化) 实验目标: 巩固 Hadoop MapReduce 核心架构(Mapper、Reducer)知识 掌握自定义 Writable 序列化对象的编写规范 实现从原始员工数据解析到部门工资总额聚合的完整流程 理解分布式计算中数据传输的序列化原理 实验环境:Hadoop 2.x/3.x 集群(或本地单机模式)、JDK 1.8、IDE(IntelliJ IDEA/Eclipse) 二、实验原理与基础知识巩固(入门阶段)2.1 核心概念回顾 MapReduce 核心流程:输入数据 → Mapper 解析映射 → Shuffle(排序+分组) → Reducer 聚合计算 → 输出结果 序列化的意义:Hadoop 分布式计算中,数据需在节点间传输,序列化将对象转为字节流,反序列化则恢复对象,自定义 Writable 可适配业务数据类型 关键组件职责: Mapper:读取原始数据,...
Hadoop_MapReduce
MapReduce工作流程 不同的Map任务之间不会进行通信 不同的Reduce任务之间也不会发生任何信息交换 用户不能显式地从一台机器向另一台机器发送消息 所有的数据交换都是通过MapReduce框架自身去实现的 Split HDFS 以固定大小的block 为基本单位存储数据,而对于MapReduce 而言,其处理单位是split。split 是一个逻辑概念,它只包含一些元数据信息,比如数据起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。 默认切片规则file < Block*1.1每个文件对应一个切片。一个切片对应一个Map进程,所以对于大量小文件场景,会启动很多的Map进程。 Map数量 Hadoop为每个split创建一个Map任务,split 的多少决定了Map任务的数目。大多数情况下,理想的分片大小是一个HDFS块 Reduce数量与Partitioner有关; 最优的Reduce任务个数取决于集群中可用的reduce任务槽(slot)的数目 •通常设置比reduce任务槽数目稍微小一些的Reduce任务个数(这样可以预留一些系...
Hadoop GroupBy
分组汇总Mapper1234567891011121314151617181920212223242526package cn.studybigdata.hadoop.mapred.bdeptsalary;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;public class DeptMapper extends Mapper<LongWritable, Text, IntWritable, IntWritable> { //7369,SMITH,CLERK,7902,1980/12/17,800,,20 @Override protected void map(LongWritable key, Text value, Co...
Hadoop Partitioner
分区计算Employee123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148package cn.studybigdata.hadoop.mapred.dpartition;import org.apache.hadoop.io.Writable;import java.io.DataInput;import java.io.DataOutput;import java....
Hadoop Combiner
CombinerMap1234567891011121314151617181920212223242526272829303132333435363738394041import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;/** * 输入:<0, Text> * hello word * hello bigdata * hello spark word * * * 输出:<word, 1> * * hello 3 * word 2 * spark 1 * bigdata 1 * */ ...
Hadoop 网络序列化与反序列化实训
marp: falseJava序列化与反序列化实训 序列化概述序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。 反序列化(Deserialization)则是将已序列化的对象状态信息恢复为对象的过程。 在分布式系统中,序列化机制允许对象通过网络在不同的Java虚拟机之间传输。 在Hadoop生态系统中,序列化尤为重要,因为MapReduce、YARN等组件需要在不同节点之间传输大量数据,高效的序列化机制能够显著提升性能。 Java序列化基础要实现序列化,一个类必须实现java.io.Serializable接口。这个接口是一个标记接口,没有定义任何方法。一旦一个类实现了这个接口,Java虚拟机(JVM)就可以将这个类的对象序列化并通过网络传输。 实训目标 掌握Java对象序列化机制 学习使用Socket进行网络通信 实现客户端与服务器之间的对象传输 理解transient关键字的作用 示例:Student类123456789101112131415161718192021222324252627282930313233343536...
Hadoop Pom
1234567891011121314151617181920212223242526272829303132333435<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.18.0</version> </dependency> &l...