hadoop组件

hadoop由4部分组成

  1. HDFS:(Hadoop Distribute File System)分布式文件系统,海量数据存储解决方案
  2. MapReduce:Hadoop的分布式运算编程框架
  3. Yarn:分布式资源调度平台和任务监控平台
  4. Commons: HADOOP底层技术支持

主要用来解决:大数据存储,大数据分析.核心组件:HDFS,MapReduce

hadoop的特点

  1. 高可靠性: Hadoop底层将数据以多个副本的形式存储在不同的机器上,保证数据的安全可靠
  2. 高扩展性: 当存储hdp集群的存储能力和运算资源不足时,可以横向的扩展机器节点来达到扩容和增强运算能力
  3. 高效性:在MapReduce的思想下能够在节点之间动态地移动运算,且是分布式并行工作的,所以运算海量数据非常高效
  4. 高容错性:Hadoop能够自动保存数据的多个副本,当有存储数据的节点宕机以后,会自动的复制副本维持集群中副本的个数,并且能够自动将失败的任务重新分配
  5. 低成本:hadoop可以运行在廉价的机器上并行工作,达到高效,安全,效率于一身目的

HDFS分布式文件系统

(Hadoop Distribute File System)分布式文件系统,解决了海量数据无法单台机器存储的问题,将海量的数据存储在不同的机器中,由HDFS文件系统统一管理和维护,提供统一的访问目录和API

常用客户端命令

  1. hdfs dfs 回车 查看指令
  2. 创建文件夹
  3. hdfs dfs -mkdir -p /abc
  4. 创建文件
  5. hdfs dfs -touchz /abc/a.txt
  6. 查看
  7. hdfs dfs -ls /
  8. 本地创建文件
  9. echo "hello" >> b.txt
  10. b.txt下载到 分布式文件系统上 /abc
  11. hdfs dfs -put 本地文件
  12. hdfs dfs -put /abc/aa.txt /
  13. hdfs dfs -put /abc/aa.txt /cc.txt 上传并改名
  14. 本地创建文件
  15. echo "hello" >> b.txt
  16. b.txt下载到 分布式文件系统上 /abc
  17. hdfs dfs -get 数据源 数据目的
  18. hdfs dfs -get /abc/aa.txt /
  19. hdfs dfs -get /abc/aa.txt /cc.txt下载并改名
  20. 修改abc文件夹的权限
  21. hdfs dfs -chmod 777 /abc
  22. 修改所有该文件下文件的权限
  23. hdfs dfs -chmod -R 777 /abc
  24. 删除abc文件夹下的 a.txt
  25. hdfs dfs -rm -r /abc/a.txt
  26. 删除abc文件夹下的所有内容
  27. hdfs dfs -rm -r /abc/*

HDFS

组成

  • HDFS集群包括,NameNode和DataNode以及Secondary Namenode
  • NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息
  • DataNode 负责管理用户的文件数据块,每一个数据块都可以在多个datanode上存储多个副本。
  • Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

文件块大小

  • HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M
  • HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M
  • 如果寻址时间约为10ms,而传输速率为100MB/s,为了使寻址时间仅占传输时间的1%,我们要将块大小设置约为100MB。默认的块大小实际为64MB,但是很多情况下HDFS使用128MB的块设置。
  • 块的大小:10ms100100M/s = 100M