大数据技术之_03_Hadoop学习_01_入门_大数据概论+从Hadoop框架讨论大数据生态+Hadoop运行环境搭建(开发重点)

第1章 大数据概论1.1 大数据概念1.2 大数据特点(4V)1.3 大数据应用场景1.4 大数据发展前景1.5 大数据部门业务流程分析1.6 大数据部门组织结构(重点)第2章 从Hadoop框架讨论大数据生态2.1 Hadoop是什么2.2 Hadoop发展历史2.3 Hadoop三大发行版本2.4 Hadoop的优势(4高)2.5 Hadoop组成(面试重点)2.5.1 HDFS架构概述2.5.2 YARN架构概述2.5.3 MapReduce架构概述2.6 大数据技术生态体系2.7 推荐系统框架图第3章 Hadoop运行环境搭建(开发重点)3.1 虚拟机环境准备3.2 安装JDK3.3 安装Hadoop3.4 Hadoop目录结构


第1章 大数据概论

1.1 大数据概念

大数据概念如图1-1 所示。

图1-1 大数据概念图1-1 大数据概念

1.2 大数据特点(4V)

大数据特点如图1-2,1-3,1-4,1-5所示:

图1-2 大数据特点之大量图1-2 大数据特点之大量
图1-3 大数据特点之高速图1-3 大数据特点之高速
图1-4 大数据特点之多样图1-4 大数据特点之多样
图1-5 大数据特点之低价值密度图1-5 大数据特点之低价值密度

1.3 大数据应用场景

大数据应用场景如图1-6,1-7,1-8,1-9,1-10,1-11所示。

图1-6 大数据应用场景之物流仓储图1-6 大数据应用场景之物流仓储
图1-7 大数据应用场景之零售图1-7 大数据应用场景之零售
图1-8 大数据应用场景之旅游图1-8 大数据应用场景之旅游
图1-9 大数据应用场景之商品广告推荐图1-9 大数据应用场景之商品广告推荐
图1-10 大数据应用场景之保险、金融及房产图1-10 大数据应用场景之保险、金融及房产
图1-11 大数据应用场景人工智能图1-11 大数据应用场景人工智能

1.4 大数据发展前景

大数据发展前景如图1-12,1-13,1-14,1-15,1-16所示

图1-12 大数据发展前景之国家政策图1-12 大数据发展前景之国家政策
图1-13 大数据发展前景之国际方面图1-13 大数据发展前景之国际方面
图1-14 大数据发展前景之高校方面图1-14 大数据发展前景之高校方面
图1-15 大数据发展前景之平均薪资图1-15 大数据发展前景之平均薪资
图1-16 大数据发展前景之整体薪资图1-16 大数据发展前景之整体薪资

1.5 大数据部门业务流程分析

大数据部门业务流程分析如图1-17所示。

图1-17 大数据部门业务流程分析图1-17 大数据部门业务流程分析

1.6 大数据部门组织结构(重点)

大数据部门组织结构,适用于大中型企业,如图1-18所示。

图1-18 大数据部门组织结构图1-18 大数据部门组织结构

补充:

企业数据部-组织架构图1:

图1-19 企业数据部-组织架构图1图1-19 企业数据部-组织架构图1

企业数据部-组织架构图2:

图1-20 企业数据部-组织架构图2图1-20 企业数据部-组织架构图2

阿里云-数加:

图1-21阿里云-数加图1-21阿里云-数加

第2章 从Hadoop框架讨论大数据生态

2.1 Hadoop是什么

图2-1 Hadoop是什么图2-1 Hadoop是什么

2.2 Hadoop发展历史

图2-2 Hadoop发展历史图2-2 Hadoop发展历史
图2-2 Hadoop发展历史图2-2 Hadoop发展历史

2.3 Hadoop三大发行版本

  • Hadoop(哈道普)三大发行版本:Apache、Cloudera、Hortonworks。
      Apache版本最原始(最基础)的版本,对于入门学习最好。
      Cloudera在大型互联网企业中用的较多。(简称:CDH版,收费)
      Hortonworks文档较好。

  • 1、Apache Hadoop
    官网地址:http://hadoop.apache.org/releases.html
    下载地址:https://archive.apache.org/dist/hadoop/common/

  • 2、Cloudera Hadoop
    官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
    下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/

    • (1)2008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要是包括支持、咨询服务、培训。
    • (2)2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support。
    • (3)CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。
    • (4)Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。Cloudera Support即是对Hadoop的技术支持。
    • (5)Cloudera的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理大数据的Impala项目。
  • 3、Hortonworks Hadoop
    官网地址:https://hortonworks.com/products/data-center/hdp/
    下载地址:https://hortonworks.com/downloads/#data-platform

    • (1)2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建。
    • (2)公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。
    • (3)雅虎工程副总裁、雅虎Hadoop开发团队负责人Eric Baldeschwieler出任Hortonworks的首席执行官。
    • (4)Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目外还包括了Ambari,一款开源的安装和管理系统。
    • (5)HCatalog,一个元数据管理系统,HCatalog现已集成到Facebook开源的Hive中。Hortonworks的Stinger开创性的极大的优化了Hive项目。Hortonworks为入门提供了一个非常好的,易于使用的沙盒。
    • (6)Hortonworks开发了很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Window Server和Windows Azure在内的Microsoft Windows平台上本地运行。定价以集群为基础,每10个节点每年为12500美元。

2.4 Hadoop的优势(4高)

2.5 Hadoop组成(面试重点)

图2-3 Hadoop1.x与Hadoop2.x的区别图2-3 Hadoop1.x与Hadoop2.x的区别

2.5.1 HDFS架构概述

HDFS(Hadoop Distributed File System)的架构概述,如图2-4所示。

图2-4 HDFS架构概述图2-4 HDFS架构概述

2.5.2 YARN架构概述

YARN架构概述,如图2-5所示。

图2-5 YARN架构概述图2-5 YARN架构概述

2.5.3 MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce,如图2-6所示。
1)Map阶段并行处理输入数据
2)Reduce阶段对Map结果进行汇总

图2-6 MapReduce架构概述图2-6 MapReduce架构概述

2.6 大数据技术生态体系

大数据技术生态体系如图2-7所示。

图2-7  大数据技术生态体系图2-7 大数据技术生态体系

图中涉及的技术名词解释如下:
1)Sqoop:Sqoop(斯库伯)是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
2)Flume:Flume(弗鲁姆)是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
3)Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:
  (1)通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
  (2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。
  (3)支持通过Kafka服务器和消费机集群来分区消息。
  (4)支持Hadoop并行数据加载。
4)Storm:Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。
5)Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。
6)Oozie:Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。
7)Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
8)Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
10)R语言:R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
11)Mahout:Apache Mahout(麦浩特)是个可扩展的机器学习和数据挖掘库。
12)ZooKeeper:Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

2.7 推荐系统框架图

推荐系统项目架构如图2-8所示。

图2-8推荐系统项目架构图2-8推荐系统项目架构

第3章 Hadoop运行环境搭建(开发重点)

3.1 虚拟机环境准备

演示以CentOS6X为例:
1、完整克隆虚拟机或者复制虚拟机均可
  (注意:完整克隆虚拟机和复制虚拟机文件的区别:二者没什么区别,本质一样。只是在开机的时候,复制的虚拟机需要选择【我已复制该虚拟机】)
2、修改虚拟机的静态IP
  (注意:复制的虚拟机会新生成一张网卡,即虚拟出一张网卡:eth1,我们可以使用该网卡,也可以不使用而继续使用eth0,但是需要配置,即修改MAC地址即可。虚拟技术的精髓!
3、修改主机名
  (配置Linux系统中ip地址与主机名映射,还需要配置Windows系统中Linux的ip地址与主机名映射,这样为了方便后续操作。注意:CentOS6X和CenOS7X的主机名配置的区别)
4、永久关闭防火墙
  (实际开发中不建议永久关闭防火墙,需要使用什么端口,开放即可。注意:CentOS6X和CenOS7X的防火墙配置的区别)
5、创建atguigu用户
  (注意:创建用户后要及时设置用户密码,这是一个好习惯!)
6、配置atguigu用户具有root权限
  (并非所有用户都能够执行sudo,因为有权限的用户需要在/etc/sudoers中进行配置后才可以使用,注意:sudoers的权限是0440,即只有root才能读。在你用root或sudo编辑后强行保存并退出(wq!)即可。)

以上六步骤完成后,建议重启虚拟机。
步骤如下:
完整克隆虚拟机

 
 
 
 
 

打开克隆的虚拟机,进行如下配置:
修改虚拟机的静态IP

 
 
 

修改主机名

 
 

永久关闭防火墙

重启虚拟机,测试一下,是否以上配置成功,没有问题

 

配置成功后,我们使用远程终端链接上Linux,进行以下操作:



创建atguigu用户并设置用户密码,已创建,简单,不在赘图!

配置atguigu用户具有root权限,命令:
[root@hadoop101 ~]# vim /etc/sudoers



至此准备工作完成!!!

7、在/opt/目录下创建文件夹
(1)在/opt目录下创建module、software文件夹,由于rh是空文件夹,我们将其删除掉,这样清爽!

[atguigu@hadoop101 opt]$ sudo mkdir module
[atguigu@hadoop101 opt]$ sudo mkdir software
[atguigu@hadoop101 opt]$ sudo rm -rf rh/

(2)修改module、software文件夹的所有者和所在组为atguigu

[atguigu@hadoop101 opt]$ sudo chown atguigu:atguigu modulesoftware/
[atguigu@hadoop101 opt]$ ll
总用量 8
drwxr-xr-x. 2 atguigu atguigu 4096 1月  17 14:37 module
drwxr-xr-x. 2 atguigu atguigu 4096 1月  17 14:38 software

如下图所示:

3.2 安装JDK

1、卸载现有JDK
(1)查询是否安装Java软件:

[atguigu@hadoop101 opt]$ rpm -qa | grep java
或者
[atguigu@hadoop101 opt]$ rpm -qa | grep jdk

(2)如果安装的版本低于1.7,卸载该JDK:

[atguigu@hadoop101 opt]$ sudo rpm -e --nodeps 软件包

(3)查看JDK安装路径:

[atguigu@hadoop101 ~]$ which java

2、用SecureCRT工具或者Xshell6将JDK导入到opt目录下面的software文件夹下面。
3、在Linux系统下的opt目录中查看软件包是否导入成功

[atguigu@hadoop101 opt]$ cd software/
[atguigu@hadoop101 software]$ ll
总用量 374196
-rw-r--r--. 1 root root 197657687 1月  29 17:10 hadoop-2.7.2.tar.gz
-rw-r--r--. 1 root root 185515842 1月  29 17:10 jdk-8u144-linux-x64.tar.gz

4、解压JDK到/opt/module目录下

[atguigu@hadoop101 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

5、配置JDK环境变量
(1)先获取JDK路径

[atguigu@hadoop101 jdk1.8.0_144]$ pwd
/opt/module/jdk1.8.0_144

(2)打开/etc/profile文件

[atguigu@hadoop101 software]$ sudo vim /etc/profile
在profile文件末尾添加JDK路径(Shift+G),有两种格式:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

或者

#JAVA_HOME
JAVA_HOME=/opt/module/jdk1.8.0_144
JRE_HOME=/opt/module/jdk1.8.0_144/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

(3)保存后退出

:wq

(4)让修改后的文件生效

[atguigu@hadoop101 jdk1.8.0_144]$ source /etc/profile

6、测试JDK是否安装成功

[atguigu@hadoop101 jdk1.8.0_144]# java -version
java version "1.8.0_144"
注意:重启(如果java -version可以用就不用重启)

[atguigu@hadoop101 jdk1.8.0_144]$ sync
[atguigu@hadoop101 jdk1.8.0_144]$ sudo reboot

3.3 安装Hadoop

0、Hadoop下载地址:
  https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/
1、用SecureCRT工具将hadoop-2.7.2.tar.gz导入到opt目录下面的software文件夹下面
切换到sftp连接页面,选择Linux下编译的hadoop jar包拖入。
2、进入到Hadoop安装包路径下

[atguigu@hadoop101 ~]$ cd /opt/software/

3、解压安装文件到/opt/module下面

[atguigu@hadoop101 software]$ tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/

4、查看是否解压成功

[atguigu@hadoop101 software]$ ls /opt/module/
hadoop-2.7.2

5、将Hadoop添加到环境变量
(1)获取Hadoop安装路径

[atguigu@hadoop101 hadoop-2.7.2]$ pwd
/opt/module/hadoop-2.7.2

(2)打开/etc/profile文件

[atguigu@hadoop101 hadoop-2.7.2]$ sudo vim /etc/profile
在profile文件末尾添加JDK路径:(shitf+g)

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

(3)保存后退出

:wq

(4)让修改后的文件生效

[atguigu@ hadoop101 hadoop-2.7.2]$ source /etc/profile

6、测试是否安装成功

[atguigu@hadoop101 hadoop-2.7.2]$ hadoop version
Hadoop 2.7.2

7、重启(如果Hadoop命令不能用再重启)

[atguigu@ hadoop101 hadoop-2.7.2]$ sync
[atguigu@ hadoop101 hadoop-2.7.2]$ sudo reboot

3.4 Hadoop目录结构

1、查看Hadoop目录结构

[atguigu@hadoop101 hadoop-2.7.2]$ ll
总用量 52
drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 bin
drwxr-xr-x. 3 atguigu atguigu  4096 5月  22 2017 etc
drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 include
drwxr-xr-x. 3 atguigu atguigu  4096 5月  22 2017 lib
drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 libexec
-rw-r--r--. 1 atguigu atguigu 15429 5月  22 2017 LICENSE.txt
-rw-r--r--. 1 atguigu atguigu   101 5月  22 2017 NOTICE.txt
-rw-r--r--. 1 atguigu atguigu  1366 5月  22 2017 README.txt
drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 sbin
drwxr-xr-x. 4 atguigu atguigu  4096 5月  22 2017 share

2、重要目录
(1)bin目录:存放对Hadoop相关服务(HDFS,YARN,Hadoop)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例