1 初识Hadoop
Hadoop两个核心组件:HDFS和MapReduce
HDFS:分布式文件系统,存储海量数据
MapReduce:并行处理矿建,实现任务分解和调度
Hadoop能够做什么?处理PB级别的数据处理、分析、统计、查询。
有点,高扩展,低成本,成熟的生态。
Hadoop大数据首选,人才缺口大:hadoop编程人员,hadoop运维人员
2 安装hadoop(主要介绍java和hadoop安装)
java和hadoop伪分布式安装文档参考:https://blog.csdn.net/sa726663676/article/details/113046277
3 HDFS(分布式文件存储)
hdfs设计架构:块(block) namenode datanode
块:所有文件存储的时候都切成相同大小的块,hdfs默认块大小是64M,块是文件存储的基本单元。
namenode:是管理节点,存放元数据(1)文件与数据块的映射表(2)数据块与数据节点的映射表
datanode:是hdfs的工作节点,是存放真正的数据块数据。
hdfs的特点:1数据冗余,硬件容错,2流式数据访问(存储数据不能被修改)3 适合储存大文件(因为namenode存储元数据也需要占空间)
适用性和局限性:适合批量读写,吞吐量高,不适合交互式应用,低延迟难满足。
适合一次写入多次读取,顺序读写。不支持多用户并发写相同文件。
hadoop fs -mkdir input #建立一个input文件夹存储hadoop文件
4 Mapreduce(分布式计算框架)
将一个大任务分成很多个小任务(map),并行执行后,合并结果(reduce)
基本概念
MapReduce的容错机制。
(1)重复执行。当程序出错时,程序首先会重复执行4次,如果4次都错了就放弃执行。
(2)推测执行。有一个节点执行慢的话会找其他节点执行相同任务,第一个执行完成的通知其它节点停止执行。
5 Hadoop应用程序编程(java api编程)
WordCount单词计数(Hadoop入门程序)
以下是通过java程序控制hadoop api编写程序,具体流程有以下4个步骤
1.编写WordCount.java:包含Mapper类和Reducer类
2.编译WordCount.java javac -classpath
3 打包jar -cvf WordCount.jar classes/*
4作业提交到hadoop运行:hadoop jar WourCount.jar WordCount input output
程序如下:
视频:https://www.imooc.com/video/8086
6 总结
7 hadoop高级进阶
以上参考学习视频:https://www.imooc.com/video/7645