Hadoop入门
(本文档由就业部丁老师提供)
一、HADOOP生态圈以及各组成部分的简介各组件简介
重点组件: HDFS:分布式文件系统 MAPREDUCE:分布式运算程序开发框架 HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具 HBASE:基于HADOOP的分布式海量数据库 ZOOKEEPER:分布式协调服务基础组件 Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库 Oozie:工作流调度框架 Sqoop:数据导入导出工具 Flume:日志数据采集框架 二、分布式系统概述注:由于大数据技术领域的各类技术框架基本上都是分布式系统,因此,理解hadoop、storm、spark等技术框架,都需要具备基本的分布式系统概念 2.1 分布式软件系统(Distributed Software Systems)² 该软件系统会划分成多个子系统或模块,各自运行在不同的机器上,子系统或模块之间通过网络通信进行协作,实现最终的整体功能 ² 比如分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。 2.2 分布式软件系统举例:solrcloud A. 一个solrcloud集群通常有多台solr服务器
B. 每一个solr服务器节点负责存储整个索引库的若干个shard(数据分片)
C. 每一个shard又有多台服务器存放若干个副本互为主备用
D. 索引的建立和查询会在整个集群的各个节点上并发执行
E. solrcloud集群作为整体对外服务,而其内部细节可对客户端透明 总结:利用多个节点共同协作完成一项或多项具体业务功能的系统就是分布式系统。 2.3 分布式应用系统模拟开发需求:可以实现由主节点将运算任务发往从节点,并将各从节点上的任务启动; 程序清单: AppMaster AppSlave/APPSlaveThread Task 程序运行逻辑流程: 三、离线数据分析流程介绍注:本环节主要感受数据分析系统的宏观概念及处理流程,初步理解hadoop等框架在其中的应用环节,不用过于关注代码细节 一个应用广泛的数据分析系统:“web日志数据挖掘” 3.1 需求分析3.1.1 案例名称“网站或APP点击流日志数据挖掘系统”。 3.1.2 案例需求描述“Web点击流日志”包含着网站运营很重要的信息,通过日志分析,我们可以知道网站的访问量,哪个网页访问人数最多,哪个网页最有价值,广告转化率、访客的来源信息,访客的终端信息等。 3.1.3 数据来源本案例的数据主要由用户的点击行为记录 获取方式:在页面预埋一段js程序,为页面上想要监听的标签绑定事件,只要用户点击或移动到标签,即可触发ajax请求到后台servlet程序,用log4j记录下事件信息,从而在web服务器(nginx、tomcat等)上形成不断增长的日志文件。 形如: 58.215.204.118 - - [18/Sep/2013:06:51:35 +0000] "GET /wp-includes/js/jquery/jquery.js?ver=1.10.2 HTTP/1.1" 304 0 "http://blog.fens.me/nodejs-socketio-chat/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0" |
|