目录
Google三篇论文
google FS (google file system)文件管理系统
MapReduce 分布式计算框架
BigTable
Hadoop组件介绍
hdfs :是一个分布式存储框架,适合海量数据存储
mapreduce:是一个分布式计算框架,适合海量数据计算
yarn:是一个资源调度平台,负责给计算框架分配计算资源
hdfs架构分析
负责数据的分布式存储
主从结构:
主节点,可以有2个:namenode
从节点,有多个:datanode
namenode负责
接收用户操作请求,是用户操作的入口
维护文件系统的目录结构,称作命名空间
datanode负责
存储数据
资源的调度和管理平台
主从结构
主节点,可以有2个:ResourceManager
从节点,有很多个:NodeManager
ResourceManager负责
集群资源的分配与调度
MapReduce、Storm、Spark等应用,必须实现ApplicationMaster接口,才能被RM管理
NodeManager负责
单节点资源的管理(cpu+内存)
依赖磁盘io的批处理计算模型
主从结构
主节点,只有一个:MRAppMaster
从节点,就是具体的task
MRAppMaster负责
接收客户端提交的计算任务
把计算任务分给NodeManager的Container中执行,即任务调度
Container是YARN中资源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源)
Container由ApplicationMaster向ResourceManager申请的,由ResouceManager中的资源调度器异步分配给ApplicationMaster
Container的运行是由ApplicationMaster向资源所在的NodeManager发起的
监控Container中Task的执行情况
Task负责:处理数据
hadoop特点
扩容能力(Scalable) 能可靠(reliably)地存储和处理PB级别的数据,如果数据量更大,存储不下了,再增加节点就可以了。
成本低(Economical):可以通过普通机器组成的服务器集群来分发以及处理数据,这些服务器集群可达数千个节点。
高效率(Efficient):通过分发计算程序,hadoop可以在数据所在的节点上(本地)并行地(parae)处理他们,这使得处理非常迅速。
可靠性(Reliable):hadoop能够自动地维护数据的多份副本,并且在任务失败后能够自动地重新部署(redeploy)计算任务
128mb为一个block,最多超载10%
启动hadoop
在master格式化 清除缓存
hdfs namenode -format
start-all.sh
jps
浏览器输入master:50070
停止hadoop
stop-all.sh
hadoop的基本操作
hadoop的操作必须添加 hadoop dfs 否则执行的是linux里的命令
1、创建目录
mkdir 从"/"开始
创建多级目录添加-p
hadoop dfs -mkdir -p /a/b/c
2、查看文件
hadoop dfs -ls /data
权限说明(rwx(当前用户的权限)),r-x(当前用户组的权限),r-x其他用户的权限)
r4读 w2写 x1执行
3、上传文件
put
hadoop dfs -put score.txt /data/score
4、下载文件
将hdfs文件下载到linux本地
hadoop dfs -get /data/student/students.txt
5、复制
hadoop dfs -cp /data/a.txt /
6、查看文件内容cat
但是如果数据量比较大,不能用
hadoop dfs -cat /data/student/students.txt
7、移动 mv
hadoop dfs -mv /a.txt /a
8、删除文件或者目录 rmr
hadoop dfs -rmr /a/a.txt
但是并没有真的删除,而是移动到了回收站中 /user/root/.Trash/Current 每一个用户都有一个回收站
9、文件的永久删除:
1、回收站自动清理
fs.trash.interval
1440
2、手动删除回收站
hadoop dfs -rmr /user/root/.Trash/Current
3、强制删除
-skipTrash 当需要删除的文件比较大的时候
hadoop dfs -rmr -skipTrash /a
10、查看文件的大小
hadoop dfs -du -h /data
11、查看文件末尾 tail
-f一直等待查看
hadoop dfs -du -h /data
hdfs的源数据保存在namenode中
在namenode所在的节点/usr/local/soft/hadoop-2.7.6/tmp
hdfs的数据保存在datanode中,在data的所在节点的磁盘上(/usr/local/soft/hadoop-2.7.6/tmp/dfs/data/current/BP-1968529002-192.168.129.101-1609771935660/current/finalized/subdir0/s ubdir0)
hadoop dfsadmin -safemode get 命令是用来查看当前hadoop安全模式的开关状态
hadoop dfsadmin -safemode enter 命令是用来打开安全模式
hadoop dfsadmin -safemode leave 命令是离开安全模式