大数据的框架及基础认识

学习大数据需要的基础
Java SE:
大数据技术框架中90%都是用Java语言写的。
MySQL:
SQL
Linux:
大数据技术框架都是部署在Linux系统上

需要学习什么

第一方面:大数据离线分析

  • Hadoop 2.x(Common、HDFS、MapReduce、Yarn):存储、分析
    环境搭建
    处理数据思想

  • Hive(数据库仓库):分析
    通过SQL语句对数据进行操作,SQL和MySQL的SQL基本一样

  • 协作框架:
    Sqoop:桥梁(HDFS <–> RDBMS )
    Flume:通过flume采集数据
    调度框架azkaban:
    Crontab(Linux自带)

  • Zookeeper:
    分布式应用程序协调服务

  • HBASE数据库:
    NOSQL数据库
    redis

  • 扩展前沿框架
    Impala
    游戏公司用的多,耗内存
    用来做数据分析
    ElasticSearch(ES)
    检索的框架
    相当于数据库,即可存储数据库,也可以检索数据

第二方面:大数据实时分析

Scala:OOP+FP
Spark Core、SQL、Streaming
Kafka:消息队列
前沿框架:Flink
第三方面:机器学习
Spark MLib

大数据框架按照功能划分

海量数据存储
HDFS、Hive(本质还是HDFS)、HBASE(底层依旧是HDFS)
海量数据分析
MapReduce、Spark 、Hive(SQL)

Hadoop起源
Google的3篇论文
GFS -> HDFS 文件系统,用来存储数据的
Mapreduce -> Mapreduce ,用于分析数据
bigTable ->Hbase 表,数据库,用来存储数据的

Hadoop最原始的功能
数据存储:HDFS
数据分析:mapReduce

hadoop介绍
Hadoop是Apache的顶级项目
http://hadoop.apache.org/
hadoop包含的模块

  • Hadoop Common: The common utilities that support the other Hadoop modules.
    公共的工具,为其他模块提供支撑的
  • Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.
  • HDFS是一个分布式文件系统,提供高吞吐量数据存储
  • Hadoop YARN: A framework for job scheduling and cluster resource management.
    是一框架,任务调度和集群资源管理
  • Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
    大数据集合的并行计算

分布式
相对于集中式
多台机器协作完成
架构:
主节点Master,老大,管理者
管理
从节点slave,小弟,努力,被管理者
干活的
集群:多个机器的群体,
集群和分布式的区别:
分布式一定是集群
集群不一定是分布式。
大数据的框架及基础认识_第1张图片
HDFS:存储数据

将数据划分为很多个块,默认一个块block(128MB),一个500M文件4块,每一个块存储3份,存储3份的好处,为了安全(空间换安全性)。
主节点:NameNode
决定数据存储在那个DataNode
管理元数据(那个机器存储了什么数据,索引)
管理所有从节点
从节点:DataNode
存储数据,管理数据(管理当前机器)

MapReduce
并行计算的框架
分而治之的思想
将海量的数据划分为 多个部分,每部分单独进行处理,最后将所有处理的结果进行合并
Map:MapTask
但对处理每一部分的数据
按照OOP思想,就是一个方法(map),在里面处理实际业务逻辑能力
Reduce:ReduceTask
合并MapTask输出的结果数据
按照OOP思想,就是一个方法(reduce),在里面处理实际业务逻辑能力
大数据的框架及基础认识_第2张图片
YARN
分布式集群资源管理和任务调度框架:管理各个机器的资源(cpu和内存),并且合理调度分配资源给各个程序使用(MapReduce程序的运行)
主节点:ResourceManager
管理子节点功能
相应客户端请求
任务调度
从节点:NodeManager
管理当前机器的资源

总结:
Hadoop框架安装部署
都属于Java进程,其实就是JVM基础,运行服务
HDFS
NameNode和DataNode
Yarn:
ResourceManager和NodeManager

  • 海量数据

存储数据
分析数据

  • 分布式

相对于集中式
集中式:所有的东西(软件)都放在一台机器上(安装)
分布式:多台机器,将东西进行划分,每台机器存放一部分
主从架构:
主节点:项目经理 管理者、调度者
从节点: 被管理者、干活的。

(1)分布式文件系统HDFS

主节点:NameNode
管理所有的从节点
管理元数据
相应请求:将文件划分Block进行存储(128MB、每个副本3份)
+
从节点:DataNode
管理存在DataNode运行所在这台机器 上的所有数据Block

(2)分布式集群资源管理Yarn

主节点:ResourceManager
管理所有的从节点
相应Client提交的请求
bin/yarn jar XX.jar
mainclass … 任务调度
+
从节点:NodeManager
管理Nodemanager运行所在机器上
资源(CPU、memory)

(3)MapReduce:并行处理框架

分而治之:将一个大的任务进行拆分,多个小任务并行运行,最后合并结果

你可能感兴趣的:(大数据,大数据)