Hadoop初识
目标:
建立大数据和分布式的宏观概念
理解Hadoop是什么,用于做什么,怎么用
理解hive是什么,用于做什么,怎么用
了解数据挖掘的基本流程和结构
1、Hadoop是apache旗下的一套开源软件平台。
提供的功能:利用服务器集群,根据用户的自定义的业务逻辑,对海量数据进行分布式处理。
核心组件:A.HDFS--分布式文件系统 B.YARN--运算资源调度系统 C.MAPREDUCE--分布式运算编程框架。
其他组件:A.Hive--基于大数据技术(文件系统+运算框架)的SQL数据仓库工具,使用方便,功能丰富,基于MR延迟大;
B.Hbase--分布式海量数据库,离线分析业务与在线业务通吃
C.Zookeeper--分布式协调服务基础组件
D.Sqoop--数据导入导出工具
E.Flume--日志数据采集框架
F.Ooize--工作流调度框架
G.Mahout--基于Mapreduce/spark/flink等分布式运算框架的机器学习算法库
应用:数据服务基础平台建设;用户画像;日志数据挖掘
需具备技能:A.HADOOP分布式集群的平台搭建;
B.HADOOP分布式文件系统HDFS的原理理解及使用;
C.HADOOP分布式文件框架MAPREDUCE的原理理解及编程;
D.Hive数据仓库工具的熟练应用;
E.Flume、sqoop、oozie等辅助工具的熟练使用;
F.Shell/python等脚本语言的开发能力
2、云计算是分布式计算、并行计算、网格计算、多核计算、网格存储、虚拟化、负载均衡等传统计算机技术和互联网技术融合发展的产物。给终端用户提供强大的计算能力。
底层支撑技术:虚拟化与大数据技术
3、分布式系统理解
分布式软件系统:该软件系统会划分成多个子系统或模块,各自运行在不同的机器上,子系统或模块之间通过网络通信进行协作,实现最终的整体功能。
实现由主节点将运算任务发往从节点,并将各节点上的任务启动。
举例:solrcloud 特征:A.一个solrcloud集群通常有多台solr服务器 B.每个solr服务器节点负责存储整个索引库的若干个shard(数据分片);C.每个shard又有多台服务器节点存 放若干个副本互为主备用;D.索引的建立和查询会在整个集群的各个节点上并发执行;E.solrcloud集群作为整体对外服务,内部细节可对客户端透明。
4、离线数据分析流程:
案例:网站或APP点击流日志数据挖掘系统
数据来源:用户的数据点击行为记录。在页面预埋一段js程序,为页面上想要监听的标签绑定事件,只要用户点击或移动标签,即可触发ajax请求到后台servlet程序,用log4j记录下事件信息,从而在web服务器(nginx、tomcat等)上形成不断增长的日志文件。
流程:
1) 数据采集:定制开发采集程序,或使用开源框架Flume
2)数据预处理:定制开发Mapreduce程序运行于hadoop集群
3)数据仓库技术:hive
4)数据导出:sqoop
5)数据可视化:定制开发web程序或使用kettle等产品
6)整个过程的流程调度:oozie或其他开源产品
架构图:
5、YARN概念
YARN是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序。
A.yarn并不清楚用户提交的程序的运行机制
B.yarn只提供运算资源的调度(用户程序向yarn申请资源,yarn就负责分配资源)
C.yarn中的主管角色叫ResourceManager
D.yarn中具体提供运算资源的角色叫NodeManager
E.yarn与运行的用户程序完全解耦,这意味着yarn上可以运行各种类型的分布式运算程序,包括mapreduce、storm程序、spark程序,tez等
F.Spark,Strom等运算框架都可以整合在yarn上运行,只要他们各自的框架中有符合yarn规范的资源请求机制即可
G.Yarn提供了一个通用的资源调度平台,从此,企业中以前存在的各种运算集群都可以整合在一个物理集群上,提高资源利用率,方便数据共享。