Hadoop基础知识

HDFS中的基本概念

块(Block):HDFS的文件被分成块进行存储,HDFS块的默认大小是64MB。块是文件存储处理的逻辑单元

NameNode:NameNode是管理节点,存放文件元数据

(1)文件与数据块的映射表

(2)数据块与数据节点的映射表

DataNode:DataNode是HDFS的工作节点,存放数据块

HDFS体系结构

Hadoop基础知识

HDFS的数据管理与容错

(1)每个数据块3个副本,分布在两个机架内的三个节点

(2)DataNode定期向NameNode发送心跳消息

(3)二级NameNode定期同步元数据映像文件和修改日志。NameNode发生故障时,备胎转正

HDFS读取文件的流程:

Hadoop基础知识

Hadoop基础知识

HDFS 特点

(1)数据冗余,硬件容错

(2)流式的数据访问(一次写入多次读取)

(3)适合存储大文件

(4)适合数据批量读写,吞吐量高

(5)适合一次写入多次读取,顺序读写。不支持多用户并发写相同文件

HDFS命令操作演示

hadoop fs -ls /

haddoop fs -rm hadoop-env.sh

hadoop fs -mkdir input

hadoop fs -put hadoop-env.sh input/

hadoop fs -cat input/hadoop-env.sh

hadoop fs -get input/hadoop-env.sh hadoop-env2.sh

MapReduce原理

分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)

MapReduce运行流程

Job & Task:一个Job可以分成多个map task和 reduce task

JobTracker:作业调度、分配任务、监控任务执行进度、监控TaskTracker的状态

TaskTracker:执行任务、汇报任务状态

Hadoop基础知识

Hadoop基础知识

Hadoop基础知识

MapReduce应用案例--WordCount单词计数

计算文件中出现的每个单词的频数,输入结果按照字母的顺序排序

Hadoop基础知识

Hadoop基础知识

Hadoop基础知识

首先编写好代码(编写WordCount.java,里面包含Mapper类和Reducer类)

编译

javac -classpath /usr/hadoop/hadoop-1.2.1/hadoop-core-1.2.1.jar:/usr/hadoop/hadoop-1.2.1/commmons-cli-1.2.jar -d word_count_class/ WordCount.java

打包

cd word_count_class

jar -cvf wordcount.jar *.class

创建输入和输出文件file1和file2

将filhe1 和 file2提交至 hdfs中去

cd ......

hadoop fs -mkdir input_wordcount //hdfs中创建文件夹

hadoop fs -put input/* input_wordcount/ //将file1 和 file2提交至 hdfs中去

可以通过 hadoop fs -ls 命令查看 input_wordcount文件夹的位置

提交

hadoop jar word_count_class/wordcount.jar WordCount input_wordcount output_wordcount

查看结果

hadoop fs -ls output_wordcount //查看结果文件所在位置

hadoop fs -cat output_wordcount/part-r-00000 //打开文件


分享到:


相關文章: