篇首语:本文由编程笔记#小编为大家整理,主要介绍了大数据技术之_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-2,1-3,1-4,1-5所示:
大数据应用场景如图1-6,1-7,1-8,1-9,1-10,1-11所示。
大数据发展前景如图1-12,1-13,1-14,1-15,1-16所示
大数据部门业务流程分析如图1-17所示。
大数据部门组织结构,适用于大中型企业,如图1-18所示。
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/
2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。
Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support。3、Hortonworks Hadoop
官网地址:https://hortonworks.com/products/data-center/hdp/
下载地址:https://hortonworks.com/downloads/#data-platform
公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。
HDFS(Hadoop Distributed File System)的架构概述,如图2-4所示。
YARN架构概述,如图2-5所示。
MapReduce将计算过程分为两个阶段:Map和Reduce,如图2-6所示。
1)Map阶段并行处理输入数据
2)Reduce阶段对Map结果进行汇总
大数据技术生态体系如图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-8所示。
演示以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,进行以下操作:
[[email protected] ~]# vim /etc/sudoers
7、在/opt/
目录下创建文件夹
(1)在/opt目录下创建module、software文件夹,由于rh是空文件夹,我们将其删除掉,这样清爽!
[[email protected] opt]$ sudo mkdir module
[[email protected] opt]$ sudo mkdir software
[[email protected] opt]$ sudo rm -rf rh/
(2)修改module、software文件夹的所有者和所在组为atguigu
[[email protected] opt]$ sudo chown atguigu:atguigu module/ software/
[[email protected] 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
如下图所示:
1、卸载现有JDK
(1)查询是否安装Java软件:
[[email protected] opt]$ rpm -qa | grep java
或者
[[email protected] opt]$ rpm -qa | grep jdk
(2)如果安装的版本低于1.7,卸载该JDK:
[[email protected] opt]$ sudo rpm -e --nodeps 软件包
(3)查看JDK安装路径:
[[email protected] ~]$ which java
2、用SecureCRT工具或者Xshell6将JDK导入到opt目录下面的software文件夹下面。
3、在Linux系统下的opt目录中查看软件包是否导入成功
[[email protected] opt]$ cd software/
[[email protected] 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目录下
[[email protected] software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
5、配置JDK环境变量
(1)先获取JDK路径
[[email protected] jdk1.8.0_144]$ pwd
/opt/module/jdk1.8.0_144
(2)打开/etc/profile文件
[[email protected] 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)让修改后的文件生效
[[email protected] jdk1.8.0_144]$ source /etc/profile
6、测试JDK是否安装成功
[[email protected] jdk1.8.0_144]# java -version
java version "1.8.0_144"
注意:重启(如果java -version可以用就不用重启)
[[email protected] jdk1.8.0_144]$ sync
[[email protected] jdk1.8.0_144]$ sudo reboot
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安装包路径下
[[email protected] ~]$ cd /opt/software/
3、解压安装文件到/opt/module下面
[[email protected] software]$ tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
4、查看是否解压成功
[[email protected] software]$ ls /opt/module/
hadoop-2.7.2
5、将Hadoop添加到环境变量
(1)获取Hadoop安装路径
[[email protected] hadoop-2.7.2]$ pwd
/opt/module/hadoop-2.7.2
(2)打开/etc/profile文件
[[email protected] 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)让修改后的文件生效
[[email protected] hadoop101 hadoop-2.7.2]$ source /etc/profile
6、测试是否安装成功
[[email protected] hadoop-2.7.2]$ hadoop version
Hadoop 2.7.2
7、重启(如果Hadoop命令不能用再重启)
[[email protected] hadoop101 hadoop-2.7.2]$ sync
[[email protected] hadoop101 hadoop-2.7.2]$ sudo reboot
1、查看Hadoop目录结构
[[email protected] 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包、文档、和官方案例