大数据简介

一、基本定义

一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征

二、基本特征

容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息;
种类(Variety):数据类型的多样性;
速度(Velocity):指获得数据的速度;
可变性(Variability):妨碍了处理和有效地管理数据的过程。
真实性(Veracity):数据的质量。
复杂性(Complexity):数据量巨大,来源多渠道。
价值(value):合理运用大数据,以低成本创造高价值。

三、基础业务

主要解决,海量数据的存储和海量数据的分析计算问题

四、应用场景

物流仓储:大数据分析系统助力商家精细化运营、提升销量、节约成本。
零售:分析用户的消费习惯,为用户购买商品提供方便,从而提升商品销量。
旅游: 深度结合大数据能力与旅游行业需求,共建旅游产业智慧管理、智慧服务和智慧营销的未来。
商品广告推荐:给用户推荐可能喜欢的商品。
保险: 海量数据挖掘及风险预测,助力保险行业精准营销,提升精细化定价能力。
金融:多维度提现用户特征,帮助金融机构推荐优质客户,防范欺诈风险。
房产:大数据全面助力房地产行业,打造精准投资与营销,选出更合适的地,建造更合适的楼,卖给更合适的人。
人工智能:无人驾驶汽车,机器人,无飞机等

五、发展前景

党的十八大提出"实施国家大数据战略" 国务院印发《促进大数据发展行动纲要》
党的十九大提出"推动互联网、大数据、人工智能和实体经济融合"。

第一章 Hadoop

一、Hadoop简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
主要解决,海量数据的存储和海量数据的分析计算问题。
广义上来说,Hadoop通常是指一个更广泛的概念,Hadoop生态圈。

二、Hadoop发展历史

创始人:DougCutting Hadoop起源于Google在大数据方面的三篇论文
GFS--> HDFS
Map-Reduce --> MR
BigTable --> HBase
2003-2004年,Google公开了部分GFS和MapReduce思想细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和MapReduce机制,使Nutch性能飙升。
2005年Hadoop 作为Lucene的子项目Nutch的一部分正式引入Apache基金会。

三、Hadoop三大发行版本

1、Apache

是最原始(最基础)的版本,对于入门学习是非常不错的。

2、Cloudera

在大型互联网企业运用是最多的

3、Hortonworks

文档是比较完善的

四、Hadoop的优势

1、高可靠性

Hadoop 底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据丢失。

2、高扩展性

在集群间分配任务数据,可方便的扩展数千计的节点

3、高效性

在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度

4、高容错性

能够自动将失败的任务重新分配。

五、版本区别

1、Hadoop1.x组成

1、MapRedouce(计算+资源调度)
2、HDFS(数据存储)
3、Common(辅助工具)

2、Hadoop2.x组成

1、MapReduce(计算)
2、Yarm (资源调度)
3、HDFS (数据存储)
4、Common (辅助工具)

六、HDFS架构

1、NameNode:

存储文件的元数据,如文件名,文件目录结构,文件属性(成成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等

2、DataNode:

在本地文件系统存储文件块数据,以及快数据的校验

3、Secondary NameNode:

用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

七、YARN架构

1、ResourceManager

1、处理客户请求
2、监控NodeManager
3、启动或监控ApplicationMaster
4、资源的分配与调度

2、NodeManager

1、管理单元节点上的资源
2、处理来自ResourceManager的命令
3、处理来自ApplicationMaster的命令

3、ApplicationMaster

1、负责数据的切块
2、为应用程序申请资源并分配给内部的任务
3、任务的监控与容错

4、Container

Container是YARN中的资源抽象,它封装了某一个节点上的多维资源,如内存、cpu、磁盘、网络等。

5、整体架构图

image.png

八、MapReduce架构概述

MapReduce 将计算过程分为两个阶段:Map和Reduce
1、Map阶段并行处理输入数据进行拆分
2、Reduce阶段对Map结果进行汇总

整体架构图

image.png

九、大数据生态体系

1、第一层:数据来源层

数据库(结构化数据)
文件日志(半结构化数据)
视频、ppt等(非机构化数据)

2、第二层: 数据传输层

Sqoop数据传递
Flume日志收集
Kafka消息队列

3、第三层:数据存储层

HDFS文件存储
HBase非关系型数据库

4、第四层:数据管理层

YARN资源管理

5、第五层:数据计算层

MapReduce离线计算
--Hvie数据查询
--Mahout数据挖掘
Spark Core内存计算
--Mahout数据挖掘
--SparkMlib数据挖掘
--Spark R数据分析
--Spark Sql数据查询
--Spark Streaming实时计算
Storm实时计算

6、第六层:任务调度层

Oozie任务调度 比较复杂
Azkaban任务调度器 偏简单些
Zookeeper数据平台配置与调度

7、第七层:业务模型层

业务模型、数据可视化、业务应用

第2章节 Hadoop 环境搭建

一、虚拟机环境搭建

1、资料下载与电脑配置

1、VM虚拟机软件下载:https://www.vmware.com/cn/pro...
2、CentOS镜像文件下载:http://ftp.sjtu.edu.cn/centos...
image.png
3、检查BIOS是否开启虚拟化支持,由于电脑不同设置方式不一样,自行百度

2、镜像安装

1、打开虚拟机-->创建新虚拟机 如图所示:
image.png
2、选择自定义(高级)-->下一步 如图所示:
image.png
3、选择下一步即可 如图所示:
image.png
4、选择稍后安装操作系统--> 下一步 如图所示:
image.png
5、选择Linux--> 版本(CentOS 6 64位)--> 下一步 如图所示:
image.png
6、编写虚拟机名称-->选择存放位置-->下一步 如图所示:
image.png
7、配置处理器数量-->配置内核数量--> 下一步 如图所示:
image.png
8、配置内存大小 --> 下一步 如图所示:
image.png
9、网络配置 --> 下一步 如图所示:
image.png
10、选择控制器类型(默认即可)-->下一步 如图所示:
image.png
11、选择磁盘类型(默认即可)--> 下一步 如图所示:
image.png
12、选择磁盘(默认即可)--> 下一步 如图所示:
image.png
13、配置磁盘大小与分区--> 下一步 如图所示:
image.png
14、选择磁盘文件(默认即可) --> 下一步 如图所示:
image.png
15、点击完成即可 如图所示:
image.png
16、编辑虚拟机设置 如图所示:
image.png
17、配置安装镜像文件 如图所示:
image.png
18、开启虚拟机 如图所示:
image.png
19、选择安装 鼠标点击黑色区域,键盘上下键可以移动选项,再按回车键 ,释放鼠标:CTAL+ALT键 如图所示:
image.png
20、选择skip --回车键 如图所示
image.png>
21、直接选择下一步 如图所示:
image.png
22、选择语言--中文简体--下一步
image.png
23、选择键盘,默认英式键盘--下一步 如图所示:
image.png
24、选择默认基本存储设备--下一步 如图所示:
image.png
25、存储设备警告 ,选择是 忽略所有数据 如图所示:
image.png
26、编写主机名称,默认即可如图所示:
image.png
27、选择时区--亚洲/上海即可 --下一步 如图所示:
image.png
28、设置用户密码 输入6位长度密码
image.png
29、密码太简单提示,选择无论如何都使用即可
image.png
30、设置布局,选择创建自定义布局 --下一步
image.png
31、创建分区--/(根分区)
image.png
32、设置根分区大小
image.png
33、创建boot分区 步骤与上面一样
image.png
34、创建swap分区 步骤如上
image.png
35、配置完成 ,点击下一步
image.png
36、选择格式化
image.png
37、选择将修改写入磁盘
image.png
38、默认下一步即可
image.png
39、等待安装
image.png
40、安装完成,重启引导
image.png
41、登录,输入账号root 输入密码:直接输入不会显示 输入完按回车键
image.png

3、克隆镜像文件

1、选择虚拟机--右键--选择管理--选择克隆 如图所示:
image.png
2、选择下一步:
image.png
3、克隆来源 选择虚拟机中当前状态 --下一步
image.png
4、克隆类型 选择完整克隆 --下一步
image.png
5、编写虚拟机名称--虚拟机存储放位置--完成 --完成关闭即可
image.png

4、网络配置

1、查看本地网络 打开控制台(windows+R)--输入cmd--回车键--输入ipconfig 如图所示:
image.png
2、配置虚拟机网络 选择虚拟机--选择编辑--选择虚拟网络编辑
image.png
3、选择更改设置
image.png
4、配置VMnet8 选择VMnet8 比较子网IP是否与本地VMnet8 中的IPv4是否在同一个网段
image.png
5、配置DHCP设置 配置IP使用范围 修改起始IP
image.png
6、配置NAT设置(一般默认即可)
image.png
7、最后选择应用保存--确定即可
image.png
8、进入虚拟机,查看IP 命令如下
    ip addr
9、如图所示:IP未配置好
image.png
10、修改网络,修改文件如下
vi /etc/udev/rules.d/70-persistent.rules #vi 表示编辑文件
dd #表示删除一行 在未进入编辑状态 键盘输入dd 删除eth0 并把eth1 改为eth0
# 进入编辑模式 按键盘 i
image.png
11、记录ATTR值
image.png
12、保存修改 按esc 输入冒号 输入字母wq 如图所示:
image.png
13、配置IP地址 并保存
#修改网络配置文件
vi /ete/sysconfig/network-scripts/ifcfg-eth0
IPADDR 为静态IP
GATEWAY 为默认网关IP
image.png
14、修改本机名称 改为hadoop101 如图所示:
vi /etc/sysconfig/network
image.png
15、修改host 命令如下: 添加如下值
vi /etc/hosts
image.png
16、重启系统 命令:reboot
17、查看IP 命令:ip addr 配置成功
image.png
18、测试是否能ping通 cmd 打开控制台 输入 ping ip地址 如图表示配置成功
image.png
19、测试是否能连接外网 如图表示成功
image.png

5、Xshell使用

1、下载地址:http://www.hostbuf.com/
2、创建服务器连接 如图所示:
image.png
3、配置连接 如图所示:
image.png
4、正式连接服务器 双击地址-- 接受并保存
image.png
5、提示连接成功 如图所示
image.png

6、用户管理

1、添加新用户
useradd 用户名
2、将用户添加到用户组
useradd -g 组名 用户名
3、设置用户密码
passwd 用户名
4、切换用户
su 用户名
5、删除用户
userdel 用户名称 删除用户但保存用户主目录
userdel -r 用户名称 用户和用户主目录都删除
6、查看用户信息
whoami 显示自身用户名称
who am i 显示登录用户的用户名称
7、设置普通用户具有root权限
sudo #最高权限执行
修改地址:vi /etc/sudoers 如图所示:此处使用强制保存 wq!
image.png
8、查看用户组 id 用户名
image.png
9、设置用户组 usermod -g root ahui
image.png
10、新增用户组 groupadd 组名
11、删除用户组 groupdel 组名
12、修改用户组 groupmod -n 新组名 老组名
13、修改文件权限 chmod
14、修改所有文件权限 chown
15、改变所属组 chgrp

7、创建文件

1、在opt目录下创建两文件夹 module、software
cd /opt #进入opt目录
2、创建文件 mkdir module 错误提示如图:
image.png
3、使用 sudo mkdir module #sudo 表示以最高权限执行
image.png
4、修改文件所属权限
sudo chown ahui:ahui module/ software/
image.png

8、上传文件

1、jdk-8u231-linux-x64.tar.gz
2、hadoop-2.7.2.tar.gz

9、解压文件

1、解压两个压缩包 命令:tar -zxvf 被解压的文件 -C 输入路径
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /opt/module
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module

10、配置环境变量

1、JDK环境变量配置

1、编辑 /etc/profile
sudo vi /etc/profile
image.png
2、使环境变量生效 source
source /etc/profile
image.png

2、Hadoop环境变量配置

sudo vi /etc/profile
image.png
查看Hadoop版本 是否安装成功
image.png

案例1 统计dfs开头a-z出现的次数

1、在hadoop 的根目录创建一个文件夹
mkdir input
image.png
2、将etc/hadoop下的xml文件拷贝到上面创建的input文件中
cp etc/hadoop/*.xml input/
3、查看一下是否拷贝成功
image.png
4、执行计算
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input/ output 'dfs[a-z.]+'
5、查看结果
image.png
6、注意事项 输出路径不能存在,否则出现IO异常

案例2 WordCount 统计个数

1、在Hadoop根目录创建一个文件夹 名字为 wcinput
mkdir wcinput
2、创建一个文件 名称随便定义
touch wc.input
3、编辑内容 ,随便编辑
vi wc.input
4、执行计算
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput/ wcoutput
5、查看结果
image.png

伪分布式运行模式

1、配置集群

1、配置core-site.xml
<!-- 指定 HDFS中NameNode的地址-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
2、配置:hdfs-site.xml
<!--指定HDFS 副本的数据量 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

ahui
1 声望0 粉丝

学而不往,非礼也!