大数据01 初始Hadoop、HDFS介绍

一、Hadoop核心组件介绍
HDFS:分布式海量数据存储功能
Yarn:提供资源调度与任务管理功能
资源调度:根据申请的计算任务,合理分配集群中的计算节点(计算机)
任务管理:任务在执行过程中,负责过程监控、状态反馈、任务再调度等工作。
MapReduce:分布式并行编程模型和计算框架。解决分布式编程门槛高的问题,基于其框架对分布式计算的抽象map和reduce,可以轻松实现分布式计算程序
Hive:提供数据摘要和查询的数据仓库。解决数据仓库构建问题,基于Hadoop平台的存储与计算,与传统的SQL相结合,让熟悉SQL的编程人员轻松想Hadoop平台迁移
Streaming:解决非Java开发人员使用Hadoop平台的语言问题,使各种语言如C++、python、shell等均可以无障碍使用Hadoop平台
HBase:基于列式存储模型的分布式数据库。解决某些场景下,需要Hadoop平台数据及时响应的问题
Zookeeper:分布式协同服务。主要解决分布式下数据管理问题:统一命名、状态同步、集群管理、配置同步等。
二、Ambari平台环境介绍
Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。 Ambari已支持大多数Hadoop组件,包括HDFS、 MapReduce、Hive 、Pig、Hbase、Zookeper、Sqoop和Hcatalog等
优点:
Web安装图形界面操作便捷
Hadoop家族各组件支持全面
社区资源比较丰富
缺点:
Bug较多:安装过程中,莫名其妙的出现错误。系统运维过程中偶尔出错。以上两种情况重启就正常
安装速度与网络质量关系较大,往往时间较长
在合理避免大坑的情况下,3小时内可以搭建一个基本版的集群

三、分布式文件系统HDFS

特点:
高容错和高可用行,硬件错误是常态而不是异常
流式数据访问
弹性存储,支持大规模数据集
简单一致性模型
移动计算而非移动数据
协议和接口多样性
多样的数据管理功能
含义: HDFS是Hadoop分布式文件系统

HDFS组件角色
NameNode(简称NN)
HDFS元数据管理者,管理NameSpace(文件系统命名空间),记录文件是如何分割成数据块以及他们分别存储在集群中的那些数据节点上。
NameSpace或其本身属性的任何更改都有NameNode记录,维护整个文件系统的文件和目录

     DataNode(简称DN)
              DataNode是文件系统的工作节点。根据客户端或者NameNode发送的管理指令,负责HDFS的数据块的读写和检索操作。
              通过心跳机制定期向NameNode发送他们的存储块的列表。

      Client
                 客户端Client代表用户与NameNode或者DataNode交互来访问整个文件系统的对象。
                 开发人员面向Client API来编程实现,对NameNode、DataNode来说透明无感。

读文件流程
第一步:Client向NameNode发送数据请求后,寻找数据对应的数据块的位置信息。
第二步:NameNode返回文件对应的数据块元数据信息,如所属机器、数据块的block_id、数据块的先后顺序等。
第三步:由Client与DataNode直接通信,读取各个block数据块的信息。过程为并行读取,由客户端合并数据。

写文件流程
第一步:
Client向NameNode发送写数据请求后,寻找可以写入的数据块block信息的机器位置。
若文件过大,写入可能会分成很多block数据块,实际上是通过一个block一个block的申请。
若副本为3,则每次请求后返回一个block的对应的3个副本的block的存放位置。
第二步:
Client获取到对应的block数据块所处的DataNode节点位置后,Client开始写操作。
Client先写入第一个DataNode,以数据包package的方式逐个发送和接收。如64K大小的package包大小来发送和接收。
存在多个副本时,package包的写入是依次进行的。写入到第一个DataNode后,第一个向第二个DataNode传输。第二个写完后,由第二个向第三个DataNode传输package。以此类推。
写完一个block数据块后,如果还有则反复进行第一步和第二步。
第三步:
待所有的数据块block均写完后,Client接收到全部写完的ack答复,告诉NameNode数据已写完,Client关闭socket流。
DataNode也会向NameNode报告新增block数据块的信息。

HDFS高可用性措施
冗余备份
跨机架副本存放
心跳检测
数据完整性检测
安全模式
核心文件备份
空间回收

hdfs dfs常用命令
hdfs dfs :查看 hdfs dfs下的所有可用命令
hdfs dfs -ls /:查看某目录下文件列表
hdfs dfs -cat /tmp/index.html:查看hdfs的某个文本文件
hdfs dfs –mkdir /tmp/tianliangedu :在hdfs中创建/tmp/tianliangedu目录
hdfs dfs –rm -r /tmp/tianliangedu:删除/tmp/tianliangedu目录
hdfs dfs -copyToLocal /tmp/index.html:将hdfs中的/tmp/index.html文件下载到本地文件的当前路 径下
hdfs dfs -copyFromLocal index.html /tmp/tianliangedu:从本地当前目录下,上传之前的index.html文件到hdfs的/tmp/tianliangedu目录中
hdfs dfs -text /tmp/tianliangedu/index.html.gz | more:查看压缩文本文件的格式
hdfs dfs -du -h /user/zel/job017:查看hdfs中目录/user/zel/job017 中文件占用磁盘大小
hdfs dfs -touchz /tmp/tianliangedu/HelloWorld.txt:在/tmp/tianliangedu目录中创建空文件HelloWorld.txt
hdfs dfs -usage cp:查看hdfs dfs中某个命令的用法,比如:cp:

hdfs dfsadmin:是集群管理员的常用命令,用来对HDFS集群的整体运行进行管理和运维。常用的管理命令如下
hdfs dfsadmin -help:查看管理命令的帮助信息
hdfs dfsadmin -report:报告文件系统的基本信息和统计信息
hdfs dfsadmin -setQuota ……:设置目录配额,目录配额是一个长整型数,限定指定目录下的名字个数 比如:hdfs dfsadmin -setQuota 10 /tmp/tianliangedu
hdfs dfsadmin -safemode get ##返回安全模式是否开启的信息,返回Safe mode is OFF/OPEN
hdfs dfsadmin -safemode enter ##进入安全模式
hdfs dfsadmin -safemode leave ##强制NameNode退出安全模式
hdfs dfsadmin -safemode wait ##等待,一直到安全模式结束

HDFS JavaAPI 应用
操作需求
步骤分解
操作实现
资源准备
Maven环境搭建
Pom配置依赖
编码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值