0%

Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。

  1. Spark是新一代内存级大数据计算框架,是大数据的重要内容。
  2. Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。
阅读全文 »

Flink头图

Apache Flink 是一个开源的流处理框架,具有强大的 流处理批处理 能力,主要由 Java 代码实现,支持使用 Java、Scala 和 Python 等语言开发。

Flink 的主要特性包括:批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。Flink 集成了所有常见的集群资源管理器,例如 Hadoop YARN、 Apache Mesos 和 Kubernetes,但同时也可以作为独立集群运行。

阅读全文 »

本项目主要解决 check 和 opinion2 张历史数据表(历史数据是指当业务发生过程中的完整中间流程和结果数据)的在线查询。原实现基于 Oracle 提供存储查询服务,随着数据量的不断增加,在写入和读取过程中面临性能问题,且历史数据仅供业务查询参考,并不影响实际流程,从系统结构上来说,放在业务链条上游比较重。本项目将其置于下游数据处理 Hadoop 分布式平台来实现此需求。下面列一些具体的需求指标:

  • 数据量:目前 check 表的累计数据量为 5000w+ 行,11GB;opinion 表的累计数据量为 3 亿 +,约 100GB。每日增量约为每张表 50 万 + 行,只做 insert,不做 update。
  • 查询要求:check 表的主键为 id(Oracle 全局 id),查询键为 check_id,一个 check_id 对应多条记录,所以需返回对应记录的 list; opinion 表的主键也是 id,查询键是 bussiness_no 和 buss_type,同理返回 list。单笔查询返回 List 大小约 50 条以下,查询频率为 100 笔 / 天左右,查询响应时间 2s。
阅读全文 »

HBase头图

HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java。它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为 Hadoop 提供类似于BigTable 规模的服务。因此,它可以对稀疏文件提供极高的容错率。

阅读全文 »

Spark SQL is Apache Spark’s module for working with structured data.

Spark SQL 是 Spark 用来处理结构化数据的一个模块,它提供了一个编程抽象叫作 DataFrame,并且作为分布式 SQL 查询引擎。

阅读全文 »

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将数据缓存在内存中,后续的查询能够重用这些数据,这极大地提升了查询速度。

阅读全文 »

Spark头图

Spark 是专为大规模数据处理而设计的快速通用的计算引擎。对比 Hadoop 的 MapReduce 会在运行完工作后将中间数据存放到磁盘中,Spark 可以将 Job 中间输出结果保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。

阅读全文 »

Impala头图

Impala 是 Cloudera 公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。

阅读全文 »

Sqoop_logo

Sqoop是一款开源的工具,主要用于在Hadoop的文件存储系统(HDFS、HIVE、HBASE)与传统的数据库(MySQL、Oracle)间进行数据的传递,可以将关系型数据库中的数据导进到Hadoop文件存储系统中,也可以将Hadoop文件存储系统中的数据导进到关系型数据库中。

阅读全文 »