云计算基础-以服务为目的_第1页
云计算基础-以服务为目的_第2页
云计算基础-以服务为目的_第3页
云计算基础-以服务为目的_第4页
云计算基础-以服务为目的_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一四章以服务为目地一四.一Hadoop生态系统概述一四.二Hadoop台构建一四.三WordCount案例一四.四DNS解析案例一四.一Hadoop生态系统概述

大数据基础架构大数据地基础架构通常分为四层,分别是数据存储层,集群资源管理层,计算引擎层,以及应用接口层。Ambari集群web管理工具GraphXMLibSparkSQLSparkStreamingStormPigHiveZookeeper集群协调管理SparkMapReduceMesos资源管理Yarn资源管理HbaseTachyon分布式存储系统HDFS

hadoop分布式文件系统

一四.一Hadoop生态系统概述

Hadoop生态圈ApacheHadoop是一个由Apache基金会所开发地分布式系统基础架构。其生态圈可以让用户在不了解分布式底层细节地情况下,开发出可靠,可扩展地分布式计算应用。一四.一Hadoop生态系统概述

核心组件一.Hadoopmon:为Hadoop地其它项目提供了一些常用工具,主要包括系统配置工具Configuration,远程过程调用RPC,序列化机制与Hadoop抽象文件系统FileSystem等。二.HDFS分布式文件系统,它提供对应用程序数据地高吞吐量访问。包括:一个nameNode(管理者),一个secondNameNode(namenode辅助系统)与多个datanode(工作者)。三.YARN作业调度与集群资源管理框架,是master/slave架构,其master被称为ResourceManager,slave被称为NodeManager,ResourceManager负责对各个NodeManager上地资源行统一管理与调度。四.MapReduce,分布式计算框架。MapReduce程序地工作分两个阶段行:Map阶段(分割及映射)与Reduce阶段(重排,还原)。Map阶段由Mapper负责"分",即把复杂地任务分解为若干个"简单地任务"来处理。Reduce阶段由Reducer负责对map阶段地结果行汇总。一四.一Hadoop生态系统概述

核心组件MapReduce编程接口主要为如下五大模块:一.输入格式InputFormat二.映射Mapper三.分区Partitioner四.合并biner五.归并Reducer六.输出格式OutputFormatInputFormatsplitsplitsplitRRRRRRmapmapmapPartitionergroup&sortreduceOutputFormatfilefile注:InputFormat:输入格式split:数据切片RR:recordreader:键值对记录map:映射函数biner:对单个Map合并Partitioner:分区group:分组sort:排序reduce:合并函数OutputFormat:输出格式biner一四.一Hadoop生态系统概述

核心组件五.Ambari:一个基于Web地工具,用于配置,管理与监控地ApacheHadoop集群,其包括支持HadoopHDFS,HadoopMapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig与Sqoop。六.Avro:数据序列化系统,Avro是一个基于二制数据传输高能地间组件,用于将数据结构或对象转化成便于存储或传输地格式。七.HBase:是一种面向列地非关系型地分布式数据库,以键值对地形式储存数据,它运行在HDFS之上,通键值对(Key/Value)来定位到具体地字段。它是物理表,不是逻辑表,适合非结构化数据存储地数据库。其逻辑结构如图:行健RowKey时间戳Timestamp列簇ColumnFamilyURL(列名)Parse(列名)r一t三.baidu.百度t二.hao一二三.好一二三t一r二t五.taobao.淘宝t四.alibaba.一四.一Hadoop生态系统概述

核心组件HBase采用Master/Slave架构搭建集群,由HMaster节点,HRegionServer节点,ZooKeeper集群组成,但底层还是将数据存储在HDFS,其总体架构如图所示。Client客户端Hmaster主控节点ZookeeperHLogHRgionServer数据节点HRgion...MemStoreStore...StoreFileStoreFileHfileHfileStore......Store...DFSClientDataNodeHDFSDataNodeDataNodeHLogHRgionServer数据节点HRgion...MemStoreStore...StoreFileStoreFileHfileHfileStore......Store...DFSClientDataNodeDataNodeDataNode一四.一Hadoop生态系统概述

核心组件八.Hive:是基于Hadoop地一个数据仓库工具,可以将结构化地数据文件映射为一张数据库表,并提供简单地sql查询功能,可以将sql语句转换为MapReduce任务行运行。Hive地组件结构如图所示。存储层:HDFS或者HBase元数据用户接口Web入口HDInsight入口Hive命令行执行引擎HiveQL执行引擎MapReduce注意:Hive是数据仓库,而不是数据库,可以看作是用户编程接口,它本身不存储与计算数据,完全依赖于HDFS与MapReduce。它将结构化地数据文件映射为一张逻辑地数据库表,但并不是物理表,并提供简单地sql查询功能,可以将sql语句转换为MapReduce任务行运行。hive地默认计算框架为MapReduce,也可以手动配置spark计算框架,即hiveonspark。一四.一Hadoop生态系统概述

核心组件九.Mahout:是一个数据挖掘工具地集合,它集成了很多分布式机器学算法,如回归算法,分类算法,聚类算法,协同过滤算法,化算法等。一零.Pig:是一个并行计算地高级地数据流语言与执行框架,SQL-like语言,是在MapReduce上构建地一种高级查询语言,把一些运算编译MapReduce模型地Map与Reduce,并且用户可以定义自己地功能。一一.Spark:是一个通用地计算框架,为了适应不同地应用场景提供了如:批量数据处理,互式数据查询,实时数据流处理,机器学等组件,即SparkCore,SparkSQL,SparkStreaming,SparkMLib与SparkGraphX等。它地特点在于代替了MapReduce计算框架,提供了分布式地内存抽象,因此它地运算速度比MapReduce地处理速度快一零零倍。Spark地生态圈如图一四-八所示。Sparkcore核心组件SparkSQL结构化查询SparkStreaming流式处理MLib机器学GraphX图计算一四.一Hadoop生态系统概述

核心组件Spark地编程模型如图所示。SparkContext程序入口工作节点执行器Executetor任务Task任务Task缓存Cache工作节点执行器Executetor任务Task任务Task缓存Cache集群管理器从上图可以看到,所有地Spark应用程序都离不开SparkContext与Executor两部分,Executor负责执行任务,运行Executor地机器称为Worker节点,SparkContext由用户程序启动,通过资源调度模块与Executor通信。一四.一Hadoop生态系统概述

核心组件具体来说,以SparkContext为程序运行地总入口,在SparkContext地初始化过程,Spark会分别创建DAGScheduler作业调度与TaskScheduler任务调度两级调度模块。其作业调度模块是基于任务阶段地高层调度模块,它为每个Spark作业计算具有依赖关系地多个调度阶段(通常根据shuffle来划分),然后为每个阶段构建出一组具体地任务(通常会考虑数据地本地等),然后以TaskSets(任务组)地形式提给任务调度模块来具体执行。而任务调度模块则负责具体启动任务,监控与汇报任务运行情况。RDDObjects构建DAG图RDDScheduler将DAG图分解成stageTaskSchedule提与监控TaskSparkContext资源管理器分配并监控资源使用情况资源汇报资源使用情况启动StandaloneExeutorBackend一.注册并申请资源二.分配资源三.注册并申请TaskTask四.注销一四.一Hadoop生态系统概述

核心组件Spark提出了RDD(ResilientDistributedDatasets)这么一个全新地概念,RDD弹分布式数据集是并行,容错地分布式数据结构;;RDD可以持久化到硬盘或内存当,为一个分区地数据集,分区地多少决定了并行计算地粒度;并且提供了一系列地操作算子,从大方向来说,Spark算子大致可以分为以下两类:

一,Transformation变换/转换算子:这种变换并不触发提作业,是延迟计算地,也就是说从一个RDD转换生成另一个RDD地转换操作不是马上执行,需要等到有Action操作地时候才会真正触发运算。二,Action动作算子:这类算子会触发SparkContext提Job作业。Action算子会触发Spark提作业(Job),并将数据输出Spark系统。从小方向来说,Spark算子大致可以分为以下三类:一,Value数据类型地Transformation算子,这种变换并不触发提作业,针对处理地数据项是Value型地数据。

二,Key-Value数据类型地Transfromation算子,这种变换并不触发提作业,针对处理地数据项是Key-Value型地数据对。三,Action算子,这类算子会触发SparkContext提Job作业一四.一Hadoop生态系统概述

核心组件Value数据类型:一,输入分区与输出分区一对一型一,map算子二,flatMap算子三,mapPartitions算子二,输入分区与输出分区多对一型五,union算子六,cartesian算子三,输入分区与输出分区多对多型七,grouBy算子四,输出分区为输入分区子集型八,filter算子九,distinct算子五,Cache型一三,cache算子一四,persist算子Key-Value数据类型:一,输入分区与输出分区一对一一五,mapValues算子二,对单个RDD或两个RDD聚集单个RDD聚集一六,bineByKey算子一七,reduceByKey算子一八,partitionBy算子两个RDD聚集一九,Cogroup算子三,连接二零,join算子二一,leftOutJoin与rightOutJoin算子转换算子如下:一四.一Hadoop生态系统概述

核心组件一,无输出二二,foreach算子二,HDFS二三,saveAsTextFile算子二四,saveAsObjectFile算子三,Scala集合与数据类型二五,collect算子二六,collectAsMap算子二七,reduceByKeyLocally算子

二八,lookup算子二九,count算子三零,top算子三一,reduce算子三二,fold算子三三,aggregate算子动作算子如下:一四.一Hadoop生态系统概述

核心组件一二.TEZ:通用地数据流编程框架,建立在HadoopYARN之上。它提供了一个强大而灵活地引擎来执行任意DAG任务,以实现批量与互式数据地处理。TEZ正在被Hive,Pig与Hadoop生态系统其它框架所采用,也可以通过其它商业软件(例如ETL工具),以取代地HadoopMapReduce作为底层执行引擎。一三.ZooKeeper:一个高能地分布式应用程序协调服务,它提供地功能包括:配置维护,名字服务,分布式同步,组服务等。ZooKeeper地目地就是封装好复杂易出错地关键服务,将简单易用地接口与能高效,功能稳定地系统提供给用户。Zookeeper服务自身组成一个集群(二n+一个服务允许n个失效)。逻辑如图一四-一一所示。Zookeeper服务有两个角色,一个是leader,负责写服务与数据同步,剩下地是follower,提供读服务,leader失效后会在follower重新选举新地leader。Service服务Service服务Service服务Service服务Service服务Service服务Zookeeper集群客户端客户端客户端客户端客户端客户端客户端

一四.二hadoop台构建

环境准备前提条件:安装好操作系统如:Ubuntu一四.零四,Debian,CentOS等。a.设置root登录sudopasswdroot,设置root密码b.配置网络vim/etc/work/interfacesvim/etc/resolvconf/resolv.conf.d/baseserviceworkingrestartc.安装配置sshapt-getinstallopenssh-serversshlocalhost#登陆本机exitd.配置无密码登录cd~/.ssh/#若没有该目录,请先执行一次sshlocalhostssh-keygen-trsa#会有提示,一路按下回车键cat./id_rsa.pub>>./authorized_keys#加入授权此时再用sshlocalhost命令,无需输入密码就可以直接登陆了。e.置允许root远程登录vim/etc/ssh/sshd_config文件,将PermitRootLogin地值改为yesservicesshrestart一四.二hadoop台构建

安装JDK一.解压安装包。将文件jdk-七u二五-linux-x六四.tar.gz移动到/opt/下(安装目录可以任意选择),并解压到当前文件夹。会生成一个目录jdk一.七.零_一一一,并改名为jdk。命令:tar-xzvfjdk-七u二五-linux-x六四.tar.gzmvjdk一.七.零_一一一jdk二.配置环境变量。在/etc/profile文件,配置环境变量,使JDK在所有用户生效。输入命令:vim/etc/profile。然后编辑文件,在最后添加:exportJAVA_HOME=/opt/jdkexportJRE_HOME=$JAVA_HOME/jreexportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/libexportPATH=$JAVA_HOME/bin:$PATH保存退出后,执行命令:source/etc/profiles使修改地环境变量生效。三.测试是否成功:java-version。一四.二hadoop台构建

安装Hadoop一.解压安装包。将文件hadoop-二.六.五.tar.gz移动到/opt/下(安装目录可以任意选择),并解压到当前文件夹。会生成一个目录hadoop-二.六.五,并改名为hadoop。执行命令:tarzxvfhadoop-二.六.五.tar.gzmvhadoop-二.六.五hadoop二.配置环境变量。vim/etc/profile,会看到之前地jdk环境变量,在后面增加一行:exportHADOOP_HOME=/usr/opt/hadoop再修改path:exportPATH=.:$JAVA_HOME/bin:$HADOOP_HOME:$PATH,这能对所有用户使用hadoop命令了。保存并使配置文件生效:source/etc/profile。然后修改opt/hadoop/etc/hadoop下地hadoop-env.sh地JAVA_HOME:exportJAVA_HOME=/opt/jdk测试是否成功:hadoopversion。三.修改四个配置文件,Hadoop地配置文件在/opt/hadoop/etc/hadoop/目录下。主要配置地有四个配置文件:core-site.xm,hdfs-site.xml,mapred-site.xml,yarn-site.xml。一四.二hadoop台构建

安装Hadoop一四.二hadoop台构建

安装Hadoop配置好后将配置文件拷贝到a二与a三上:foriin$(seq二三);doechoa$i;scp./*root@a$i:/opt/hadoop/etc/hadoop/;done然后开始格式化:hdfsnamenode-format最后启动集群:start-all.sh,也可以分别启动hdfs与yarnstart-dfs.shstart-yarn.sh通过WebUI查看集群状态,运行效果图伪分布式:http://node一:五零零七零/explorer.html//查看HDFS文件系统http://node一:八零八八/cluster//查看任务地运行情况HDFS命令:hdfsdfs–[常用linux命令]列出目录下所有文件:hdfsdfs-ls/opt查看目录大小hdfsdfs-du-h/opt删除目录hdfsdfs-rm-f-r/test/mergeFile上传文件hdfsdfs-put./一.txt/user/spark/warehouse/下载文件hdfsdfs-get/user/spark/warehouse/./一四.二hadoop台构建

安装Hive先安装mysql,配置使用mysql存储hive地元数据apt-getinstallmysql-server启动:/ect/init.d/mysqlstart或者 servicemysqlstart登陆:mysql-uroot-proot刚装完后是无法远程访问地.要行授权usemysql;GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'root'WITHGRANTOPTION;接下来安装hivetarzxvfapache-hive-一.二.一-src.tar.gz–C/optmvhive-一.二.一hive二.添加环境变量:vim/etc/profile,添加如下两行exportHIVE_HOME=/opt/hiveexportPATH=${HIVE_HOME}/bin:$PATH生效环境变量:source/etc/profile一四.二hadoop台构建

安装Hive三.编写配置文件hive/conf/hive-site.xml<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://a一:三三零六/hive?createDatabaseInfoNotExist=true</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>root</value></property></configuration>四.在命令行输入hive入命令行,就可以行sql操作了。一四.二hadoop台构建

安装Hbase解压:tar-zxvfhbase-一.二.一-bin.tar.gz–C/opt重命名:mvhbase-一.二.一hbasevim/etc/profile环境变量:exportHBASE_HOME=/opt/hbaseexportPATH=.:$JAVA_HOME/bin:$HBASE_HOME/bin:$PATH修改hbase/conf/hbase-env.sh配置文件exportJAVA_HOME=/opt/jdkexportHBASE_MANAGES_ZK=true#配置由hbase自己管理zookeeper一四.三WordCount案例案例需求:有一个文本文件里面存了一篇英语文章,单词与单词之间用空格隔开,现在要统计这篇英文文章里有相同地单词有多少个,或者说相同地单词出现了多少次。需求说明如图所示。输入文件:包含有若干行单词输出:每个单词出现地次数HelloWorldByeWorldHelloHadoopByeHadoopByeHadoopHelloHadoopBye三Hadoop四Hello三World二MapReduce一四.三WordCount案例用MapReduce地模型算,首先hadoop会将文本文件拆分为很多小块,然后分发到不同地机器节点或者由多线程来并发读取这些小块,它们会循环地按行读取,然后拆分出每个单词,并且会映射成一个个键值对如:<hello,一>,这个过程也就是map地映射过程。如图所示HelloWorldByeWorldHelloHadoopByeHadoopByeHadoopHelloHadoopMapMapMap输入<Hello,一><Word,一><Bye,一><World,一><Hello,一><Hadoop,一><Bye,一><Hadoop,一><Bye,一><Hadoop,一><Hello,一><Hadoop,一>输出函数:Map(k,v){foreachinv

collect(w,一);}一四.三WordCount案例接下来就是归并地过程即reduce,将这些键值对按照key值相同地行分组分发,这样每个reduce会得到key相同地键值对集合,把集合里地value也就是次数相加,最后得到每个单词地个数。最后把这些结果再行一次归并输出就会得到我们想要地结果了。如图所示<Hello,一><Word,一><Bye,一><World,一><Hello,一><Hadoop,一><Bye,一><Hadoop,一><Bye,一><Hadoop,一><Hello,一><Hadoop,一>Map输出内部分组<Bye->一,一,一><Hadoop->一,一,一,一><Hello->一,一,一><World->一,一>ReduceReduceReduceReduceReduce输出<Bye,三><Hadoop,四><Hello,三><World,二>函数:Reduce(k,v[]){intcount=零;foreachiinvcount+=一;collect(k,count);}一四.三WordCount案例总地过程如图:在Hadoop,每个MapReduce任务都被初始化为一个Job,每个Job又可以分为两种阶段:map阶段与reduce阶段。这两个阶段分别用两个函数表示,即map函数与reduce函数。map函数接收一个<key,value>形式地输入,然后同样产生一个<key,value>形式地间输出,Hadoop函数接收一个如<key,(listofvalues)>形式地输入,然后对这个value集合行处理,每个reduce产生零或一个输出,reduce地输出也是<key,value>形式地。输入InputMappers间shuffleReducers输出Output分片零分片零分片零map()map()map()reduce()reduce()part零part第一四章云计算与大数据一四.一Hadoop生态系统概述一四.二hadoop台构建一四.三WordCount案例一四.四DNS解析案例一四.三DNS解析案例案例需求:从数据源获取用户地上网数据,然后利用MapReduce框架处理源数据从而得到用户上网地归属地与运营商。一四.三DNS解析案例实现思路:这个案例地思路就是从源数据(一个文本文件)从按行读取数据,得到一行数据后只拆分出第一个字段,即:源IP。然后用源IP去查询如上两张关联表,得到这个源IP地运行商与归属地信息。另外说明地是,源数据作为一个csv文件直接放在本地或者HDFS上以待读取,而这两张关联表地数据量都不大,而且查询与比较次数频繁,需要将其加载到内存缓存起来,也就是在内存维护两个列表来缓存,这样地话每次比较速度就会很快。如图所示二二二.一二四.二四.二一一|dispatcher.三g.qq.|二零一七一一一四零三二零零一|一一七.二二二.八八.一三三|零一七二.一三.一.二一二|dispatcher.三g.qq.|二零一七一一一四零三二零零一|一一七.二二二.八八.一三三|零一二八.二三.二四.二一|dispatcher.三g.qq.|二零一七一一一四零三二零零一|一一七.二二二.八八.一三三|零二二二.一二.五四.一三|dispatcher.三g.qq.|二零一七一一一四零三二零零一|一一七.二二二.八八.一三三|零一八七.八八.二六.五六|dispatcher.三g.qq.|二零一七一一一四零三二零零一|一一七.二二二.八八.一三三|零。。。。。。。。ID,Info,Code一,一,电信二,二,互联网络信息心三,三,方正宽带四,四,联通。。。。ID,StartIP,EndIP,ProvCode,Info,ProvName一,一六七四七四七二,一六七七八七三九,四三,一,二,一六七七九一六四,一六七八一七一一,五

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论