1、何为大数据?
大数据是指很多很多的数据,主要源于web2.0之后,数据库中的数据量累计起来很庞大,在对数据进行操作(主要指查询)会变得很慢,对机器的性能要求会很高,如果数据量达到足够大(如十几亿),那服务器会崩溃的
2、大数据解决什么问题?
大数据解决对海量数据的存储、查询、分析计算等操作,主要应用在利用庞大的数据归类分析用户的偏好,利用用户的历史信息得出相应的统计账单等,将同行业的大公司的数据进行计算分析,可以挖掘出一些隐含价值。
3、学习大数据的基础
1)java SE,EE(SSM)
因为90%的大数据框架都是java写的
2)SQL
特别是sql语句中的查询语句,因为对数据库的操作最多的是查询
使用Hadoop作为大数据的分布式存储、计算和分析 sql的操作会重要
3)Linux
大数据的框架安装在Linux操作系统上
4、需要学什么
*第一方面:大数据离线分析*
一般处理T+1数据(T是指日、周、月、年),处理历史数据
模块1:Hadoop
包括四大块(common、yarn、MapReduce、HDFS)
主要掌握环境搭建、处理数据的思想
模块2:Hive
大数据数据仓库
通过写SQL对数据进行操作,类似于mysql数据库中的sql
模块3:HBase
基于HDFS的NOSQL数据库
面向列的存储
协作框架:
sqoop(桥梁:HDFS 《==》RDBMS)
flume:收集日志文件中信息
调度框架anzkaban,
了解:crotab(Linux自带)、zeus(Alibaba)、Oozie(cloudera)
扩展前沿框架:kylin、impala、ElasticSearch(ES)
第二方面:大数据离线分析
以spark框架为主
Scala:OOP + FP
sparkCore:类比MapReduce
sparkSQL:类比hive
sparkStreaming:实时数据处理
kafka:消息队列
前沿框架扩展:flink
阿里巴巴 blink
第三方面:大数据机器学习(扩展)
spark MLlib:机器学习库
pyspark编程:Python和spark的结合
推荐系统
python数据分析
Python机器学习
大数据框架安装功能来划分
1、海量数据存储:
HDFS、Hive(本质存储数据还是hdfs)、HBASE、ES
2、海量数据分析:
MapReduce、Spark、SQL
最原始的Hadoop框架
数据存储:HDFS(Hadoop Distributed File System)
数据分析:MapReduce
Hadoop的起源
Google的三篇论文
虽然Google没有公布这三个产品的源码,
但是他发布了这三个产品的详细设计论文,
奠定了风靡全球的大数据算法的基础!
Hadoop介绍
大数据绝大多数框架,都属于Apache顶级项目
http://apache.org/
hadoop官网:
http://hadoop.apache.org/
分布式
相对于【集中式】
需要多台机器,进行协助完成。
元数据:记录数据的数据
架构:
主节点Master 老大,管理者
管理
从节点Slave 从属,奴隶,被管理者
干活
- 1
- 2
- 3
- 4
- 5
- 6
Hadoop也是分布式架构
HDFS:
主节点:NameNode
决定着数据存储到那个DataNode上
从节点:DataNode
存储数据
**MapReduce:**
分而治之思想
将海量的数据划分为多个部分,每部分数据进行单独的处理,最后将所有结果进行合并
map task
单独处理每一部分的数据、
reduce task
合并map task的输出
**YARN:**
分布式集群资源管理框架,管理者集群的资源(Memory,cpu core)
合理调度分配给各个程序(MapReduce)使用
主节点:resourceManager
掌管集群中的资源
从节点:nodeManager
管理每台集群资源
**总结:Hadoop的安装部署**
都属于java进程,就是启动了JVM进程,运行服务。
HDFS:存储数据,提供分析的数据
NameNode/DataNode
YARN:提供程序运行的资源
ResourceManager/NodeManager