Hadoop学习

第二天

一、第一个MapReduce程序

本次实例使用hadoop自带的MapReduce程序WordCount,WordCount的主要功能是统计输入目录下所有文件单词出现的次数,并把统计结果输出到指定目录下。
1.在hdfs根目录下创建目录InputDataTest

hdfs dfs -mkdir /InputDataTest

查看是否创建成功:

hdfs dfs -ls /

2.将需要统计词频的文件上传到InputDataTest文件夹中

hdfs dfs -put /Users/xiangtongtong/hadoop-2.8.5/etc/hadoop/hadoop-env.sh /InputDataTest
hdfs dfs -put /Users/xiangtongtong/hadoop-2.8.5/etc/hadoop/mapred-env.sh /InputDataTest
hdfs dfs -put /Users/xiangtongtong/hadoop-2.8.5/etc/hadoop/yarn-env.sh /InputDataTest

我这里上传了三个文件进行测试
3.调用hadoop自带的WordCount程序,使用hadoop集群执行词频统计

hadoop jar /Users/xiangtongtong/hadoop-2.8.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /InputDataTest /OutputDataTest

查看信息,会发现程序进行了map和reduce这两步操作

20/10/28 15:05:09 INFO mapreduce.Job:  map 0% reduce 0%
20/10/28 15:05:16 INFO mapreduce.Job:  map 100% reduce 0%
20/10/28 15:05:21 INFO mapreduce.Job:  map 100% reduce 100%

4.查看结果,程序执行完毕之后,结果会输出到OutputDataTest目录中

hdfs dfs -ls /OutputDataTest

会看到文件夹中出现了两个文件
在这里插入图片描述
第一个文件告知程序执行状态,这里可以看到程序成功执行,第二个文件中放着此次执行的结果,查看就可以看到这次词频统计的结果,以上就是本次内容。

二、分布式文件系统HDFS

2.1 HDFS简介

HDFS与其他分布式系统的核心差别是高容错性和可以建立在低成本的硬件系统上。HDFS用于管理大量存储在集群上的数据,以冗余形式来降低系统故障时造成的损失,同时支持并行处理,提供高吞吐量。
HDFS的基本特征:
1.高容错性:当一个节点出现故障,可以快速的自动错误检测和恢复。
2.数据容量大:可以支持上百个节点。
3.可拓展性:水平拓展性强,可以根据需要对节点进行删减。
4.高吞吐量:HDFS传输速度快,可以支持高并发。
5.就近计算:客户请求尽可能在数据节点上直接完成,降低网络负担。

2.2 HDFS体系架构

HDFS采用Master/Slave模式,一个HDFS集群包含一个NameNode和多个DataNode,NameNode为主节点,DataNode为从节点,文件被划分为一系列的Block存储在DataNode上,NameNode不存储数据,只负责管理文件系统,下图是HDFS的体系架构:
HDFS体系架构
NameNode的主要工作有:
1.管理命名空间
2.控制客户端对文件的读写
3.执行常见的文件系统操作,如复制,删除等等

2.3 HDfS文件存储机制

HDFS的数据以文件块(Block)的形式存储。Block是最基本的存储单位(注意HDFS与普通文件系统不同的是,在HDFS中如果一个文件小于一个数据块的大小,不会占用整个存储空间)。
HDFS采用多副本方式对数据进行冗余存储,一个数据块的多个副本分布到不同的DataNode上,副本的放置原则是保证并非所有副本放置在同一个机架上。

2.4 HDFS数据读取过程

HDFS数据读取过程
首先,客户端连接到NameNode询问文件的元数据信息,NameNode返回包含该文件各个块信息的列表,然后客户端连接对应的DataNode并行读取数据块,按照顺序进行组装,得到完成文件(为了提高速度会选择就近的DataNode)。

2.5 HDFS数据写入过程

HDFS数据写入过程
HDFS的设计遵循一次写入,多次读取的原则,所有数据只能添加不能更新。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值