Hadoop:
MapReduce:因为要java代码开发,所以不做介绍
HDFS:分布式文件系统
Hadoop的2种说法
狭义: 指的就是Hadoop这个组件里面的3个组件,MapReduce,hdfs,yarn
广义: 指的是Hadoop的生态圈,有很多的大数据组件构建而成,包括:Linux,zookeeper,Hadoop,hive,hbase,redis,elk,kafka,java,scala,python,impala,kudu,spark,flink
Hadoop1.x与Hadoop2.x的区别
1.x :
mapreduce:
数据计算
资源管理
hdfs :
数据存储问题,还会自动备份
2.x: 更加稳定,因为MapReduce的压力减轻了
mapreduce:计算
yarn: 资源管理
hdfs : 存储
hdfs的3种角色:
namenode: 管理文件,存储元数据
secondarynamenode:辅助namenode,存储元数据
datanode:实际存储数据的地方(服务器的主要功能)
yarn的2种角色:
resourcemanager: 接收客户端的任务,分配任务,管理资源
nodemanager: 实际执行任务
MapReduce:就是一个计算框架
map:先分布式计算
reduce: 将分布式计算的结果合并
hdfs的特点:
1. 支持一次写入多次读取,不支持更新操作
2. 支持横向扩展
3. 默认的block块大小是128m ,默认的副本个数是2个
4. 支持存储超大文件,时效性差,导致hive不能用来顶替mysql
hdfs的四个角色的分工
client:
1. 切分文件
2. 与namenode通讯,读写请求都要经过namenode
3. 与datanode进行通讯,写数据或者读取数据
namenode:管理元数据
1. 处理客户端的请求,读写请求
2. master的角色,分工但是不做具体的数据存储
3. 存储元数据
datanode : 打工人
1. 存储数据
snn: 辅助namenode
1.不是namenode的备份节点,不是namenode挂掉,顶替namenode
2. 帮助namenode分担一部分工作,例如元数据的更新和合并
hdfs的shell命令:
hdfs dfs -ls -R / :遍历hdfs上所有文件
hdfs dfs -mkdir /bigdata_59/bigdata:创建文件夹
hdfs dfs -put start-all.sh /bigdata_59
hdfs dfs -get /bigdata_59/big /export/
hdfs dfs -mv /bigdata_59/big /bigdata_59/bigdata
hdfs dfs -rm -rf /bigdata_59/bigdata/big
hdfs dfs -cp /bigdata_59/start-all.sh /bigdata_59/bigdata
hdfs dfs -cat /bigdata_59/start-all.sh
总结:
hdfs的角色:
namenode : 管理元数据
1. 与client打交道,接收client的读写请求
2. 管理元数据
3. 告诉client往哪个节点datanode上写数据,读数据
4. master
datanode: 存数据
1. salve
2. 具体存储数据的地方
3. 接收client写或者读
secondarynamenode:
1. 不是用来顶替namenode的工作
2. 更新和合并元数据,将更新合并后的元数据发送给namenode
client :客户端
1. 切割文件成block
2. 发起请求给namenode
yarn: 管理资源,资源调度
resourcemanager:
1. 接收任务
2. 分配任务
3. 分配资源
nodemanager: 打工人
1.真正执行任务的地方