大数据简介
一、基本定义
一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征
二、基本特征
容量(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、整体架构图

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

九、大数据生态体系
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...

3、检查BIOS是否开启虚拟化支持,由于电脑不同设置方式不一样,自行百度
2、镜像安装
1、打开虚拟机-->创建新虚拟机 如图所示:

2、选择自定义(高级)-->下一步 如图所示:

3、选择下一步即可 如图所示:

4、选择稍后安装操作系统--> 下一步 如图所示:

5、选择Linux--> 版本(CentOS 6 64位)--> 下一步 如图所示:

6、编写虚拟机名称-->选择存放位置-->下一步 如图所示:

7、配置处理器数量-->配置内核数量--> 下一步 如图所示:

8、配置内存大小 --> 下一步 如图所示:

9、网络配置 --> 下一步 如图所示:

10、选择控制器类型(默认即可)-->下一步 如图所示:

11、选择磁盘类型(默认即可)--> 下一步 如图所示:

12、选择磁盘(默认即可)--> 下一步 如图所示:

13、配置磁盘大小与分区--> 下一步 如图所示:

14、选择磁盘文件(默认即可) --> 下一步 如图所示:

15、点击完成即可 如图所示:

16、编辑虚拟机设置 如图所示:

17、配置安装镜像文件 如图所示:

18、开启虚拟机 如图所示:

19、选择安装 鼠标点击黑色区域,键盘上下键可以移动选项,再按回车键 ,释放鼠标:CTAL+ALT键
如图所示:

20、选择skip --回车键 如图所示
>
21、直接选择下一步 如图所示:

22、选择语言--中文简体--下一步

23、选择键盘,默认英式键盘--下一步 如图所示:

24、选择默认基本存储设备--下一步 如图所示:

25、存储设备警告 ,选择是 忽略所有数据 如图所示:

26、编写主机名称,默认即可如图所示:
27、选择时区--亚洲/上海即可 --下一步 如图所示:

28、设置用户密码 输入6位长度密码

29、密码太简单提示,选择无论如何都使用即可

30、设置布局,选择创建自定义布局 --下一步

31、创建分区--/(根分区)

32、设置根分区大小

33、创建boot分区 步骤与上面一样

34、创建swap分区 步骤如上

35、配置完成 ,点击下一步

36、选择格式化

37、选择将修改写入磁盘

38、默认下一步即可

39、等待安装

40、安装完成,重启引导

41、登录,输入账号root 输入密码:直接输入不会显示 输入完按回车键

3、克隆镜像文件
1、选择虚拟机--右键--选择管理--选择克隆 如图所示:

2、选择下一步:

3、克隆来源 选择虚拟机中当前状态 --下一步

4、克隆类型 选择完整克隆 --下一步

5、编写虚拟机名称--虚拟机存储放位置--完成 --完成关闭即可

4、网络配置
1、查看本地网络 打开控制台(windows+R)--输入cmd--回车键--输入ipconfig 如图所示:

2、配置虚拟机网络 选择虚拟机--选择编辑--选择虚拟网络编辑

3、选择更改设置

4、配置VMnet8 选择VMnet8 比较子网IP是否与本地VMnet8 中的IPv4是否在同一个网段

5、配置DHCP设置 配置IP使用范围 修改起始IP

6、配置NAT设置(一般默认即可)

7、最后选择应用保存--确定即可

8、进入虚拟机,查看IP 命令如下
ip addr
9、如图所示:IP未配置好

10、修改网络,修改文件如下
vi /etc/udev/rules.d/70-persistent.rules #vi 表示编辑文件
dd #表示删除一行 在未进入编辑状态 键盘输入dd 删除eth0 并把eth1 改为eth0
# 进入编辑模式 按键盘 i

11、记录ATTR值

12、保存修改 按esc 输入冒号 输入字母wq 如图所示:

13、配置IP地址 并保存
#修改网络配置文件
vi /ete/sysconfig/network-scripts/ifcfg-eth0
IPADDR 为静态IP
GATEWAY 为默认网关IP

14、修改本机名称 改为hadoop101 如图所示:
vi /etc/sysconfig/network

15、修改host 命令如下: 添加如下值
vi /etc/hosts

16、重启系统 命令:reboot
17、查看IP 命令:ip addr 配置成功

18、测试是否能ping通 cmd 打开控制台 输入 ping ip地址 如图表示配置成功

19、测试是否能连接外网 如图表示成功

5、Xshell使用
1、下载地址:http://www.hostbuf.com/
2、创建服务器连接 如图所示:

3、配置连接 如图所示:

4、正式连接服务器 双击地址-- 接受并保存

5、提示连接成功 如图所示

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!

8、查看用户组 id 用户名

9、设置用户组 usermod -g root ahui

10、新增用户组 groupadd 组名
11、删除用户组 groupdel 组名
12、修改用户组 groupmod -n 新组名 老组名
13、修改文件权限 chmod
14、修改所有文件权限 chown
15、改变所属组 chgrp
7、创建文件
1、在opt目录下创建两文件夹 module、software
cd /opt #进入opt目录
2、创建文件 mkdir module 错误提示如图:

3、使用 sudo mkdir module #sudo 表示以最高权限执行

4、修改文件所属权限
sudo chown ahui:ahui module/ software/

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

2、使环境变量生效 source
source /etc/profile

2、Hadoop环境变量配置
sudo vi /etc/profile

查看Hadoop版本 是否安装成功

案例1 统计dfs开头a-z出现的次数
1、在hadoop 的根目录创建一个文件夹
mkdir input

2、将etc/hadoop下的xml文件拷贝到上面创建的input文件中
cp etc/hadoop/*.xml input/
3、查看一下是否拷贝成功

4、执行计算
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input/ output 'dfs[a-z.]+'
5、查看结果

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、查看结果

伪分布式运行模式
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>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。