您的位置:首页 > 大数据

Hadoop大数据平台架构与实践--基础篇

2015-09-23 18:48 1341 查看
Hadoop的前世今生

Google发布了3大技术:MapReduce、BigTable、 GFS。
这3大技术带来的革命性变化:
革命性的变化1: 成本降低,能用PC机,就不用大型机和高端存储。
革命性的变化2:软件容错硬件故障视为常态、通过软件保证可靠性
革命性的变化3:简化并行分布式计算,无需控制节点同步和数据交换
虽然这3大技术带来了巨大的革命性变化,但是Google只发表了相关的技术论文,没有开放源代码。
因此一个模仿Google大数据技术的开源实现来了。它就是是Hadoop。

Hadoop的功能与优势

Hadoop是一个开源+分布式存储+分布式计算平台。
Hadoop包括两个核心组成:
HDFS: 分布式文件系统,存储海量的数据
MapReduce: 并行处理框架,实现任务分解和调度
Hadoop 可以用来搭建大型数据仓库,PB级数据的存储、处理、分析统计等业务
Hadoop的优势在于:(1)高扩展(2)低成本(3)成熟的生态圈

Hadoop的生态系统及版本

Hive 只需要写sql语句,hive就会转换成Hadoop任务去执行,降低使用Hadoop的门槛
Habse 放弃事务特性,追求更高的扩展 。habse提供数据的随机读写和实时访问,实现对表数据的读写功能
zookeeper 监控Hadoop集群中每个节点的状态,管理集群的配置,维护节点等

Hadoop的安装

Step1 :准备Linux环境
租用云主机,阿里云,UnitedStack等
Step2 :安装JDK
我使用的是阿里云,安装jdk方法参考http://blog.csdn.net/ch717828/article/details/48395245
Step3 :配置Hadoop
参考 /article/7779452.html

HDFS中的基本概念

块(Block):HDFS的文件被分成块进行存储,HDFS块的默认大小是64MB。块是文件存储处理的逻辑单元
NameNode:NameNode是管理节点,存放文件元数据
(1)文件与数据块的映射表
(2)数据块与数据节点的映射表
DataNode:DataNode是HDFS的工作节点,存放数据块
HDFS体系结构



HDFS的数据管理与容错

(1)每个数据块3个副本,分布在两个机架内的三个节点
(2)DataNode定期向NameNode发送心跳消息
(3)二级NameNode定期同步元数据映像文件和修改日志。NameNode发生故障时,备胎转正

HDFS读取文件的流程





HDFS 特点

(1)数据冗余,硬件容错
(2)流式的数据访问
(3)适合存储大文件
(4)适合数据批量读写,吞吐量高
(5)适合一次写入多次读取,顺序读写。不支持多用户并发写相同文件

HDFS命令操作演示

hadoop fs -ls /



MapReduce原理

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

MapReduce运行流程

Job & Task:一个Job可以分成多个map task和 reduce task
JobTracker:作业调度、分配任务、监控任务执行进度、监控TaskTracker的状态
TaskTracker:执行任务、汇报任务状态







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







代码:….

在云服务器上,执行代码

编译
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

创建输入和输出文件
cd ..
mkdir input
vim file1
内容为
hello world
hello hadoop
hadoop file system
hadoop java api
hello java
vim file2
内容为
new file
hadoop file
hadoop new world
hadoop free home
hadoop free school

将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 //打开文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: