Hadoop工作—学习笔记

Hadoop

指令

#  查看文件大小
hadoop fs -ls -du -s -h  目录
# 查看文件,去头部
hadoop fs -text /data/hello.csv| head

Hadoop介绍

# HDFS (分布式文件系统)
# NameNode: 数据都存放在n(文件的元数据)
# DataNode:数据具体的存放位置(存储文件块数据)
# SeconaryNameNode:每隔一段时间对NameNode元数据备份

# Yarn (Hadoop的资源管理器 CPU + 内存)
# ResourceManager (RM):整个集群资源的管理
# NodeManager (NM):单个节点服务器资源管理
# ApplicationMaster (AM) 单个任务运行的老大
# Container (容器),相当于一台独立的服务器,默认内存(1~8G)CU(最低1个)

缺点

# 不适合存储小文件,一个文件占用150字节的内存的元数据
# 存储大量小文件,会占用大量的内存

HDFS的读写流程

# 写流程
	1.客户端向NameNode请求上传文件,NameNode检查文件是否已存在。
	2.NameNode返回是否可以上传。
	3.客户端向Namenode请求第一个文件块上传到DataNode。
	4.返回DataNode节点。
	5.客户端先请求dn1,再dn1收到请求会继续请求dn2,后面一样,建立通信管道完成。
	6.DataNode逐级应答客户端。
	7.客户端开始往dn1上传第一个文件块,dn1收到一个文件块就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答。(存放机制,先本机架,起它机架,同机架)。
	8.传输完成,重复之前的传输操作。
	
#读流程
	1.客户端向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。
	2.挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。
	3.DataNode开始传输数据给客户端。
	4.客户端先在本地缓存,然后写入目标文件。


# 客户端切分文件,机械硬盘一般(128M),固态硬盘一般(256M)
# HDFS设置太小,会增加寻址的时间。
# HDFS文件块的大小(面试重点)
	硬盘读写数据(寻址时间*100*磁盘读写速度)
	机械硬盘 128M 固态硬盘 256M

序列化

# 将内存中数据持久化到磁盘(字节码)
# 内存到磁盘(序列化)
# 磁盘到内存(反序列化)
# Hadoop序列化
数据+简单校验(结构紧凑,存储空间少,chu)
# Java序列化(太重)
数据+各种校验信息/头/继承体系

Hadoop切片

# FileInputFormat切片机制:1.1倍
# CombineTextInputFormat切片机制:当文件块大于1倍小于2倍,则平分块,小块相加,大于等于则形成切片。

Shuffle机制

# Map -> 环形缓冲区(默认100M,一边索引,一边数据,80%后反向)
	1.分区,分区索引排序,字典顺序排序
	2.第1-n次溢写:(可执行combiner操作),分区(快排 )(索引文件,数据文件),分区合并(归并排序)
	3.(可执行combiner操作),分区合并,可设置压缩,写入磁盘:
	# map输出数据
	4.内存缓冲(内存不够溢出到磁盘)
	5.归并排序,按key分组
# - > Reduce:

MapTask工作机制(切片决定并行度)

Read阶段:
	1.读取数据,
	2.切片化,
	3.提交Yarn(切片,jar,xml)
	4.计算MapTask数量
	5.TextInputFormat
Map阶段:
	6.逻辑运算
Collect阶段:
	7.环形缓冲区
	8.分区,排序(快排,索引)
溢写阶段:
	9.溢出到文件(分区且区内有序)
Merge阶段:
	10.归并排序

ReduceTask工作机制

Copy阶段:
	1.拉取指定分区的数据
Sort阶段
	2.分区间的归并排序
Reduce阶段:
	3.Reduce方法,TextInputFormat

Yarn

Yarn的工作机制:

Yarn调度器:
	1. FIFO/容器/公平
	2. apache默认调度器 容量,CDH默认调度器 公平
	3. 公平/容量默认一个队列,需要创建多队列
	4. 中小企业:hive spark flink mr
	5. 中大企业:业务模块:登录/注册/购物车/营销
	6. 好处:解耦 降低风险 降级使用
	7. 调度器特点:
		相同点:支持多队列,可以借资源、支持多用户
		不同点:容器:有限满足先提交任务运行
			   公平:队列里面的任务公平享有资源
	8. 生产环境如何选
		中小企业:对并发度不高,选择容量
		中大企业:对并发度要求高,选公平


配置文件

hdfs-site.xml
<!-- 关闭用户权限控制 -->
<property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
</property>

Hadoop支持的压缩格式

压缩格式算法实现压缩比效率可切分内置拓展名NativeJava描述
bzip2bzip2最高YesYes.bz2YesYes压缩率最高,压缩/解压缩效率最慢
deflateDEFLATENoYes.deflateNoYes标准压缩算法
gzipDEFLATENoYes.gzNoYes相比deflate增加文件头、尾;压缩比较高,压缩/解压缩效率慢
zlibDEFLATENoYes.zlYesNo相比deflate增加文件头、尾
lz4lz4最低最快NoYes.lz4YesNo压缩率较低;压缩/解压缩效率最快
lzolzo较低YesNo.lzo_deflateYesNo压缩率较低;压缩/解压缩效率最快
lzopsnappy较低YesNo.lzoYesNo压缩率较低;压缩/解压缩效率较快
snappysnappy较低NoNo.snappyYesNo压缩率较低;压缩/解压缩效率较快

Hadoop

hadoop指定SSH端口和修改启动用户,修改hadoop-env.sh

export HADOOP_SSH_OPTS="-p 1234" 
export JAVA_HOME=""
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HDFS_DATANODE_USER=root
export HADOOP_SECURE_DN_USER=hdfs
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export HADOOP_SECURE_DN_USER=yarn
export YARN_NODEMANAGER_USER=root

改端口

然后
ssh-copy-id -p 8022 hadoop102
ssh-copy-id -p 8022 hadoop103
ssh-copy-id -p 8022 hadoop104

netstat -anlp | grep sshd 
Yarn查看错误
yarn logs -applicationId application_xxxx
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个开源的分布式计算框架,可用于大数据的存储和处理。它采用了分布式文件系统(HDFS)和分布式计算框架(MapReduce),能够将大数据分割成小的数据块,并在集群中的多台计算机上并行处理这些数据块。 HDFSHadoop的分布式文件系统,它将大文件切分为多个数据块,并将这些数据块存储在集群中的多个计算机上。HDFS使用主从架构,其中NameNode负责管理文件系统的元数据,而多个DataNode负责实际存储数据。HDFS具有高容错性,能够自动复制数据块以保证数据的可靠性。 MapReduce是Hadoop的分布式计算框架,它通过将计算任务划分为多个Map和Reduce阶段来进行并行计算。Map阶段将输入数据切分为多个独立的小任务,并在集群中的多个计算机上并行执行。Reduce阶段将Map阶段的输出合并并进行聚合计算。MapReduce具有自动并行化、容错性和可扩展性等优点,能够高效地处理大规模数据集。 在学习Hadoop时,首先要了解Hadoop的核心组件,包括HDFS和MapReduce。然后,需要学习Hadoop的架构和工作原理,理解Hadoop如何实现分布式存储和计算。接下来,需要学习Hadoop的安装和配置,包括在单机和集群环境下的安装和配置过程。此外,还需要学习Hadoop的命令行工具和管理工具,以及Hadoop的API和编程模型。 在实际使用Hadoop时,需要掌握Hadoop的常用操作和管理技巧,如如何上传和下载文件、如何执行MapReduce作业、如何监控和管理Hadoop集群等。同时,需要学习Hadoop的优化技术和调优方法,以提高Hadoop集群的性能和效率。 总之,对于Hadoop学习,除了理解其基础知识和工作原理外,还需要熟悉其常用操作和管理技巧,以及灵活运用Hadoop来解决实际的大数据问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值