大数据学习框架

Hadoop生态圈
这里写图片描述
一 ,采集,数据从哪里来?主要包括flume等;

一 ,存储,海量的数据怎样有效的存储?主要包括hdfs、Kafka;

二,计算,海量的数据怎样快速计算?主要包括MapReduce、Spark、storm等;

三,查询,海量数据怎样快速查询?主要为Nosql和Olap,Nosql主要包括Hbase、 Cassandra 等,其中olap包括kylin、impla等,其中Nosql主要解决随机查询,Olap技术主要解决关联查询;

四,挖掘,海量数据怎样挖掘出隐藏的知识?也就是当前火热的机器学习和深度学习等技术,包括TensorFlow、mahout、spark等;

Apache Ambari是一种基于Web的工具,界面友好,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop等,可用于生产环境。
这里写图片描述

学习路线:
这里写图片描述

1、Hadoop是一个能够对大量数据进行分布式处理的软件框架,他以一种可靠、高效、可伸缩的方式进行数据处理。具有高可靠性、高扩展性、高效性、高容错性、低成本的特点。
这里写图片描述
2、Hadoop hdfs–分布式文件系统
将文件分成多个block,分散存储到不同的节点上,并提供多副本,保证数据容错性能。

  • 主从结构

    • 主节点,可以有2个: namenode
    • 从节点,有很多个: datanode
  • namenode负责:管理整个集群。维护文件系统的目录结构

  • datanode负责:存储文件
    这里写图片描述
    3、Hadoop yarn–资源的调度和管理平台
    集中管理集群的整个计算资源,以container的形式进行资源分配。

  • 主从结构

    • 主节点,可以有2个: ResourceManager
    • 从节点,有很多个: NodeManager
  • ResourceManager负责:集群资源的分配与调度MapReduce、Spark等应用,必须实现
  • NodeManager负责:单节点资源的管理
    这里写图片描述
    4、Hadoop mapreduce
    由两个阶段组成:Map和Reduce,Map阶段每个节点处理自己节点的数据。
    Reduce阶段不同节点间进行数据交换,并进行聚合计算。
    这里写图片描述
    5、zookeeper
    这里写图片描述
    (1) ZooKeeper是什么?
    ZooKeeper是 Hadoop 的分布式协调服务,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

    (2) ZooKeeper提供了什么?

    • 文件系统:每个子目录项如 NameService 都被称作为znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。
      有四种类型的znode:

      • PERSISTENT-持久化目录节点
        客户端与zookeeper断开连接后,该节点依旧存在

      • PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点
        客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号

      • EPHEMERAL-临时目录节点
        客户端与zookeeper断开连接后,该节点被删除

      • EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点
        客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号

    • 通知机制:客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

(3) Zookeeper做了什么?

  • 命名服务
  • 配置管理
  • 集群管理
  • 分布式锁
  • 队列管理

6、hive
基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

底层数据存储在哪? hdfs
元数据存储在哪? Mysql、derby等数据库
如何执行? Hive的解释器、编译器、优化器完成 HQL 语句从词法分析、语法分析、编译、优化,生成MapReduce 任务在hadoop上运行
用户接口主要有三个:CLI,JDBC/ODBC和 WebUI

  • CLI,即Shell命令行
  • JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似
  • WebGUI是通过浏览器访问 Hive

7、hbase
HBase是一个分布式的、面向列的开源数据库
高可靠性、高性能、面向列、可伸缩,底层数据存在hdfs中
处理非常庞大的表, 适合处理1亿条或者10亿条以及以上条记录或者有百万个列的数据库。
这里写图片描述
8、flume
Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。
这里写图片描述
flume是分布式的日志收集系统,它将各个服务器中的数据收集起来并送到指定的地方去比如说送到图中的HDFS,简单来说flume就是收集日志的。同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

  • flume的架构主要有一下几个核心概念:
    Event:一个数据单元,带有一个可选的消息头
    Flow:Event从源点到达目的点的迁移的抽象
    Client:操作位于源点处的Event,将其发送到Flume Agent
    Agent:一个独立的Flume进程,包含组件Source、Channel、Sink
    Source:用来消费传递到该组件的Event
    Channel:中转Event的一个临时存储,保存有Source组件传递过来的Event
    Sink:从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下一个Agent(如果有的话)

  • flume 常用结构
    这里写图片描述
    这里写图片描述
    这里写图片描述
    9、Spark
    Apache Spark™ 是一个通用的快速的大数据处理引擎.

  • 速度快:
    号称基于内存的运算速度比mapreduce快100倍以上,
    基于磁盘的运算速度比mapreduce快10倍以上

  • 使用简单:
    可以使用scala,java,python,R

  • 通用性强:
    支持批处理spark core,流式处理spark streaming,spark sql, machine learning,GraphX

  • 随处运行
    Spark具有很强的适应性,能够读取HDFS、HBase、 Cassandra、 S3和Techyon为持久层读写原生数据,能够以Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成Spark应用程序的计算。
    这里写图片描述
    (1) Spark 基本原理(Map reduce思想)
    这里写图片描述
    每个节点的map任务读取本地数据,按照key进行分类,reduce任务拉取相同key的数据,并进行统计聚合。

(2) Spark 运行模式

  • Local 模式
    是用单机的多个线程来模拟Spark分布式计算,通常用来验证开发出来的应用程序逻辑上有没有问题。
  • Standalone 模式
    Spark自己提供独立的集群,主节点master,从节点worker,使用前需要启动spark集群,不受Hadoop yarn对资源的约束。
  • yarn 模式
    需要 Hadoop的yarn来分配资源,受yarn的约束,适用于生产环境。

10、kafka
Kafka 是一个高吞吐量的、持久性的、分布式发布订阅消息系统。
这里写图片描述
典型的生产消费模式,生产者向主题中发送消息消费者订阅主题消费消息。
应用场景:实时性较高的场合,比如流式处理,经典用法kafka+storm、kafka+sparkStreaming

11、Storm
Storm可以实现高频数据和大规模数据的实时处理不同于spark streaming 的微批处理,storm可以根据进来的每一条数据进行实时处理,实时性能非常高。
这里写图片描述

  • Nimbus,主节点,负责在集群里面发送代码,分配工作给机器,并且监控状态。全局只有一个。
  • Zookeeper是Storm重点依赖的外部资源。负责Nimbus和多个Supervisor之间的所有协调工作。
  • Supervisor,从节点,会监听分配给它那台机器的工作,根据需要启动/关闭工作进程Worker。
  • Worker,工作进程,它会启动很多线程来运行我们的任务。

转载于:https://blog.csdn.net/kan2281123066/article/details/81260198

让天下没有难做的大数据模型!功能下面是弥勒佛框架解决的问题类型,括号中的斜体代表尚未实现以及预计实现的时间监督式学习:最大熵分类模型(max entropy classifier),决策树模型(decision tree based models,2014 Q1)非监督式学习:聚类问题(k-means,2014 Q1)在线学习:在线梯度递降模型(online stochastic gradient descent)神经网络(2014 Q2/3)项目实现了下面的组件多种数据集(in-mem,skip)多种评价器(precision,recall,f-score,accuracy,confusion)和交叉评价(cross-validation)多种优化器:协程并发L-BFGS,梯度递降(batch, mini-batch, stochastic),带退火的学习率(learning rate),L1/L2正则化(regularization)稀疏向量(sparse vector)以存储和表达上亿级别的特征特征辞典(feature dictionary)在特征名和特征ID之间自动翻译    现有的机器学习框架/软件包存在几个问题:无法处理大数据:多数Python,Matlab和R写的训练框架适合处理规模小的样本,没有为大数据优化。不容易整合到实际生产系统:standalone的程序无法作为library嵌入到大程序中。模型单一:一个软件包往往只解决一个类型的问题(比如监督式或者非监督式)。不容易扩展:设计时没有考虑可扩展性,难以添加新的模型和组件。代码质量不高:代码缺乏规范,难读懂、难维护。    弥勒佛项目的诞生就是为了解决上面的问题,在框架设计上满足了下面几个需求:处理大数据:可随业务增长scale up,无论你的数据样本是1K还是1B规模,都可使用弥勒佛项目。为实际生产:模型的训练和使用都可以作为library或者service整合到在生产系统中。丰富的模型:容易尝试不同的模型,在监督、非监督和在线学习等模型间方便地切换。高度可扩展:容易添加新模型,方便地对新模型进行实验并迅速整合到生产系统中。高度可读性:代码规范,注释和文档尽可能详尽,适合初学者进行大数据模型的学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值