大数据Hadoop 3.X分布式处理实战(txt+pdf+epub+mobi电子书下载)


发布时间:2020-10-03 02:52:32

点击下载

作者:北京源智天下科技有限公司

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

大数据Hadoop 3.X分布式处理实战

大数据Hadoop 3.X分布式处理实战试读:

前言

随着云时代的来临,移动互联网、电子商务、物联网以及社交媒体快速发展,全球的数据正在以几何速度呈爆炸性增长,大数据也吸引了越来越多的人关注。大数据的核心技术就是Hadoop。目前市面上关于Hadoop的书有很多,但基本是关于Hadoop 1.X或Hadoop 2.X的,而且偏重理论讲述,缺少实践案例。本书从Hadoop 3.X实例出发,通过“理论+实践+视频”的方式,帮助读者轻松掌握大数据技术。特别值得一提的是,本书讲解了日志分析、推荐系统、垃圾消息识别3个企业级的综合大数据项目案例,读者稍加改造,即可在生产环境中使用,具有重大的实用价值,也可供在校大学生或研究生毕业设计时参考。本书有何特色

1. 版本较新

技术研究需要具有一定的前瞻性,本书采用Hadoop 3.X,版本较新。目前国内关于Hadoop的图书基本是关于Hadoop 1.X或Hadoop 2.X的。

2. 知识全面

本书包括Hadoop及其生态组件伪分布式安装和完全分布式安装、分布式文件系统HDFS、分布式计算框架MapReduce、NoSQL数据库HBase、分布式数据仓库Hive、数据转换工具Sqoop、内存计算框架Spark等主要大数据技术。

3. 重视实战

针对每一个知识点,在基本理论讲述后都提供了实战项目,真正做到学以致用。读者通过实战项目,可以更容易地掌握大数据技术在具体工作中的应用。

4. 视频讲解

本书作者具有丰富的IT培训和视频录制经验,针对每章内容精心录制了多个讲解视频。全书有32个相关视频,视频总时长超过12小时,特别是环境搭建、项目运行、源码分析等场景,通过视频学习将更加轻松。

5. 图文并茂

一图胜过千言万语,全书共有超过200幅插图,用于展示语言难以描述的内容,同时插图也有助于增加阅读的趣味性。

6. 在线答疑

本书提供答疑QQ群,在线答疑,群号是243363382。也可以通过作者的QQ号进行在线交流,作者的QQ号是107964558。

7. 电子资源

本书在附带的电子资源中,提供了每章的相关视频、源代码及测试数据,用Eclipse工具打开源代码即可运行。通过运行效果来分析源代码,理解会更容易、更深刻。

读者可扫描“职场研究社”二维码,关注后回复“52466”即可获取电子资源下载链接,也可以扫描云课二维码,手机端在线观看视频。职场研究社云课适合阅读本书的读者(1)渴望转型进入大数据领域的程序员。(2)希望学习大数据技术的在校大学生或研究生。(3)希望提升技能的初级大数据领域从业人员。(4)希望研究“推荐系统”等大数据典型应用的大数据开发工程师。第一篇 Hadoop技术第1章 大数据与Hadoop概述

大数据是一种数据规模大到在获取、存储、管理、分析等方面大大超出传统关系型数据库软件工具能力范围的数据集合,处理时需要采用新的分布式处理技术,而Hadoop就是大数据技术的标准,能够高效、可靠、低成本地处理海量数据。

本章涉及的主要知识点如下。(1)大数据概述:大数据的定义、大数据行业发展、大数据的典型应用,让读者对大数据有一个宏观的了解。(2)Hadoop概述:Hadoop简介、Hadoop生态子项目、Hadoop 3.X的新特性,这一节的内容在后面章节将逐步进行深入讲解。1.1 大数据概述

大数据技术是目前炙手可热的一门技术,那么,什么是大数据呢?目前大数据行业发展怎样?大数据的典型应用有哪些?1.1.1 大数据的定义

现代社会是一个高速发展的社会,科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便,大数据就是这个高科技时代的产物。阿里巴巴创办人马云在演讲中曾提到,未来的时代将不是IT时代,而是DT时代。DT就是Data Technology(数据科技)的缩写,这显示出大数据对于阿里巴巴来说举足轻重。

对于“大数据”(Big Data),麦肯锡全球研究所给出的定义是,一种规模大到在获取、存储、管理、分析方面大大超出传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。IBM公司提出大数据具有5V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)、Veracity(真实性)。

大数据需要特殊的技术,以有效地处理大量的数据。适用于大数据的技术,主要有大规模并行处理(Massively Parallel Processing, MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统等。1.1.2 大数据行业的发展

我国高度重视大数据在经济社会发展中的作用,2015年8月31日,国务院以国发〔2015〕50号印发《国务院关于印发促进大数据发展行动纲要的通知》,全面推进大数据发展,加快建设数据强国。“十三五”时期是我国新旧产业和发展驱动转换接续的关键时期,全球新一代信息技术产业正处于加速变革期,国内市场应用需求处于爆发期,我国大数据产业发展面临重要的发展机遇。培养出足够、合格的数据人才,对我国在未来掌握大数据的核心价值起着至关重要的作用。1.1.3 大数据的典型应用

整体来看,目前国内大数据应用尚处于从热点行业领域向传统领域渗透的阶段。权威部门的调查显示,大数据应用水平较高的行业主要分布在互联网、电信、金融、电商、交通行业,一些传统行业的大数据应用发展较为缓慢,批发零售业甚至有超过80%的企业并没有大数据应用计划,远低于整体平均水平。

目前,大数据的典型应用有以下几个方面。

1. 运营商业务

运营商掌握体量巨大的数据资源,单个运营商的用户每天产生的话单记录、上网日志等数据就可达到PB级规模。对于运营商而言,可利用大数据技术提升传统的数据处理能力,聚合更多的数据提升洞察能力,借助大数据提高诊断网络潜在问题的效率,改善服务水平,为客户提供更好的体验,获得更多的客户以及更高的业务增长。

2. 金融业务

金融行业是信息产业之外大数据的又一重要应用领域,大数据在金融的银行、保险和证券三大业务中均具有广阔的应用前景。总体来说,金融行业的主要业务应用包括企业内外部的风险管理、信用评估、借贷、保险、理财、证券分析等,这些都可以通过获取、关联和分析更多维度、更深层次的数据,并通过不断发展的大数据处理技术,得以更好、更快、更准确地实现。大数据分析应用可以为金融机构提供统一的客户视图。

3. 政务业务

大数据政务应用获得世界各国政府日益重视。我国政府也非常重视大数据的应用。《国务院关于印发促进大数据发展行动纲要的通知》(国发〔2015〕50号)提出“大数据成为提升政府治理能力的新途径”,要“打造精准治理、多方协作的社会治理新模式”。大数据应用着眼于提升政府提供公共产品和服务的能力。

4. 交通领域业务

交通数据资源丰富,具有实时性特征。在交通领域,数据主要包括各类交通运行监控、服务和应用数据。大数据应用系统可以基于对大数据的预测性分析,通过梳理影响安全畅通运行的各种原因,发现道路运行管理的内在规律,为交通管理决策、规划、运营、服务以及主动安全防范带来更加有效的支持。

5. 电子商务业务

大数据开启了电子商务行业的时代转型。电子商务和传统商家最大的区别在于:电子商务构建的各类型数据库能够涵盖商家信息、用户信息、行业资讯、产品使用体验、商品浏览记录、商品成交记录、产品价格动态等海量信息。电子商务行业大数据背后隐藏的是电子商务行业的用户需求、竞争情报,蕴藏着巨大的财富价值。借助大数据挖掘与分析技术,电子商务不仅可以提高营销转化为购买行为的成功率,而且能降低营销成本,使产品更契合用户的需求,全面提升企业竞争力。

6. 科学研究业务

科学数据是人类在认识自然、发展科技的活动中产生和积累的数据,是人类长期科学活动的知识积累,是一种重要的基础资源和战略资源。大数据时代,科学模式已经变革为“数据密集型科学”的科研范式阶段,部分学科领域的科研活动已经成为典型的大数据行为,科学技术人员有机会利用海量的科学数据探索世界,开展此前无法进行的研究,解决此前难以解决的科学问题,产生突破性进展。

7. 教育领域业务

教育领域大数据的主要目的是为不同利益相关者提供精准的教育服务,如学生的学习、教师的教学、课程开发者的资源开发、教育管理者的决策等。其核心是精准获取学习者的需求,为学习者提供精准教育服务。其数据主要来源于各类教育系统,包括学习管理系统、内容管理系统、电子档案系统、智能培训系统、社会性学习系统、实时教学系统、学习设计系统和学生信息管理系统等。

8. 健康医疗领域业务

通过对医疗大数据的获取和分析,将数据与各级医疗平台进行实时共享,对分散医疗卫生机构的数据以及公众随身的健康医疗传感器数据进行快速、有效、可靠的采集,实现医疗卫生机构卫生数据的有效接入,这将对公共医疗信息化建设起到至关重要的作用。1.2 Hadoop概述

一提大数据,必提Hadoop,Hadoop已经成为大数据技术的标准。Hadoop不是一套孤立的系统,具有很多生态子项目的支撑。Hadoop 3.X也相较于之前的Hadoop 1.X和2.X有了较大的技术升级。本节对Hadoop技术进行简单介绍,后面章节将对具体内容进行深入分析。1.2.1 Hadoop简介

Hadoop是一个由Apache软件基金会开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System,HDFS)。HDFS具有高容错性的特点,并设计它用来部署在价格低廉的硬件上,而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。Hadoop框架的核心设计就是HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

1. 项目起源

Hadoop被Apache软件基金会于2005年作为Lucene子项目Nutch的一部分正式引入。它受到谷歌实验室开发的MapReduce和Google File System(GFS)的启发。2006年3月,MapReduce和Nutch Distributed File System(NDFS)分别被纳入称为Hadoop的项目中。

2. 发展历程

Hadoop原本来自于谷歌一款名为MapReduce的编程模型包。谷歌的MapReduce框架可以把一个应用程序分解为许多并行计算指令,跨大量的计算节点运行非常巨大的数据集。使用该框架的一个典型例子就是在网络数据上运行的搜索算法。Hadoop最初只与网页索引有关,但后来迅速发展成为分析大数据的领先平台。

3. 名字起源

Hadoop这个名字不是一个缩写,而是一个虚构的名字。该项目的创建者Doug Cutting这样解释Hadoop的命名:“这个名字是我孩子给一个棕黄色的大象玩具起的名字。我的命名标准就是简短、容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手。”

4. 优点

Hadoop是一个能够对大量数据进行分布式处理的软件框架,以一种可靠、高效、可伸缩的方式进行数据处理。Hadoop是一个能够让用户轻松架构和使用的分布式计算平台,用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。

Hadoop主要有以下几个优点。(1)高可靠性。因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。(2)高扩展性。Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可以方便地扩展到数以千计的节点中。(3)高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,以并行的方式工作,通过并行处理加快处理速度,因此处理速度非常快。(4)高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。(5)低成本。与一体机、商用数据仓库等工具相比,Hadoop是开源的,项目的软件成本会大大降低。Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上也是比较低成本的。1.2.2 Hadoop生态子项目

尽管Hadoop因MapReduce及其分布式文件系统HDFS而出名,但Hadoop这个名字也用于泛指一组相关的项目,这些相关项目都使用这个基础平台进行分布式计算和海量数据处理,如表1.1所示。表1.1 Hadoop生态子项目项目描述

本书将重点讲解HDFS、MapReduce、HBase、Hive、Sqoop、Spark等项目,并提供相关项目的综合案例。1.2.3 Hadoop 3.X的新特性

相较于早期的Hadoop 1.X和Hadoop 2.X,Hadoop 3.X具有很多新的特性。本书采用Hadoop 3.X版本。

对于Hadoop 3.X的新特性,读者可先进行简单了解,不用深入研究,后续章节将进一步讲解。

Hadoop 3.X的主要新特性如下。(1)Java的最低版本要求从Java 7更改成Java 8。(2)HDFS支持纠删码(Erasure Coding),从而将数据存储空间节省了50%。(3)引入YARN的时间轴服务v.2(YARN Timeline Service v.2)。(4)重写了Shell脚本。(5)隐藏底层jar包。(6)支持containers和分布式调度。(7)MapReduce任务级本地优化。(8)支持多于两个的NameNodes。(9)改变了多个服务的默认端口(例如HDFS的Web界面,默认端口由50070变成9870)。(10)用Intra解决DataNode宕机负载不均衡的问题。(11)重写守护进程以及任务的堆内存管理。(12)支持Microsoft Azure Data Lake文件系统。(13)解决了AMAZON S3的数据一致性问题。1.3 小结

大数据是一种人类社会生产活动信息化的产物,它的内涵不仅仅是海量的数据存储,还包括其相关技术、领域应用、社会学和道德法律等交叉学科的内容,而Hadoop是大数据技术的标准,具有广泛的应用。本章较为概略,但可以为后面各章节Hadoop相关技术的深入学习打下基础。1.4 配套视频

本章的配套视频为“课程介绍及Hadoop概述”,读者可从配套电子资源中获取。第2章 Hadoop伪分布式安装

Hadoop安装是学习Hadoop的第一步,本章讲述在CentOS 7上伪分布式安装Hadoop 3.0。不管是CentOS 7配置,还是Hadoop 3.0配置,都与以前的版本有了较大差别。参照本章的图文教程及配套视频,任何人都可以成功安装CentOS 7和Hadoop 3.0。

本章涉及的主要知识点如下。(1)Hadoop伪分布式安装前的准备:安装VMware、安装CentOS 7、配置CentOS 7,为安装Hadoop做好环境准备。(2)Hadoop伪分布式安装:安装WinSCP、安装PieTTY、安装JDK、安装Hadoop。(3)Hadoop验证:在启动Hadoop之前先要格式化,启动后可以通过进程查看、浏览文件以及浏览器访问等方式验证Hadoop是否能正常运行。2.1 Hadoop伪分布式安装前的准备

Hadoop支持本地模式、伪分布式模式、完全分布式模式3种安装模式。本地模式,在系统中下载Hadoop,默认情况下,它会被配置为一个独立的模式,用于运行Java程序;伪分布式模式,这是在单台机器上的分布式模拟,这种模式对开发非常有用;完全分布式模式,又叫集群安装,Hadoop安装在最少两台计算机的集群中。本地模式没有太多的实用价值,所以不做讲解。本章主要讲解伪分布式模式,完全分布式模式将在第11章与Hadoop其他组件一起讲解。2.1.1 安装VMware

本书使用Windows 10(简称Win10)的64位系统,采用的是在Win10系统里安装VMware虚拟机软件,然后再利用VMware安装CentOS 7系统,之后再将Hadoop安装在CentOS 7中。

从网上下载VMware 12的安装包VMware-workstation-full-12.0.0-2985596.exe,直接双击安装。在安装过程中一直单击“下一步”按钮即可完成安装,如图2.1所示。图2.1 VMware Workstation Pro安装向导2.1.2 安装CentOS 7

从CentOS官方网站下载CentOS 7安装镜像文件CentOS-7-x86_64-DVD-1611.iso,文件大小超过4GB。(1)在计算机硬盘上找一个剩余空间在50GB以上的磁盘,建立一个空文件夹,并重命名,如F:\CentOS 7,作为CentOS 7的虚拟机文件存放目录。然后打开VMware Workstation Pro。单击“文件”菜单→新建虚拟机,选择“自定义(高级)”,单击“下一步”按钮,如图2.2所示。图2.2 新建虚拟机(2)保持默认设置,继续单击“下一步”按钮,如图2.3所示。图2.3 设置虚拟机硬件兼容性(3)选择“安装程序光盘映像文件(iso)”,单击“浏览”按钮,找到CentOS 7安装镜像文件CentOS-7-x86_64-DVD-1611.iso,然后单击“打开”按钮,结果如图2.4所示。图2.4 选择安装程序光盘映像文件(4)单击“下一步”按钮,输入个性化Linux相关信息。为了简化,这里在全名、用户名、密码、确认4个输入框中全输入了一个字母“w”。此处输入的密码在Linux登录时需要使用,不能忘记,如图2.5所示。图2.5 设置个性化Linux(5)单击“下一步”按钮,在“位置”处单击“浏览”按钮,选择刚刚建立的文件夹F:\CentOS 7,单击“确定”按钮,结果如图2.6所示。图2.6 命名虚拟机(6)单击“下一步”按钮,进入“处理器配置”界面,默认配置为1核。为了加快处理器运行速度,这里将配置改为4核,如图2.7所示。图2.7 处理器配置(7)单击“下一步”按钮,进入“此虚拟机的内存”界面。笔者的物理机是16GB内存,所以选择配置8GB内存给虚拟机使用。如果读者的物理机只有8GB内存,可以配置4GB内存给虚拟机使用,如图2.8所示。图2.8 分配虚拟机内存(8)单击“下一步”按钮,进入“网络类型”选择,可以保留“NAT”默认方式,如图2.9所示。图2.9 网络连接(9)单击“下一步”按钮,“SCSI控制器”选择默认的LSI Logic,再继续单击“下一步”按钮,虚拟磁盘类型也选择默认的SCSI,再继续单击“下一步”按钮,保持默认选项“创建新虚拟机磁盘”,再继续单击“下一步”按钮。“最大磁盘大小”默认只有20GB,因为太小了,所以这里调成200GB。其他保持默认,如图2.10所示。图2.10 指定磁盘容量

注意:此处并不需要物理机上有200GB剩余空间。(10)单击“下一步”按钮,“指定磁盘文件”保持默认,继续单击“下一步”按钮,提示“已准备好创建虚拟机”。单击“完成”按钮,即可自动开启安装此虚拟机,如图2.11所示。图2.11 创建虚拟机配置明细(11)进入漫长的安装过程。这个过程视计算机性能而定,大约30分钟,CentOS 7虚拟机就可以安装完成。2.1.3 配置CentOS 7:接受协议

单击“LICENSE INFORMATION”按钮,如图2.12所示,进入服务协议。勾选“I accept the license agreement”,再单击“Done”按钮,如图2.13所示。然后再单击“FINISH CONFIGURATION”按钮完成配置。图2.12 进入协议服务图2.13 接受协议2.1.4 配置CentOS 7:登录系统

不要使用普通用户w登录,因为普通用户权限太少,还得使用“su root”命令切换成root用户。单击“Not listed?”,如图2.14所示,输入超级用户名“root”,如图2.15所示,再输入密码“w”,如图2.16所示,然后单击“Sign In”按钮登录系统。图2.14 登录初始界面图2.15 输入用户名图2.16 输入密码

注意:此处的密码需与图2.5中设置的密码保持一致。2.1.5 配置CentOS 7:设置IP

在CentOS 7的桌面上单击鼠标右键,选择“Open Terminal”,打开Shell终端,使用“ip a”命令,查看IP地址。笔者的IP地址是192.168.164.149。但这个自动获取的IP地址可能会随着网络环境的改变而改变,因此需要固定住,如图2.17所示。图2.17 查看IP地址

单击CentOS 7桌面右上角网络图标→Wired→Wired Settings,如图2.18所示。图2.18 Wired Settings

单击右下角的“设置”图标,如图2.19所示。图2.19 Network Settings

选择“IPv4”,在“Addresses”栏选中“Manual”手工指定IP,在“Address”输入框中输入自动获取的IP地址“192.168.164.149”,Netmask(子网掩码)设为255.255.255.0,Gateway(网关)的前三个数字与IP地址一样,最后一位数字设为2。笔者这里设为“192.168.164.2”,请读者根据自己的IP地址进行调整。然后单击“Apply”按钮应用就完成了IP设置,如图2.20所示。图2.20 IP设置2.1.6 配置CentOS 7:修改主机名

要永久修改主机名,可以使用如下Shell命令,修改主机名为hadoop0。  [root@hadoop0 ~]# hostnamectl set-hostname hadoop0

如图2.21所示。图2.21 修改主机名2.1.7 配置CentOS 7:配置hosts文件

使用vi编辑/etc/hosts文件。  [root@hadoop0 ~]#vi /etc/hosts

在文件末尾添加一行。  192.168.164.149 hadoop0

然后保存并退出vi,如图2.22所示。图2.22 配置hosts文件

注意:如果IP地址有改变,/etc/hosts中的IP必须也手动同步更改。2.1.8 配置CentOS 7:关闭防火墙

在CentOS 7中,可以使用如下命令操作防火墙。  [root@hadoop0 ~]# systemctl start firewalld.service #开启防火墙  [root@hadoop0 ~]# systemctl restart firewalld.service #重启防火墙  [root@hadoop0 ~]# systemctl stop firewalld.service #关闭防火墙  [root@hadoop0 ~]# systemctl status firewalld.service #查看防火墙状态

为了防止防火墙干扰,可以选择如下命令关闭防火墙。  [root@hadoop0 ~]# systemctl stop firewalld.service #关闭防火墙  [root@hadoop0 ~]# systemctl disable firewalld.service #开机禁用防火墙

如图2.23所示。图2.23 关闭防火墙

注意:在生产环境中,服务器防火墙是不能关闭的,否则有重大安全风险。只能配置防火墙规划,打开特定端口。2.1.9 配置CentOS 7:禁用selinux

如果要永久关闭selinux安全策略,可以修改/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled。  [root@hadoop0 ~]#vi /etc/selinux/config

如图2.24所示。图2.24 禁用selinux2.1.10 配置CentOS 7:设置SSH免密码登录

Hadoop各组件之间使用SSH登录,为了免输密码,可以设计SSH免密码登录。步骤如下。  [root@hadoop0 /]# cd /root/.ssh #进入密钥存放目录  [root@hadoop0 .ssh]# rm -rf * #删除旧密钥

然后使用ssh-keygen -t dsa命令生成密码,在这个过程中需要多次按回车键选取默认配置。  [root@hadoop0 ~]# ssh-keygen -t dsa

如图2.25所示。图2.25 设置SSH免密码登录

将生成的密钥文件id_dsa.pub复制到SSH指定的密钥文件authorized_keys中。  [root@hadoop0 .ssh]# cat id_dsa.pub >>authorized_keys

如图2.26所示。图2.26 复制密钥

注意:authorized_keys文件名不能写错,前后都不能有空格。

测试SSH免密码登录是否成功。  [root@hadoop0 .ssh]# ssh hadoop0

输入yes继续连接,如果没有提示输入密码,则证明免密码登录成功,如图2.27所示。图2.27 SSH免密码登录2.1.11 配置CentOS 7:重启

要使修改主机名等配置生效,必须重启主机。  [root@hadoop0 ~]# reboot2.2 Hadoop伪分布式安装

Hadoop伪分布式安装主要包括安装JDK和安装Hadoop两步,但为了使Windows系统能与虚拟机CentOS进行通信,还需安装WinSCP和PieTTY两个工具软件。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载