大数据框架概念初级整合

大数据框架概念初级整合

Hadoop

  • Hadoop是一个适合海量数据的分布式存储和分布式计算平台。

  • Hadoop由HDFS,Map Reduce,Yarn三大组件组成。

    • HDFS是一个分布式文件系统
    • MapReduce是一个海量数据计算框架
    • Yarn是一个资源管理和任务调度框架
  • Hadoop由三大版本

    • Apache的原版
    • CDH(收费)
    • HDP(开源 ,Ambari)
  • Hadoop的特点

    • 扩容能力(Scalabel):能可靠地存储和处理PB级别的数据。如果数据量更大,存储不下了,再增加节点就可以了。
    • 成本低(Economical):可以通过普通机器组成的服务器集群来分发以及处理数据,这些服务器集群可达数千个节点。
    • 高效率(Efficient):通过分发计算程序Hadoop可以在数据所在节点上(本地)并行地处理他们,这使得处理非常迅速。
    • 可靠性(Reliable):Hadoop能够自动地维护数据的多分副本,并且在任务失败后能够自动地重新部署计算任务。
  • Hadoop版本 2.7.5

Redis

  • Redis是一种面向”键/值”对数据类型的内存数据库,可以满足我们对海量数据的快速读写需求。
    • redis的键只能是字符串类型
    • redis的值支持多种类型
      1. 字符串 string
      2. 哈希 hash
      3. 字符串列表 list
      4. 字符串集合 set 不重复,无序
      5. 有序集合sorted set,不重复,有序
  • Redis特点
    • 高性能: (Redis读的速度是11W次/s,写的速度是8.1W次/s)
      • 注意redis是一个单线程的服务
    • 原子性(保证数据的准确性)
    • 持久存储(两种方式RDB/快照,AOF/日志)
    • 主从结构(master-slave,负载均衡,高可用)
    • 支持集群(3.0版本开始支持)
  • Redis版本 3.2.0

Zookeeper

  • Zookeeper是一个分布式协调服务
  • Zookeeper提供的服务
    • 同步服务
    • 配置维护
    • 命名服务
  • Zookeeper特性
    • 全局数据一致性:每个zookeeper节点上展示的数据都是一致的。
    • 可靠性: 如果消息被一台服务器所接受,那么它将被所有服务器接受。
    • 原子性:事务要么成功,要么失败,不会局部化
    • 实时性:保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失败的消息。
  • zookeeper版本:3.4.9

Hive

  • Hive是一个基于Hadoop的数据仓库工具,可以把结构化的数据文件映射为一张数据表,提供类SQL查询功能。
  • Hive特点
    • 基于Hadoop的大数据计算/扩展能力
    • 支持类SQL查询语言
    • 统一的元数据管理
    • 简单编程
  • Hive版本:1.2.2

Flume

  • Flume是一个分布式、高可靠、高可用的系统,能够有效收集、聚合、移动大量的日志。
    1. 它有一个简单、灵活的基于流的数据流结构。
    2. 具有故障转移机制和负载均衡机制。
    3. 使用了一个简单的可扩展的数据模型(Source、Channel、Sink)。
  • Agent是一个持续传输数据的服务
    • 主要组件包含:Source、Channel、Sink
  • 数据在组件传输的单位是Event。
  • Flume版本:1.8.0

Kafka

  • Kafka是一个消息队列。它具有高吞吐量,持久性,和分布式的特性。
    • 高吞吐量:Kafka消息是基于磁盘顺序读写的,磁盘顺序读写的速度比内存随机读写的速度快。
    • 持久性:Kafka有一套完善的消息存储机制,确保数据的高效安全的持久化。(数据默认存储7天)
    • 分布式:基于分布式的扩展和容错机制:Kafka的数据都会复制到几台服务器上。当某一台失效时,生产者和消费者转而使用其他的机器。
  • Kafka版本:2.11-0。11.0.3(scala版本是2.11)

Sqoop

  • Sqoop 是一款开源工具,主要用于在Hadoop(Hive)与传统的数据库(Mysql。。)进行数据传递,可以将一个关系型数据库中的数据导进到HDFS中,也可以将HDFS的数据导进到关系型数据库中。
    • 导入
      • mysql–>hdfs
      • mysql–>hive
      • mysql–>hbase
    • 导出
      • hdfs–>mysql
      • hive–>hdfs–>mysql
      • hbase–>hive–>hdfs
  • Sqoop版本:1.4.7

Hbase

  • Hbase是一个Hadoop DataBase 。Hbase是一个not only sql ,它是键值存储数据库,列式存储数据库。
  • Hbase特点
    • 高可靠性:依赖于Hadoop的分布式特性和副本机制
    • 高性能:依赖于Hadoop的MapReduce
    • 可伸缩:依赖于Hadoop的分布式特性
    • 面向列:Habse是按列存储的
  • Hbase版本:1.2.6

Storm

  • Storm是Twitter开源的一个实时数据计算处理框架,能实现高频数据和大规模数据的实时处理。
  • Storm的组件
    • Topology:用于封装一个实时计算应用程序的逻辑,类似Hadoop的MapReduce Job
    • Stream消息流:是一个没有边界的Tuple序列,这些Tuples会被以一种分布式的方式并行地创建和处理。
    • Spouts消息源,是数据生产者,它会从另一个外部源读取数据并向topology里面发出消息:tuple
    • Bolts消息处理者,所有的消息处理逻辑被封装在bolts里面,处理输入的数据流并产生新的输出数据流,可执行过滤,聚合,查询数据库等操作。
  • Storm的特点:
    • 分布式
    • 容错的
    • 实时处理
    • 流式处理
    • 无数据丢失
  • Storm版本:1.0.6

Scala

  • Scala是一门多范式的编程语言,类似java编程语言,是实现可伸缩的语言,集成面向对象编程和函数式编程的各种特性。
  • Scala是基于JVM的一门语言,所有的scala代码都需要经过编译为字节码,安徽交由java虚拟机来运行。
  • Scala可以任意调用Java代码。
  • Scala版本:2.11.12

Spark

  • Spark是一种通用的大数据计算框架,期望使用一个技术堆栈完美解决大数据领域的各种计算任务。通用的大数据快速处理引擎。
  • Spark的组件
    • Spark Core :用于离线计算
    • Spark SQL:用于交互式查询
    • Spark Streaming: 用于实时流计算
    • Spark MLlib:用于机器学习
    • Spark GraphX: 用于图计算
  • Spark特点
    • 速度快:基于内存计算
    • 容易开发上手:基于RDD的计算模型比Hadoop基于MapReduce的计算模型更加易于理解易于上手开发。
    • 超强的通用性:提供了Spark RDD,Spark SQL,Spark Streaming ,Spark MLlib,Spark GraphX等技术组件,可以一站式完成大数据领域的离线批处理、交互式查询、流式计算、机器学习、图计算等常见任务。
    • 集成Hadoop:Spark和Hadoop进行了高度的集成。Hadoop的HDFS、Hbase负责存储,Yarn负责资源调度,Spark负责复杂大数据计算。
  • Spark版本:2.1.3

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×