大数据----【Hadoop基础知识、Shell定时采集数据】

本文介绍了Hadoop的核心组件NameNode和DataNode,包括它们的功能、工作原理以及HDFS的基本操作。此外,还详细讲解了如何通过Java API和Shell进行HDFS的数据操作,特别是如何实现Shell定时采集数据到HDFS。
摘要由CSDN通过智能技术生成

1. NameNode概述

  • NameNode是HDFS的核心
  • NameNode也称为Master
  • NameNode仅存储HDFS的元数据 : 文件系统中所有文件的目录树 , 并跟踪整个集群的文件
  • NameNode不存储实际数据或数据集 , 数据本身实际存储在DataNode中
  • NameNode知道任何文件的快列表及其位置
  • NameNode并不持久化存储每个文件中各个块所在的datanode的位置信息
  • NameNode对于HDFS至关重要 , 当NameNode关闭 , HDFS/Hadoop集群无法访问
  • NameNode是Hadoop集群中的单点故障
  • NameNode所在的机器通常会配置大量内存(RAM)

在这里插入图片描述

2. DataNode概述

  • DataNode负责将实际数据存储在HDFS中
  • DataNode也称为Slave
  • NameNode和DataNode会保持不断通信
  • DataNode启动时 , 它将自己发布到NameNode并汇报自己持有的块列表
  • 当某个DataNode关闭时 , 不会影响数据或集群的可用性 , NameNode将安排由其他DataNode管理的块进行副本复制.
  • DataNode所在的机器通常配置有大量的硬盘空间 , 故实际数据存储在其中
  • DataNode会定期(dfs.heartbeat.interval 配置项配置,默认是 3 秒)向NameNode 发送心跳,如果 NameNode 长时间没有接受到 DataNode 发送的心跳, NameNode 就会认为该 DataNode 失效。
  • block 汇报时间间隔取参数dfs.blockreport.intervalMsec,参数未配置的话默认为 6 小时.

Q:nn如何保证自己记录的元数据跟dn实际存储的信息是一致的。

  • 定时汇报机制
    • datanodes在启动的时候首先汇报一次自己持有的块信息
    • 后续每隔一段时间 再次发生块的信息
    • 默认是每隔6小时汇报一次
  • 心跳机制
    • datanodes在启动的时候向nn注册自己
    • 后续每隔3秒发送心跳信息 报活

3. HDFS的工作机制

​ HDFS 的内部工作机制对客户端保持透明,客户端请求访问 HDFS 都是通过向NameNode 申请来进行。

在这里插入图片描述

4. HDFS的应用开发

4.1 HDFS的Java API操作

HDFS 在生产应用中主要是客户端的开发,其核心步骤是从 HDFS 提供的 api中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS 上的文件。

4.1.1 搭建开发环境

创建maven工程 , 引入pom依赖

<dependencies>
  <dependency>  
          <groupId>org.apache.hadoop</groupId>  
          <artifactId>hadoop-common</artifactId>  
          <version>2.7.4</version>  
   </dependency>  
   <dependency>  
          <groupId>org.apache.hadoop</groupId>  
          <artifactId>hadoop-hdfs</artifactId>  
          <version>2.7.4</version>  
   </dependency>  
   <dependency>  
          <groupId>org.apache.hadoop</groupId>  
          <artifactId>hadoop-client</artifact
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值