第一章 大数据概述
大数据的定义
大数据是指无法在一定时间内用常规软件工具对其 内容进行抓取、管理和处理的数据集合,比如:与人类社会活动有关的网络数据。
大数据产生方式的变革
- 运营式系统阶段
- 用户原创内容阶段
- 感知式系统阶段
大数据对科学研究的影响
- 第一种范式:实验科学
- 第二种范式:理论科学
- 第三种范式:计算科学
- 第四种范式:数据密集型科学
大数据对思维方式的影响
- 全样而非采样
- 效率而非准确
- 相关而非因果
大数据的概念(4V+xV)
volume:数据量大
variety:类型繁多
velocity:速度快,时效高
valueless:价值密度低
variability:可变性
veracity:真实性
数量与类型
-
结构化数据 structured data
-
半结构化数据 semi-structured data
-
非结构化数据 unstructured data
速度与价值
-
从数据的生成到消耗,时间窗口非常小,可用于生成决策的时间非常少
-
1秒定律:这一点也是和传统的数据挖掘技术有着本质的不同
-
价值密度低,商业价值高
以视频为例,连续不间断监控过程中,可能有用的数据仅仅有一两秒,但是具有很高的商业价值
大数据计算模式
模式 | 解决问题 | 代表产品 |
---|---|---|
批处理计算 | 针对大规模数据的批量处理 | MapReduce、Spark等 |
流计算 | 针对流数据的实时计算 | Storm、S4、Flume、Streams、Puma、DStream、Super Mario、银河流数据处理平台等 |
图计算 | 针对大规模图结构数据的处理 | Pregel、GraphX、Giraph、PowerGraph、Hama、GoldenOrb等 |
查询分析计算 | 大规模数据的存储管理和查询分析 | Dremel、Hive、Cassandra、Impala等 |
第二章 Linux使用与Hadoop介绍
Linux基础
-
Linux泛指一类操作系统,具体的版本有: Ubuntu、CentOS、Debian、Red Hat、OpenSUSE、UOS(统信)、Deepin(深度)、优麒麟(Ubuntu Kylin)等
-
Linux是一个多用户、多任务的操作系统。
-
Linux支持带卓面(GNOME)的鼠标操作方式(GUI),也支持不带卓面的命令行操作方式(CMD)。
系统目录结构
基本操作
目录文件:
-
pwd ,查看当前路径
-
cd 或 cd ~ 进入用户主目录, ~表示用户主目录
-
mkdir mydir 在当前目录下创建子目录mydir
-
rmr -R mydata 删除目录(R表示递归删除其下子目录)
-
rm filename 删除文件
-
touch filename 创建一个文件(内容为空)
压缩包:
-
tar:解包(x)、压包(c)。
z表示gzip格式
tar -xzvf 待解压文件名 –C 目标路径
tar -czvf 目标压缩文件名 文件或目录
查看文件:
-
cat 由第一行开始显示文件内容
-
tac 从最后一行开始显示, tac 是 cat 的倒著写!
-
nl 显示的时候,输出行号!
-
more 一页一页的显示文件内容
-
less 与 more 类似,可以往前翻页!
-
head 只看头几行
-
tail 只看末尾几行
文本编辑器
vi/vim:
Linux与Windows的换行符:
- Linux/unix:\n
- Windows:\r\n
文件格式互转:
- unix2dos:将具有unix风格的格式文件转化为具有window下的格式文件。
- dos2unix:将具有windows风格的格式文件转化为unix下的格式文件。
Hadoop概述
Hadoop定义
Apache开源软件基金会开发的运行于大规模普通服务器上的大数据存储、计算、分析的分布式存储系统和分布式运算框架。
Hadoop特点
- 扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据;
- 成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点;
- 高效率(Efficient):通过分发数据,Hadoop 可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速;
- 可靠性(Reliable):Hadoop 能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(redeploy)计算任务。
Hadoop2.0组成
- 分布式文件系统:HDFS
- 资源分配系统:YARN
- 分布式运算框架:MapReduce
Hadoop与Google三大论文
Apache | |
---|---|
BigTable | HBase |
MapReduce | MapReduce |
GFS | HDFS |
Hadoop集群的安装与使用
运行模式
- 单机模式(Standalone,独立或本地模式:安装简单,运行时只启动单个进程,仅调试用途;
- 伪分布模式(Pseudo-Distributed):在单节点上同时启动 name node、data node、secondary name node、resource manager 、node manager 等5个进程,模拟分布式运行的各个节点;
- 完全分布式模式(Fully-Distributed):正常的Hadoop集群,由多个各司其职的节点构成。
安装步骤
-
配置主机名、关防火墙、编辑hosts文件;
-
配置免密登录;
Hadoop 运行过程中需要管理远端 Hadoop 守护进程,启动后,Name Node 是通过 SSH(Secure Shell)来无密码登录启动和停止各个 Data Node 上的各种守护进程的。同理,Data Node 上也能使用 SSH 无密码登录到 Name Node。
-
Hadoop解压安装;
-
编辑Hadoop的配置文件,etc/hadoop下;(主要配置文件)
Hadoop目录
-
编辑 hadoop-env.sh、yarn-env.sh;(脚本)
-
编辑 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml;(xml文件)
core-site.xml主要内容:
fs.default.name,机器名称的9000端口(hdfs://master:9000)
hadoop.tmp.dir,集群数据目录(home/scau/hadoopdata)
集群默认端口
fs.defaultFS,9000;
HDFS,Name Node,50070(或9870),dfs.namenode.http-address,http 服务的端口;
YARN,Resource Manager,8088,yarn.resourcemanager.webapp.address,http 服务的端口。
-
编辑 **slaves(workers)**文件。
由主机列表组成,每台一行,用于说明数据节点
-
-
复制hadoop工程文件夹到其他节点;
-
格式化hdfs;
Hdfs namenode -format
-
启动hadoop。
sbin/start-all.sh
在 Hadoop Master 的终端执行 jps 命令,在打印结果中会看到 4 个进程,分别是 Resource Manager、Jps、 Name Node 和 Secondary Name Node,如果出现了这 4 个进程表示主节点进程启动;
在 Hadoop Slave 的终端执行 jps 命令,在打印结果中会看到 3 个进程,分别是 Node Manager、Data Node 和 Jps,如果出现了这 3 个进程表示从节点进程启动。
集群使用基本命令
-
创建文件夹
hdfs dfs -mkdir test
-
复制文件到hdfs
hdfs dfs -put /resource /direct
-
显示文件(夹)统计信息
hdfs dfs -ls test
-
显示文件内容,管道head