
大数据开发项目实战-Hadoop生态组件基础.pptx
102页单击此处编辑母版标题样式,单击此处编辑母版文本样,Hadoop,生态组件基础,1,Hive,基础,目录,Hadoop,基础,2,Spark,基础,3,Hadoop,是由,Apache,软件基金会开发的一个可靠的、可扩展的、用于分布式计算的分布式系统基础架构和开源软件Hadoop,软件库是一个框架,允许使用简单的编程模型在计算机集群中对大规模数据集进行分布式处理,它的目的是当单一的服务器扩展到成千上万台机器时,将集群部署在多台机器上,每台机器提供本地计算和存储服务,并将存储的数据备份在多个节点上,由此提升集群的可用性,而不是通过机器的硬件提升集群的可用性当一个机器宕机时,其他节点依然可以提供备份数据和计算服务Hadoop,概述,1,Hadoop,的概念,Hadoop,框架核心的设计是,HDFS,和,MapReduce,HDFS,是可扩展的、高容错的、高性能的分布式文件系统,负责数据的分布式存储和备份,文件写入后只能读取不能修改MapReduce,是分布式计算框架,其处理过程包含,Map,(映射)和,Reduce,(规约)两个过程Hadoop,概述,Hadoop,概述,2,Hadoop,的发展历程,高可靠性,高扩展性,高效性,高容错性,低成本,可构建在廉价机器上,Hadoop,框架使用,Java,语言编写,Hadoop,概述,3,Hadoop,的优点,Hadoop,概述,4,Hadoop,的生态系统,HBase,HBase,是一个针对非结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。
HBase,提供了对大规模数据的随机、实时读写访问,同时,,HBase,中保存的数据可以使用,MapReduce,进行处理,,MapReduce,将数据存储和并行计算完美地结合在一起HBase,适用于大数据量(,TB/100s,级数据)且有快速随机访问的需求(如淘宝交易记录),能及时响应用户发出的访问请求;业务场景简单,不需要关系数据库中的很多特性(如交叉、连接);需要扩充数据库结构;等等场景Hadoop,概述,Hive,Hive,是建立在,Hadoop,上的数据仓库基础构架,它提供了一系列的工具,用于存储数据、查询和分析存储在,Hadoop,中的大规模数据Hive,定义了一种类,SQL,的语言,Hive,查询语言(,Hive Query Language,,,HQL,),通过简单的,HQL,可以将数据操作转换为复杂的,MapReduce,运行在,Hadoop,大数据平台上Hive,是一款分析历史数据的利器,但是,Hive,只有在结构化数据的情况下才能大显“神威”Hive,处理有延迟,较为合适的使用场景是大数据集的批处理作业,如网络日志分析Hadoop,概述,Sqoop,Sqoop,是一款开源的工具,主要用于在,Hadoop,(如,Hive,组件)与传统的数据库(如,MySQL,、,PostgreSQL,)之间进行数据的传递,,Sqoop,可以将一个关系数据库中的数据导入,HDFS,,也可以将,HDFS,的数据导出到关系数据库中。
对于结构化数据库,,Sqoop,是合适的,它可以将结构化数据库中的数据并行批量存储至,HDFS,中Hadoop,概述,Flume,Flume,是,Cloudera,提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统,用于日志文件的采集Flume,支持在日志系统中定制各类数据发送方,用于收集数据同时,,Flume,提供对数据进行简单处理,并写到各种数据接收方(可定制)的功能如果数据来源很多、数据流向很多,那么使用,Flume,采集数据是一个很好的选择Hadoop,概述,ZooKeeper,ZooKeeper,可以解决分布式环境下的数据管理问题,如统一命名、状态同步、集群管理、配置同步等ZooKeeper,的使用主要是为了保证集群各项功能的正常进行,在集群出现异常时能够及时通知管理员进行处理,保持数据的一致性,,ZooKeeper,的作用是对整个集群进行监控Hadoop,概述,Mahout,Mahout,的主要目标是创建一些可扩展的机器学习领域经典算法,旨在帮助开发人员更加方便、快捷地创建智能应用程序Mahout,现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁项集挖掘等广泛使用的数据挖掘方法。
除了算法,,Mahout,还包含数据的输入输出工具、与其他存储系统(如数据库、,MongoDB,或,Cassandra,)集成等数据挖掘支持架构Mahout,的主要应用是通过提供机器算法包,使得用户在使用的过程中能够通过调用算法包减少编程时间,同时减少用户复杂的算法程序对资源的消耗(用户的特殊需求除外)Hadoop,概述,Spark,Spark,是一个基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析Spark,能弥补,MapReduce,计算模型延迟过高的缺陷,满足实时、快速计算的需求而且,Spark,的中间数据计算结果可以保存在内存中,大大减少了对,HDFS,进行读写操作的次数,因此,Spark,可以更好地适用于数据挖掘与机器学习中需要迭代的算法大数据应用场景的普遍特点是数据计算量大、效率高,,Spark,计算框架刚好可以满足这些计算要求Hadoop,概述,Hadoop,集群环境可以分为单机版环境、伪分布式环境和完全分布式环境单机版环境是指在一台计算机上运行,Hadoop,,没有分布式文件系统,而是直接读取本地操作系统中的文件;,伪分布式环境可以看作在一台计算机上模拟组建的多节点集群;,而完全分布式环境是在多台计算机上组建的分布式集群。
CDH,是对,Hadoop,集成环境的封装,可以使用,Cloudera Manager,进行自动化安装,支持大多数,Hadoop,组件,简化了大数据平台的安装Hadoop,集群安装与配置,建议个人计算机硬件的配置如下:内存容量至少,8GB,,硬盘可用容量至少,100GB,,,CPU,为,Intel Core i3,以上的处理器Hadoop,相关软件及版本如下表Hadoop,集群安装与配置,软件,版本,安装包,备注,Linux OS,CentOS 6.8,CentOS-6.8-x86_64-bin-DVD1.iso,64,位,JDK,1.7,以上,jdk-7u80-linux-x64.rpm,64,位,VMware,10,vmware-workstation-full-10.0.15255226.zip,Hadoop,2.6.4,hadoop-2.6.4.tar.gz,已编译好的安装包,Eclipse,4.5.1,eclipse-jee-mars-1-win32-x86_64.zip,64,位,Eclipse Hadoop,插件,2.6.0,hadoop-eclipse-plugin-2.6.0,SSH,连接工具,5,Xme5.exe,Hadoop,完全分布式集群是典型的主从架构,一般需要使用多台服务器来组建。
集群拓扑结构图,Hadoop,集群安装与配置,Hadoop,集群节点,IP,地址及配置软件,Hadoop,集群安装与配置,1,搭建,Hadoop,完全分布式集群,节点,IP,地址,语言环境,配置软件,备注,master,192.168.128.130,Java,vim,、,zip,、,openssh-server,、,openssh-clients,主节点,slave1,192.168.128.131,Java,vim,、,zip,、,openssh-server,、,openssh-clients,从节点,slave2,192.168.128.132,Java,vim,、,zip,、,openssh-server,、,openssh-clients,从节点,slave3,192.168.128.133,Java,vim,、,zip,、,openssh-server,、,openssh-clients,从节点,(,1,)修改配置文件,上传,Hadoop,安装包,hadoop-2.6.4.tar.gz,上传至虚拟机,master,的,/opt,目录下;,将,Hadoop,安装包解压到虚拟机,master,的,/usr/local,目录下;,进入,/usr/local/hadoop-2.6.4/etc/hadoop/,目录,并依次修改涉及的配置文件,:,core-site.xml,、,hadoop-env.sh,、,yarn-env.sh,、,mapred-site.xml,、,yarn-site.xml,、,slaves,、,hdfs-site.xml,;,修改,/etc/hosts,文件,配置主机名与,IP,地址的映射。
Hadoop,集群安装与配置,1,搭建,Hadoop,完全分布式集群,(,2,)配置,SSH,协议无密码登录,使用,ssh-keygen,产生公钥与私钥对;,Hadoop,集群安装与配置,1,搭建,Hadoop,完全分布式集群,(,2,)配置,SSH,协议无密码登录,使用,ssh-copy-id,将公钥复制到远程虚拟机中;,验证,SSH,协议是否能够无密钥登录,Hadoop,集群安装与配置,(,3,)复制,Hadoop,安装文件到集群的其他节点中,在,master,节点中安装完,Hadoop,后,通过,scp,命令将,Hadoop,安装文件复制到集群的其他节点中Hadoop,集群安装与配置,1,搭建,Hadoop,完全分布式集群,(,4,)配置时间同步服务,安装,NTP,服务;,设置,master,节点为,NTP,服务主节点,;,修改从节点的,ntp.conf,文件,;,关闭防火墙,;,启动,NTP,服务,Hadoop,集群安装与配置,1,搭建,Hadoop,完全分布式集群,(,5,)启动,/,关闭,Hadoop,集群,配置环境变量,;,格式化,NameNode,;,Hadoop,集群安装与配置,1,搭建,Hadoop,完全分布式集群,(,5,)启动,/,关闭,Hadoop,集群,启动,Hadoop,集群,;,查看节点进程,;,关闭,Hadoop,集群。
Hadoop,集群安装与配置,Hadoop,集群的相关监控服务,修改本地计算机,host,文件,Hadoop,集群安装与配置,2,监控集群,服务,Web,接口,默认端口,NameNode,50070,ResourceManager,8088,MapReduce JobHistoryServer,19888,(,1,),HDFS,监控,Hadoop,集群安装与配置,2,监控集群,(,2,),YARN,监控,Hadoop,集群安装与配置,2,监控集群,(,3,)日志监控,Hadoop,集群安装与配置,2,监控集群,(,1,),HDFS,简介,HDFS,是以分布式方式进行存储的文件系统,主要负责集群数据的存储与读取HDFS,是一个主从(,Master-Slave,)结构的分布式文件系统,,HDFS,支持传统的层次型文件组织结构HDFS,名称空间的层次结构和大多数现有的文件系统类似,可以通过文件路径对文件执行创建、读取、更新和删除操作Hadoop,框架组成,1,HDFS,(,1,),HDFS,简介,HDFS,的基本架构,Hadoop,框架组成,(,2,),HDFS,工作原理,分布式系统会划分成多个子系统或模块,各自运行在不同的机器上,子系统或模块之间通过网络通信进行协作,最终实现整体功能。
利用多个节点协作完成一个或多个具体业务功能的系统就是分布式系统其中,分布式文件系统是分布式系统的一个子集,分布式文件系统解决的是数据存储问题,换句话说,它是横跨在多台计算机上的存储系统存储在分布式文件系统中的数据会自动分布在不同的节点中Hadoop,框架组成,1,HDFS,(,2,),HDFS,工作原理,HDFS,是分。
