一、大数据概述
大数据四个特征:数据量大,数据类型繁多,处理速度快,价值密度低。
大数据的构成:结构化数据,半结构化数据,非结构化数据。
大数据计算模式:批处理计算(MapReduce,Spark),流计算(Storm,Flume),图计算,查询分析计算(Hive)。
大数据与云计算、物联网:云计算为大数据提供了技术基础,大数据为云计算提供了用武之地;物联网是大数据的重要来源,大数据技术为物联网数据分析提供支撑。
二、Hadoop概述
Hadoop简介:是一个开源的,分布式存储和分布式计算平台,提供可靠的、可扩展的分布式计算。
Hadoop优势:高可靠性、高效性、高可扩展性、高容错性、成本低、成熟的生态圈。
Hadoop核心组件:HDFS(分布式文件系统)、MapReduce(分布式计算模型)、yarn(资源管理和调度器)。
解压文件:tar -zxvf *.tar.gz,指定解压目标加参数-C。压缩文件:tar -zcvf *.tar.gz 源文件。
三、HDFS简介
HDFS两类节点:管理节点NameNode(存放文件元数据,包括文件与数据块、数据块与节点的映射)、工作节点DataNode(存放数据块)。HDFS特点:数据冗余,硬件容错;适合存储大文件,一次写入,不适合多用户并发写相同文件;适合批量读写,吞吐量大,不适合交互性使用。
建立输入目录并上传数据:
hadoop fs -mkdir /input
hadoop fs -put 1.txt /input
hadoop fs -put 2.txt /input
四、MapReduce简介
优缺点:(1)优点:适用于海量数据离线处理、易于编程、良好的扩展性、高容错性。
(2)缺点:执行速度慢;不适用所有算法;不适合流式计算和实时计算。
MapReduce构成:client、jobtracker、tasktracker、task。
工作流程:输入、map任务、reduce任务、输出。
打包执行命令:hadoop jar wc.jar WordCount /input /output
查看结果:hadoop fs -cat /output/*
五、资源调度框架Yarn
核心组件:①ResourceManager :负责集群资源的统一管理和调度,整个集群只有一个。
②NodeManager:集群中有多个,负责单节点资源管理和使用 。
③ApplicationMaster:每个应用一个,负责应用程序管理。
④ Container:对资源的抽象。
不同的计算框架统一运行在YARN中的优点:计算资源按需伸缩;不用负载应用混搭,集群利用率高;共享底层存储,避免数据跨集群迁移。
六、hive简介
数据仓库:面向主题的、集成的、稳定的,随时间变化的数据集合,用于支持经营管理中决策制定过程。
数据仓库系统的构成:数据仓库(DW)、仓库管理和分析工具。
hive优点:适合大数据批量处理;充分利用cup资源,实现并行计算;良好的扩展性。
hive缺点:hql表达能力有限;效率低。
运行机制:用户通过用户接口连接Hive,发布Hive SQL;Hive解析查询并制定查询计划;Hive将查询转换成MapReduce作业 ;Hive在Hadoop上执行MapReduce作业。
导出数据:INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/hivedaochu'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
select empno,ename,sal,deptno from emp;
七、HBase简介
特点:大、面向列、稀疏、数据多版本、无模式、数据类型单一。
系统架构:客户端、zookeeper、master、region。
八、nosql数据库
特点:灵活的可扩展性、灵活的数据类型、与云计算紧密耦合。
类型:键值数据库、列族数据库、文档数据库和图形数据库。
九、sqoop离线处理系统
导入(mysql->hdfs):
sqoop import --connect jdbc:mysql://127.0.0.1:3306/test
--username root --P
--table student1 --target-dir '/sqoop/student1'
--driver com.mysql.jdbc.Driver -m 1
导出(hdfs->mysql):
sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8"
--username root --password root
--export-dir '/sqoop/sqoopex1.txt' --table sqoop1
--input-fields-terminated-by '\t' --driver com.mysql.jdbc.Driver
导入(mysql->hive):
sqoop import --connect jdbc:mysql://localhost:3306/test
--username root --password root --table student1
--hive-import --hive-table student1 --hive-database hive1
--driver com.mysql.jdbc.Driver --delete-target-dir -m 1
十、数据可视化
Eclipse下开发web项目的步骤有哪些?
下载Tomcat8,解压集成到eclipse中;建立dynamic web project,编写页面;部署工程,启动服务器,在浏览器中观察界面。
十一、spark简介
特点:运行速度快、容易使用、通用性、运行模式多样。
打包在linux下运行:spark-submit --class "sdau.wordCount.WordCount" wordCount-0.0.1-SNAPSHOT.jar
flink打包在Linux下运行:flink run --class sdau.flink.WordCount finkWordCount-0.0.1-SNAPSHOT.jar
十二、流计算框架
常用的一些:storm、spark streaming和flink。
十三、数据采集与预处理
数据分析过程:数据采集与预处理->数据存储与管理->数据处理与分析->数据可视化。
kafka特性:高吞吐量、低延迟;可扩展性;持久可靠性;容错性;异步通信。