Hadoop+Spark大数据技术(微课版)/大数据与人工智能技术丛书

Hadoop+Spark大数据技术(微课版)/大数据与人工智能技术丛书
作者: 编者:刘彬斌
出版社: 清华大学
原售价: 69.00
折扣价: 48.30
折扣购买: Hadoop+Spark大数据技术(微课版)/大数据与人工智能技术丛书
ISBN: 9787302514275

作者简介

内容简介

 Hadoop开发环境 5.1 Hadoop生态圈工具   开发人员通常要使用开发工具,不同的工具有不同的用途。例如,他们可能会用Eclipse进行代码编写,用MySQL或者Oracle进行数据存储,这里的工具都有特定的用处。然而Hadoop生态圈就变得有点复杂,那Hadoop生态圈是什么呢?   根据官方描述,Hadoop是一个由Apache基金会所开发的分布式系统基础架构,用户可以在不了解分布式底层细节的情况下去开发分布式程序,充分利用集群的威力进行数据存储和数据计算。Hadoop的框架*核心的设计是HDFS和MapReduce。HDFS为海量的数据提供了分布式存储,MapReduce是对数据进行处理。Hadoop框架是Hadoop生态圈的基础,许多工具都是基于Hadoop框架中分布式文件存储系统的基础而运行的,包括Hive、Pig、HBase等工具,所以通常人们说Hadoop就是指Hadoop生态圈。   Hadoop生态圈好比一个厨房,需要各种工具。锅、碗、瓢、盆各有各的用处,相互之间又有重合。例如,可以用汤锅当碗来吃饭喝汤,也可以用小刀削土豆皮,每个工具都有自己的特性。虽然都可以达到*终目的,但是这种工具未必是*佳的选择。Hadoop生态圈中的这些工具就像是厨房里的各种工具,它们都是基于“厨房”(Hadoop框架)存在的,它们在这个圈里发挥各自的作用,组成了Hadoop生态系统。   Hadoop生态系统组件如图5.1所示。 图 5.1   1.Hadoop   Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System,HDFS)。HDFS有高容错性的特点,设计用来部署在低廉的PC(Personal Computer)上,而且它提供高吞吐量访问应用程序的数据,适合有超大数据集的应用程序。   2.Hive   Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类似SQL的查询功能,本质是将SQL转换为MapReduce程序。   Hive的特点如下。 * 可扩展性:Hive可以自由地扩展集群的规模,一般情况下不需要重启服务。 * 延展性:Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。 * 容错性:节点出现问题SQL仍可完成执行,容错性良好。   3.Pig   Pig是一种数据流语言和运行环境,用于检索**大的数据集。它是一个**过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过脚本语言方式简化了Hadoop的使用,Pig为复杂的海量数据并行计算提供了一个简单的*作和编程接口。   4.Sqoop   Sqoop是一款开源的工具,主要用于在Hadoop与关系型数据库(MySQL、Oracle、…)间进行数据的传递。Sqoop项目开始于2009年,*早是作为Hadoop的一个第三方模块存在的,后来为了实现使用者能够快速部署,以及开发人员能够*快速地迭代开发,Sqoop独立成为一个Apache项目。   5.Flume   Flume是Apache公司提供的一个高可用的、高可靠的、分布式的海量*志采集、聚合和传输的系统,Flume支持在*志系统中定制各类数据发送方,用于收集数据。同时,Flume提供对数据进行简单处理,并写到各种数据接收方的能力。   6.Zookeeper   Zookeeper是一个开放源码的分布式应用程序协调服务,是Goo**e公司的Chubby的一个开源的实现,是Hadoop和Hbase的重要组件,是一个为分布式应用提供一致***的软件。提供的功能包括配置维护、名字服务、分布式同步、组服务等,目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。   7.HBase   HBase是一个开源的非关系型分布式数据库(NoSQL)。它参考了Goo**e公司的BigTa**e建模,实现的编程语言为J**a。它是Apache软件基金会Hadoop项目的一部分,运行于HDFS文件系统之上,为Hadoop提供类似于BigTa**e规模的服务。HBase在列上实现了BigTa**e论文提到的压缩算法、内存*作和布隆过滤器。HBase的表能够作为MapReduce任务的输入和输出,可以通过J**a API来存取数据,也可以通过REST、**ro或者Thrift的API来访问。HBase弥补了Hive不能随机读写的缺陷。 5.2 环 境 搭 建   0.23版本之前与之后的Hadoop集群都存在单点问题,其中,NameNode的单点问题尤为严重。由于NameNode保存了整个HDFS的元数据信息,因此一旦NameNode出现故障,整个HDFS就无法访问。同时Hadoop生态系统中依赖HDFS的各个组件,包括MapReduce、Hive、Pig、HBase等工具,也都无法正常工作,并且重新启动NameNode和进行数据恢复的过程也会比较耗时。这些问题在给Hadoop的使用者带来困扰的同时,也极大地限制了Hadoop的使用场景。所幸在 Hadoop 2.0中NameNode和ResourceManager的单点问题都得到了解决,经过多个版本的迭代和发展,目前已经能用于生产环境。   生产环境中的Hadoop大数据集群是由多台服务器组成的集群。为了方便学习和教学,这里采用在VMware平台中搭建虚拟机的方式模拟Hadoop大数据集群。要想实现Hadoop大数据集群高可用环境,*少需要5台虚拟机,其中两台Master节点(一台作为活动状态(active),另一台作为备用状态(standby))为集群管理节点,三台Sl**e节点做数据存储。Hadoop高可用大数据集群每台虚拟机所需要的软件如图5.2所示。 图 5.2   安装高可用大数据集群步骤分为安装虚拟机、安装JDK、安装Hadoop、复制虚拟机、设置免密、安装Zookeeper和启动Hadoop集群等。Linux系统的虚拟机安装请参考2.1节的系统安装。 5.2.1 步骤1——虚拟机安装   虚拟机安装步骤见2.1.2节。 5.2.2 步骤2——安装JDK和Hadoop   关于JDK和Hadoop在Linux环境下安装的讲解视频可分别扫描以下三个二维码观看。   为了解决Hadoop的高可用问题,Zookeeper应运而生。高可用分为两种:数据高可用和服务高可用。为了实现高可用必须有两台Master节点和多台Sl**e节点(其中IP地址第三段“153”需要跟自己的VMware工具平台网段一致,可以通过在VMware工作平台中选择“编辑”→“虚拟网络编辑器”→VMware8→“子网”来查看),具体配置如表5.1所示。   表 5.1 主机名 IP地址 Master001 192.168.153.101 Master002 192.168.153.102 Sl**e001 192.168.153.201 Sl**e002 192.168.153.202 Sl**e003 192.168.153.203 "包含250分钟微课视频、丰富的实例代码以及真实、完整的项目案例。 内容囊括Linux和MySQL使用基础、Hadoop和Spark集群搭建、Hadoop两大核心的原理与使用、Hadoop生态圈工具(Hive、HBase、Spoop、Flume等)、Scala基础、RDD、Spark SQL、Spark streaming和Spark-ML等知识点,并有配套实例代码。 详细讲解真实的大数据项目“电力能源大数据分析”。"