《大数据平台介绍》由会员分享,可在线阅读,更多相关《大数据平台介绍(43页珍藏版)》请在金锄头文库上搜索。
1、大数据平台介绍,大数据 二零一五年七月,2,目录,Hadoop大数据生态圈介绍,大数据应用介绍,3,Cloudera Manager介绍,Hadoop大数据生态圈,Hadoop生态圈,Hadoop简介,Hadoop一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储 。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。,Hadoop能解决哪些
2、问题,海量数据需要及时分析和处理。 海量数据需要深入分析和挖掘。 数据需要长期保存 问题: 磁盘IO成为一种瓶颈,而非CPU资源。 网络带宽是一种稀缺资源 硬件故障成为影响稳定的一大因素,HDFS适应条件,HDFS:为以流式数据访问模式存储超大文件而设计的文件系统。 流式数据访问 指的是几百MB,几百GB,几百TB,甚至几百PB 流式数据访问 HDFS建立的思想是:一次写入、多次读取模式是最高 效的。 商用硬件 hadoop不需要运行在昂贵并且高可靠的硬件上。,HDFS不适应条件,低延迟数据访问 HDFS是为了达到高数据吞吐量而优化的,这是以延迟为代价的,对于低延迟访问,可以用Hbase(ha
3、doop的子项目)。 大量的小文件 多用户写入,任意修改,HDFS基本单元,Block(块):HDFS基本储存单元,是个逻辑单元。一个文件有可能包含多个块,一个块有可以包含多个文件,由文件的大小和块大小的参数决定。dfs.block.size参数。Hdfs中Block的大小,默认64MB,如果设置大,就会有可能导致Map运行慢,设置小,有可能导致Map个数多,所有一定要设置适当。(目前主流机器建议设置为128M) 设置一个Block 64MB,如果上传文件小于该值,仍然会占用一个Block的命名空间(NameNode metadata),但是物理存储上不会占用64MB的空间 Block大小和副
4、本数由Client端上传文件到HDFS时设置,其中副本数可以变更,Block是不可以再上传后变更的,HDFS处理机制,Client:切分文件;访问HDFS;与NameNode交互,获取文件位置信息;与DataNode交互,读取和写入数据。 NameNode:Master节点,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户端请求。 DataNode:Slave节点,存储实际的数据,汇报存储信息给NameNode。 Secondary NameNode:辅助NameNode,分担其工作量;定期合并fsimage和fsedits,推送给NameNode;紧急情况下,可辅助恢复Name
5、Node,但Secondary NameNode并非NameNode的热备,HDFS文件读取,MapReduce简介,简介 MapReduce 是一个高性能的批处理分布式计算框架,用于对海量数据进行并行分析和处理。 MapReduce 将分析任务分为大量的并行 Map 任务和 Reduce 任务两类。 与传统数据仓库和分析技术相比,MapReduce 适合处理各种类型的数据,包括结构化、半结构化和非结构化数据。 结构化、半结构化、非结构化数据 结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据) 不方便用数据库二维逻辑表来表现的数据即称为非结构化数据(包括所有格式的办公
6、文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等) 所谓半结构化数据,就是介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据,HTML文档就属于半结构化数据。它一般是自描述的,数据的结构和内容混在一起,没有明显的区分。,MapReduce简介,适合处理的任务 适用于离线批处理任务 是以“行”为处理单位的,无法回溯已处理过的“行”,故每行都必须是一个独立的语义单元,行与行之间不能有语义上的关联。 相对于传统的关系型数据库管理系统,MapReduce计算模型更适合于处理半结构化或无结构话的数据。 不适合处理的任务 不
7、适合一般web应用 不适合实时响应的任务 不适合小数据集的处理 不适合需要大量临时空间的任务 不适合CPU密集且具有许多交叉调用的任务,MapReduce工作原理,MapReduce执行流程 MapReduce 角色 Client :作业提交发起者。 JobTracker: 初始化作业,分配作业,与TaskTracker通信,协调整个作业。 TaskTracker:保持JobTracker通信,在分配的数据片段上执行MapReduce任务。 任务的分配 TaskTracker和JobTracker之间的通信与任务的分配是通过心跳机制完成的。 TaskTracker会主动向JobTracker询
8、问是否有作业要做,如果自己可以做,那么就会申请到作业任务,这个任务可以使Map也可能是Reduce任务。,MapReduce工作原理,任务的执行 申请到任务后,TaskTracker会做如下事情: 拷贝代码到本地 拷贝任务的信息到本地 启动JVM运行任务 状态与任务的更新 任务在运行过程中,首先会将自己的状态汇报给TaskTracker,然后由TaskTracker汇总告之JobTracker。 作业的完成 JobTracker是在接受到最后一个任务运行完成后,才会将任务标志为成功。 此时会做删除中间结果等善后处理工作。,MapReduce工作原理,Hadoop实例,根据URL的顶级域名进行分
9、类统计 输入、输出格式:文件 源文件格式如下: 统计目标:,Hadoop实例,1. 编写MapReduce函数,客户端作业 Map函数,Hadoop实例,Reduce函数 Job设置,Hadoop实例,编译、打包成jar文件 略 3. 源文件提交到HDFS文件系统 文件从本地提交到HDFS文件系统put命令 查看HDFS文件系统中已提交的文件,Hadoop实例,使用Hadoop命令提交作业 提交作业 查看作业 http:/localhost:50030,Hadoop实例,查看执行结果 查看执行结果生成的文件 查看HDFS文件系统中的结果 HDFS文件拷贝到本地,查看结果,Hive简介,Hive
10、是什么 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询
11、数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。,Hive实例,创建托管表 1. 在Hive命令行执行建表语句 2. 查看元数据库中的表信息、字段信息sds、columns_v2,Hive实例,3. 从本地向net_addr_1表中导入数据 4. 查看导入的数据,Hive实例,根据URL的顶级域名进行分类统计-Hive实现 1. 源数据入表略,使用已生成的net_addr_1 2. 源数据加工转换,生成中间表 INSERT OVERWRITE TABLE net
12、_addr_3 select net_id,regexp_replace(net_url,(.+.), ) from net_addr_1; 3. 根据中间表数据进行统计,Hbase简介,HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。利用HBase技术可
13、在廉价PC Server上搭建起大规模结构化存储集群,Hbase架构,Hbase实例,1、构建Hbase表hbase_test hbase create hbase_test, id01 2、构建hive外表hive_test, 并对应hbase_test表 CREATE EXTERNAL TABLE hive_test (id01 STRING) STORED BY org.apache.hadoop.hive.hbase.HBaseStorageHandler WITH SERDEPROPERTIES (“hbase.columns.mapping“ = “:key,id01“) TBLP
14、ROPERTIES(“hbase.table.name“ = “hbase_test“); 3、数据通过hive_test导入到hbase_test表中 INSERT OVERWRITE TABLE hive_test SELECT id01 FROM hive_date;,Hbase实例,大数据应用介绍,用户上网行为分析系统,用户行为分析系统数据处理流程图,唯品会日志处理框架简介,唯品会日志处理框架简介,全国重点车辆联网联控平台,Cloudera Manager介绍,Cloudera Manager介绍,CDH (Clouderas Distribution, including Apach
15、e Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。 Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Hbase、Spark等服务的安装配置管理做了极大简化。 Cloudera Manager有四大功能 (1)管理 (2)监控 (3)诊断 (4)集成,Cloudera Manager介绍,Cloudera Flume Flume是Cloudera提供的日志收集系统,Flume支持在日志系
16、统中定制各类数据发送方,用于收集数据; Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。,Cloudera Manager介绍,Cloudera Impala Cloudera Impala对你存储在Apache Hadoop在HDFS,HBase的数据提供直接查询互动的SQL。除了像Hive使用相同的统一存储平台,Impala也使用相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue Beeswax)。Impala还提供了一个熟悉的面向批量或实时查询和统一平台。 Impala不再使用缓慢的Hive+MapReduce批处理,而是通过与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成