1、Hadoop是什么Hadoop是如何运作的Hadoop能做什么大数据时代三架马车目录一份数据存放多个副本,自动重新分配失败的任务。Hadoop是什么Hadoop是如何运作的Hadoop能做什么大数据时代三架马车目录 化大为小化大为小 化繁为简化繁为简开发方式开发方式 实现实现mapmap函数函数 实现实现reducereduce函数函数 方法一方法一写一个小程序遍历整个文件,统计每一个遇到的词的出现次数。写一个小程序遍历整个文件,统计每一个遇到的词的出现次数。 方法二方法二写一个多线程并发遍历整个文件。写一个多线程并发遍历整个文件。多线程并发控制多线程并发控制 方法三方法三将程序放到多台机器上
2、执行。将程序放到多台机器上执行。部署麻烦,需要人工部署麻烦,需要人工copycopy、整合、整合 方法四方法四MapReduceMapReduce。只需实现只需实现MapMap和和ReduceReduce的逻辑,的逻辑,MapReduceMapReduce框架已经帮我们实现了文件分割、同步框架已经帮我们实现了文件分割、同步CopyCopy、合并等工作。、合并等工作。 NameNodeNameNode命名服务器、记录元数据的信息命名服务器、记录元数据的信息 JobTrackerJobTracker负责负责MapReduceMapReduce的的JobJob调度调度 SecondaryNameNo
3、deSecondaryNameNode对对NameNodeNameNode元数据的备份服务元数据的备份服务 DataNodeDataNode数据节点数据节点, ,响应客户端的数据请求响应客户端的数据请求 TaskTrackerTaskTracker负责负责MapReduceMapReduce的任务调度的任务调度集群拓扑结构 HDFS上的最小数据单元为Block。原始文件被分成1个或者多个Block,默认Block大小为6464M,默认存储3 3份Block。 由NameNode决定三份Block分别存放在哪些DataNode上。根据散列算法出第一份数据的存放节点,在同一机架(Rack)中的另一
4、个DataNode保存第二份数据,在不同机架的另一个DataNode保存第三份数据。NameNode记录了数据的所有位置信息。 客户端对数据的存取都是直接与DataNode之间进行数据传输,NameNode向客户端反馈数据的位置信息和数据节点的信息。 Hadoop Hadoop命令与大部分命令与大部分linuxlinux文件操作命令相同或者类似。分为以下几类命令。文件操作命令相同或者类似。分为以下几类命令。n 启动命令启动命令start-all.shstart-all.sh启动整个集群服务启动整个集群服务stop-all.shstop-all.sh停止整个集群服务停止整个集群服务startst
5、art单个服务的启动、停止单个服务的启动、停止n 管理命令管理命令hadoop dfsadmin hadoop dfsadmin 集群管理命令集群管理命令hadoop namenodehadoop namenode命名节点管理命令命名节点管理命令hadoop fsckhadoop fsck文件系统检查命令文件系统检查命令n 文件操作命令文件操作命令hadoop fs lshadoop fs lshadoop fs put localpath hdfspathhadoop fs put localpath hdfspathhadoop fs -get hdfspath localpathhado
6、op fs -get hdfspath localpathn JobJob管理命令管理命令hadoop job listhadoop job listmapreducemapreduce任务列表任务列表hadoop job kill jobidhadoop job kill jobid杀死杀死mapreducemapreduce任务任务Hadoop是什么Hadoop是如何运作的Hadoop能做什么大数据时代三架马车目录 离线海量数据分析离线海量数据分析一次写入,多次读取一次写入,多次读取海量历史数据统计分析海量历史数据统计分析 非结构化数据处理非结构化数据处理日志分析日志分析用户行为分析用户行
7、为分析 分布式并行计算应用分布式并行计算应用复杂算法计算复杂算法计算圆周率圆周率Hadoop是什么Hadoop是如何运作的Hadoop能做什么大数据时代三架马车目录HDFSMapReduceHBasePigHiveZooKeeperZooKeeperETLBI ReportRDBMSThriftThriftHive/Pig 数据仓库工具HBase 列式数据库Hadoop 数据底层Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL
8、语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。数据存储数据存储n TableTable每个表对应HDFS上一个目录。n PartitionPartition对指定列根据列值进行分区,每个区一个目录。n BucketBucket对指定列进行Hash分区,每个区一个目录。n External TableExternal Table对应HDFS一个目录路径,删除表,数据不会删除Hbase (Hadoop DataBase) HBase是一个分布式的、面向列的开源数据库。Hbase依托于Hadoop的HDFS作为最基本存储基础单元。基本服务
9、基本服务n HMaster管理元数据的信息管理HRegionServer的负载均衡n HRegionServer响应用户I/O请求存储格式存储格式n HFileHBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件。n HLogFileHBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File。相关框架相关框架n ZooKeeperZookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来Leader选举,配置信息维护等。n SqoopSqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!