大数据的基本任务有数据的存储、计算、查询分析和挖掘,这些任务往往需要多台计算机共同调度才能完成。大数据时代,数据变成一种生成资料,其价值也提升到了新的高度。随着各行各业的数据化,使得数据逐步形成数据资产,利用大数据技术可以更好地让数据资产价值化。当前越来越多的企业管理决策都转变成以数据为驱动的大数据辅助决策。

主要介绍的知识点有:

  • 大数据概述:介绍大数据相关的概念和特征
  • 大数据分析工具:介绍当前大数据生态系统下的常见分析工具

Part1 什么是大数据

大数据(Big Data),是一个IT行业术语,是指无法在一定时间范围内用单机软件工具进行捕捉、管理和处理的数据集合,它需要使用分布式模式才能处理,其数据具有数量大、来源广、价值密度低等特征。

至于什么数据量算得上大数据,这个也没有一定的标准,一般来说,单机难以处理的数据量,就可以称得上大数据。

大数据时代,分布式的数据存储和查询模式可以对全量数据进行处理。举例:以前DNA和指纹数据库的建立,由于信息技术水平的限制,只能重点采集并存储部分人口的DNA和指纹数据,这种限制对于很多案件的侦破是非常不利的。

进入大数据时代后,从理论上来讲,采集并存储全球人口的DNA和指纹信息是可行的。因此,建立全量的DNA和指纹数据库,这对DNA和指纹数据的对比工作来说,具有非常大的价值。

以前我们的研究问题,主要研究几个要素之间的因果关系,而在大数据时代,更多的是对几个要素之间相关性进行分析。基于大数据的推荐系统,可能比你自己都要了解你自己。这也是在大数据时代人类越来越关心个人隐私信息的安全问题的原因。

相关性分析是寻找因果关系的利器。可以说相关分析和因果分析是相互促进的。如果多个因素之间有明显的相关性,那么就可以进一步研究其因果关系。

大数据的价值就在于从海量数据中,通过机器学习算法自动搜索多个因素之间的相关性,这些相关性可以大大减少人工搜寻的时间。人工从海量数据中往往很难发现多个因素之间的相关性,而这恰恰是机器学习比较擅长的领域。

Part 1.1 大数据的特点

Part 1.1.1 Volume(大量)

大数据场景下,对数据的采集、计算和存储所设计的数量是非常庞大的,数据量往往多到单台计算机无法处理和存储,必须借助多台计算机构建的集群来分布式处理和存储。

分布式存储要保证数据存储的安全性。如果某一个节点上的数据损坏,那么必须从其他节点上对损坏节点上的数据进行自动修复,这个过程中就需要数据的副本,同一份数据会复制多份,并分布式存储到不同的节点上。

如果不借助大数据工具,自己实现一个分布式文件系统,那么其工作量非常大。因此对于大数据的处理和存储来说,更好的方案就是选择一款开源的分布式文件系统。

Part 1.1.2 Velocity(高速)

大数据系统可以借助分布式集群构建的强大计算力,对海量数据进行快速处理。若处理数据的响应时间能到秒级,甚至毫秒级,那么其价值将非常大。实时大数据的处理,也是目前众多大数据工具追求的一个重要能力。

Part 1.1.3 Variety(多样)

数据的载体多种多样,一般来说,可以分为结构化数据、非结构化数据和半结构化数据。其中很多业务数据都属于结构化数据,而视频、音频和图像等都可划分为非结构化数据。在大数据时代下,非结构化数据从数量上来说占了大部分。因此,对视频、音频、图像和自然语言等非结构化数据的处理,也是当前大数据工具要攻克的重点。

Part 1.1.4 Value(低价值密度)

大数据首先是数据量庞大,一般来说,都是PB级别的。但是在特定场景下,真正有用的数据可能较少,即数据价值密度相对较低。但是存储过程这些数据非常重要,其中部分数据对于特定场景会起到至关重要的作用。

Part 1.1.5 Veracity(真实性)

大数据场景下,由于数据来源的多样性,互相可以验证,因此数据的真实性往往比较高。这里说的真实性,是指数据的准确性和及时性。数据的真实性也是大数据可以形成数据资产的一个重要前提,只有真实、可信的数据才能挖掘出有用的价值。

大数据由于具有如上的特点,这就对大数据信息化软件提出了非常高的要求。一般的软件系统是无法很好的处理大数据的。从技术上看,大数据与云计算密不可分。大数据无法用单台计算机进行存储和处理,而必须采用分布式架构,即必须依托云计算提供的分布式存储和计算能力。

Part 1.2 大数据的发展趋势

Part 1.2.1 大数据是一种生产资料

目前人类已经步入数字经济时代,大数据是非常重要的一种生产资料,与土地、石油等资源作为重要的生产资料类似,数字经济时代以大数据作为最基础也是最重要的生产资料。

在大数据时代,信息的载体是数据。对于数据的分析与挖掘来说,其实质是生产各类信息产品,这些信息产品可以看作是一种数字商品,是可以产生实际价值的资产。若将大数据比作土地,那么基于大数据分析和挖掘出的信息产品,就好比在土地上种植出来的各种农产品。

Part 1.2.2 与物联网和5G的融合

大数据的基础是数据,而产生数据的源头更多是来自物联网和5G。物联网、移动互联网和5G等新兴技术,将进一步助力大数据的发展,让大数据为企业管理决策和政府决策提供更多的价值。特别是5G技术的推广,将进一步提升大数据的应用。

Part 1.2.3 大数据理论的突破

随着5G的发展,大数据很可能爆发新一轮的技术革命。人类处理信息往往借助视频、图像和声音(语言),因此大数据技术目前正在与机器学习、人工智能等相关技术进行深度结合,在视频、图像和语音的处理上,必须在理论上继续突破,才可能实现科学技术上的突破。视频中的行为检测、图像物体识别和语音识别等应用会产生极大的经济效益和社会效益。

Part 1.2.4 数据公开和标准化

数据作为一种重要的资产,只有流动起来才能更好地发挥价值。数据在流转的过程中,数据的标准化非常重要,这样才能打破信息孤岛,从而更多地让数据产生价值。

Part 1.2.5 数据安全

大数据中涉及各类数据,其中难免有敏感的数据,数据在流转过程中,如何对敏感数据进行加密和脱敏,这将至关重要。因此,大数据应用必须充分考虑数据安全的问题。

Part 2 大数据下的分析工具

大数据技术首先需要解决的问题是如何高效、安全地存储:其次是如何高效、及时地处理海量的数据,并返回有价值的信息;最后是如何通过机器学习算法,从海量数据中挖掘出潜在的价值,并构建模型,以用于预测预警。

当今大数据的基石,来源于谷歌公司的三篇论文,这三篇论文主要阐述了谷歌公司对于大数据问题的解决方案。这三篇论文分别是:

  • Google File System
  • Google MapReduce
  • Google BigTable

其中,Google File System主要解决大数据分布式存储的问题,Google MapReduce 主要解决大数据分布式计算的问题,Google Bigtable主要解决大数据分布式查询的问题。

值得注意的是,当前每个大数据工具都专注于解决大数据领域的特定问题,很少有一种大数据工具可以一站式解决所有的大数据问题。因此,一般来说,大数据应用需要多种大数据工具相互配合,才能解决大数据相关的业务问题。

大数据工具非常多,常用的只有10多种,这些大数据工具重点解决的大数据领域各不相同:

  • 分布式存储:主要包含Hadoop HDFS和Kafka等。
  • 分布式计算:包括批处理和流计算,主要包含Hadoop MapReduce、Spark和Flink等。
  • 分布式查询:主要包括Hive、HBase、Kylin、Impala等。
  • 分布式挖掘:主要包括Spark ML和Alink等。

据中国信通院企业采购大数据软件调研报告来看,86.6%的企业选择基于开源软件构建自己的大数据处理业务,下面重点介绍大数据常用的几种分析工具。

Part 2.1 Hadoop

Hadoop是一个由Apache基金会开发的分布式系统基础架构,源于论文Google File System。Hadoop工具可以让用户在不了解分布式底层细节的情况下,开发分布式程序,从而大大降低数据程序的开发难度。它可以充分利用计算机集群构建的大容量、高计算能力来对大数据进行存储和计算。

在大数据刚兴起之时,Hadoop可能是最早的大数据工具,它也是早期大数据技术的代名词。时至今日,虽然大数据工具种类繁多,但是不少工具的底层分布式文件系统还是基于Hadoop的HDFS(Hadoop Distributed File System)。

Hadoop框架前期最核心的组件有两个,即HDFS和MapReduce。后期又加入了YARN组件,用于资源调度。其中HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了分布式计算能力。

HDFS有高容错性的特点,且支持在低廉的硬件上进行部署,而且Hadoop访问数据的时候,具有很高的吞吐量,适合那些有着超大数据集的应用程序。

可以说,Hadoop工具是专为离线和大规模数据分析而设计的,但它并不适合对几个记录随机读写的在线事务处理模式。Hadoop软件是免费开源的,官网地址为http://hadoop.apache.org.

注意:目前来说,Hadoop工具不支持数据的部分update操作,因此不能像关系型数据库那样,可以用SQL来更新部分数据。

Part 2.2 Hive

对于数据的查询和操作,一般开发人员熟悉的是SQL语句,但是Hadoop不支持SQL对数据的操作,而是需要用API来进行操作,这个对于很多开发人员来说并不友好。因此,很多开发人员期盼能用SQL语句来查询Hadoop种的分布式数据。

Hive工具基于Hadoop组件,可以看作是一个数据仓库分析系统,Hive提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据。

Hive可以将结构化的数据文件映射为一张数据表,这样就可以利用SQL来查询数据。本质上,Hive是一个翻译器,可以将SQL语句翻译为MapReduce任务运行。

Hive SQL使不熟悉MapReduce的开发人员可以很方便地利用SQL语言进行数据的查询、汇总和统计分析。但是Hive SQL与关系型数据库的SQL略有不同,虽然它能支持绝大多数的语句,如DDL、DML以及常见的聚合函数、连接查询和条件查询等。

Hive还支持UDF(User-Defined Function,用户定义函数),也可以实现对map和reduce函数的定制,为数据操作提供了良好的伸缩性和可扩展性。Hive不适用于联机事务处理,也不适合实时查询功能。它最适应应用在基于大量不可变数据的批处理作业。Hive的特点包括:可伸缩、可扩展、容错、输入格式的松散耦合。Hive最佳使用场合是大数据集的批处理作业,例如网络日志分析。官网网址为http://hive.apache.org。

注意:目前来说,Hive种的SQL支持度有限,只支持部分常用的SQL语句,且不适合update操作去更新部分数据,即不适合基于行级的数据更新操作。

Part 2.3 HBase

HBase工具是一个分布式的、面向列的开源数据库,该技术来源于Google BigTable的论文。它在Hadoop之上提供了类似于Google BigTable的能力。HBase不同于一般的关系数据库,它是一个适合存储非结构化数据的数据库,且采用了基于列而不是基于行的数据存储模式。

HBase在很多大型互联网公司得到应用,HBase适用场景有:

  • 密集型写应用:写入量巨大,而相对读数据量较小的应用,比如消息系统的历史消息,游戏的日志等。
  • 查询逻辑简单的应用:HBase只支持基于rowkey的查询,而像SQL种的join等查询语句,它并不支持。
  • 对性能和可靠性要求非常高的应用:由于HBase本身没有单点故障,可用性非常高。它支持在线扩展节点,即使应用系统的数据在一段时间内呈井喷式增长,也可以通过横向扩展来满足功能要求。

HBase读取速度快得益于内部使用了LSM树型结构,而不是B或B+树。一般来说,磁盘的顺序读取速度很快,但相对而言,寻找磁道的速度就要慢很多。HBase的存储结构决定了读取任意数量的记录不会引发额外的寻道开销。官网地址为http://hbase.apache.org。

注意:目前来说,HBase不能基于SQL来查询数据,需要使用API。

Part 2.4 Apache Phoenix

Hive是构建在Hadoop之上,可以用SQL对Hadoop中的数据进行查询和统计分析。同样地,HBase原生也不支持用SQL进行数据查询,因此使用起来不方便,比较费力。

Apache Phoenix是构建在HBase数据库之上的一个SQL翻译层。它本身用Java语言开发,可作用HBase内嵌的JDBC驱动。Apache Phoenix引擎会将SQL语句翻译为一个或多个HBase扫描任务,并编排执行以生产标准的JDBC结果集。

Apache Phoenix提供了用SQL对HBase数据库进行查询操作的能力,并支持标准SQL中大部分特性,其中包括条件运算、分组、分页等语法,因此降低了开发人员操作HBase当中的数据的难度,提高了开发效率。官网地址为http://phoenix.apache.org。

Part 2.5 Apache Drill

Apache Drill是一个开源的、低延迟的分布式海量数据查询引擎,使用ANSI SQL兼容语法,支持本地文件、HDFS、HBase、MongoDB等后端存储,支持Parquet、JSON和CSV等数据格式。本质上Apache Drill是一个分布式的大规模并行处理查询层。

它是Google Dremel工具的开源实现,而Dremel是Google的交互式数据分析系统,性能非常强悍,可以处理PB级别的数据。

Google开发的Dremel工具,在处理PB级数据时,可将处理时间缩短到秒级,从而作为MapReduce的有利补充。它作为Google BigQuery的报表引擎,获得了很大的成功。Apache Drill的官网地址为https://drill.apache.org。

Part 2.6 Apache Hudi

Apache Hudi代表Hadoop Upserts and Incrementals,由Uber开发并开源。它基于HDFS数据存储系统之上,提供了两种流原语:插入更新和增量拉取。它可以很好地弥补Hadoop和Hive对部分数据更新的不足。

Apache Hudi工具提供两个核心功能:首先支持行级别的数据更新,这样可以迅速地更新历史数据;其次是仅对增量数据的查询。Apache Hudi提供了对Hive、Presto和Spark的支持,可以直接使用这些组件对Hudi管理的数据进行查询。

Hudi的主要目的是高效减少数据摄取过程中的延迟。HDFS上的分析数据集通过两种类型的表提供服务:

  • 读优化表(Read Optimized Table):通过列式存储提高查询性能。
  • 近实时表(Near-Real-Time Table):基于行的存储和列式存储的组合提供近实时查询。

Hudi的官网地址为https://hudi.apache.org。

Part 2.7 Apache Kylin

Apache Kylin是数据平台上的一个开源OLAP引擎。它采用多维立方体预计算技术,可以将某些场景下的大数据SQL查询速度提升到亚秒级别。值得一提的是,Apache Kylin是国人主导的第一个Apache顶级开源项目,在开源项目有较大的影响力。

它的查询速度如此之快,是基于预先计算尽量多的聚合结果,在查询时应该尽量利用预先计算的结果得出查询结果,从而避免直接扫描超大的原始记录。

使用Apache Kylin主要分为三步:

  1. 首先,定义数据集上的一个星型或雪花型模型。
  2. 其次,在定义的数据表上构建多维立方。
  3. 最后,使用SQL进行查询。

Apache Kylin的官网地址为http://kylin.apache.org。

Part 2.8 Apache Presto

Apache Presto 是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。它的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。

Presto支持多种数据存储系统,包括Hive、Cassandra和各类关系数据库。Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。

国内的京东和国外的Facebook都使用Presto进行交互式查询。Apache Presto的官网地址为 https://prestodb.io。

Part 2.9 ClickHouse

Yandex在2016年6月15日开源了一个用于数据分析的数据库,名字叫作ClickHouse,这个列式存储数据库的性能要超过很多流行的商业MPP数据库软件,例如Vertica。

Clickhouse的具体特点如下:

  • 面向列的DBMS
  • 数据高效压缩
  • 磁盘存储的数据
  • 多核并行处理
  • 在多个服务器上分布式处理
  • SQL语法支持
  • 向量化引擎
  • 实时数据更新
  • 索引支持
  • 适合在线查询
  • 支持近似预估计算
  • 支持嵌套的数据结构
  • 数据复制和对数据完整性的支持。

ClickHouse的官网地址为https://clickhouse.tech。

Part 2.10 Apache Spark

Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。开源的通用并行框架。它不同于Hadoop MapReduce,计算任务中间输出结果可以保存在内存中,而不再需要读写HDFS,因此Spark计算速度更快,也能更好地适用于机器学习等需要迭代的算法。

Apache Spark是由Scala语法开发的,可以与Java程序一起使用。它能够像操作本地集合对象一样轻松地操作分布式数据集。它具有运行速度快、易用性好、通用性强和随处运行等特点。

Apache Spark提供了Java、Scala、Python以及R语言的API。还支持更高级的工具,如Spark SQL、Spark Streaming、Spark MLlib和Spark GraphX等。

Apache Spark主要有如下几个特点:

  • 非常快的计算速度:它主要在内存中计算,因此在需要反复迭代的算法上,优势非常明显,比Hadoop快100倍。
  • 易用性:他大概提供了80多个高级运算符,包括各种砖和、聚合等操作。这相对于Hadoop组件中提供的map和reduce两大类操作来说,丰富了很多,因此可以更好地适应复杂数据的逻辑处理。
  • 通用性:它除了自身不带数据存储外,其他大数据常见的业务需求,比如批处理、流处理、图计算和机器学习等都有对应的组件。因此,开发者通过Spark提供的各类组件,如Spark SQL、Spark Streaming、Spark MLlib和Spark GraphX等,可以在同一个应用程序中无缝组合使用这些库。
  • 支持多种资源管理器:它支持Hadoop YARN、Apache Mesos,以及Spark自带的Standalone集群管理器。

Spark的官网地址为http://sparkapache.org。

Part 2.11 Apache Flink

Apache Flink是一个计算框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算,该框架完全由Java语言开发,也是国内阿里巴巴主推的一款大数据工具。其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。基于流执行引擎,Flink提供了诸多更高抽象层的API,以便用户编写分布式任务。

  • DataSet API:对静态数据进行批处理操作,将静态数据抽象成分布式的数据集,用户可以方便地使用Flink提供的各种操作符,对分布式数据集进行处理。
  • DataStream API:对数据流进行流处理操作,将流式的数据抽象成分布式的数据流,用户可以方便地对分布式数据流进行各类操作。
  • Table API:对结构化数据进行查询操作,将结构化数据抽象成关系表,并通过类SQL的语句对关系表进行各种查询操作。

Apache Flink的官网地址为http://flink.apache.org。

Part 2.12 Apache Storm

Apache Storm是开源的分布式实时计算系统,擅长处理海量数据,适用于数据实时处理而非批处理。Hadoop或者Hive是大数据中进行批处理使用较为广泛的工具,这也是Hadoop或者Hive的强项。但是Hadoop MapReduce并不擅长实时计算,这是Hadoop或者Hive的强项。但是Hadoop MapReduce并不擅长实时计算,这也是业界一致的共识。

当前很多业务对于实时计算的需求越来越强烈,这也是Storm推出的一个重要原因。Apache Storm的官网地址为 http://storm.apache.org。

注意:随着Spark和Flink对于流数据的处理能力增强,目前不少实时大数据处理分析都从Storm迁移到Spark和Flink上,从而降低了维护成本。

Part 2.13 Apache Druid

Apache Druid是一个分布式的、支持实时多为OLAP分析的数据处理系统。它即支持高速的数据实时摄入处理,也支持实时且灵活的多维数据分析查询。因此他最常用的大数据场景就是灵活快速的多维OLAP分析。

另外,它支持根据时间戳对数据进行预聚合摄入和聚合分析,因此也经常用于对时序数据进行处理分析。

Apache Druid的主要特性如下:

  • 亚秒响应的交互式查询,支持较高并发。
  • 支持是是导入,导入即可被查询,支持高并发导入。
  • 采用分布式shared-nothing的架构,可以扩展到PB级。
  • 数据查询支持SQL。

Apache Druid的官网地址为http://druid.apache.org。

注意:目前Apache Druid不支持精确去重,不支持Join和根据主键进行单条记录更新。同时,需要与阿里开源的Druid数据库连接池区别开来。

Part 2.14 Apache Kafka

Apache Kafka是一个开源流处理平台,它的目标是为处理实时数据提供一个统一、高通量、低等待的平台。Apache Kafka最初由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。在非常多的实时大数据项目中,都能见到Apache Kafka的身影。

Apache Kafka不仅仅是一个消息系统,主要用于如下场景:

  • 发布和订阅:类似一个消息系统,可以读写流式数据。
  • 流数据处理:编写可扩展的流处理应用程序,可用于实时事件响应的场景。
  • 数据存储:安全地将流式的数据存储在一个分布式、有副本备份且容错的集群。

它的一个重要特点是可以作为连接各个子系统的数据管道,从而构建实时的数据管道和流式应用。它支持水平扩展,且具有高可用、速度快的优点,已经运行在成千上万家公司的生产环境中。Apache Kafka的官网地址为http://kafka.apache.org。

注意:某种程度上来说,很多实时大数据系统已经离不开Kafka,他充当一个内存数据库,可以快速地读写流数据。

Part 2.15 TensorFlow

TensorFlow最初由谷歌公司开发,用于机器学习和深度神经网络方面的研究,它是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,包含各种工具、库和社区资源,可助力研究人员推动先进的机器学习技术的发展,并使用开发者能够轻松地构建和部署由机器学习提供支持的应用。

TensorFlow的特征如下:

  • 轻松地构建模型:它可以使用API轻松地构建和训练机器学习模型,这时的我们能够快速迭代模型并轻松地调试模型。
  • 随时随地进行可靠的机器学习生产:它可以在CPU和GPU上运行,可以运行在台式机、服务器和手机移动端等设备上。无论使用哪种语言,都可以在云端、本地、浏览器中或设备上轻松地训练和部署模型。
  • 强大的研究实验:现在科学家可以用它尝试新的算法,产品团队则用它来训练和使用计算模型,并直接提供给在线用户。

TensorFlow的官网地址为https://tensorflow.google.cn。

Part 2.16 PyTorch

PyTorch的前身是Torch,其底层和Torch框架一样,但是使用Python重新写了很多内容,不仅更加灵活,支持 动态图,而且还提供了Python接口。

它是一个以Python优先的深度学习框架,能够实现强大的GPU加速,同时还支持动态神经网络,这是很多主流深度学习框架比如TensorFlow等都不支持的。

PyTorch是相当简洁且高效的框架,从操作上来说,非常符合我们的使用习惯,这能让用户尽可能地专注于实现自己的想法,而不是算法本身。PyTorch是基于Python的,因此入门也更加简单。PyTorch的官网地址为https://pytorch.org。

Part 2.17 Apache Superset

前面介绍的大数据工具,主要涉及大数据的存储、计算和查询,也涉及大数据的机器学习。但是这些数据的查询和挖掘结果如何直观地通过图表展现到UI上,以辅助更多的业务人员进行决策使用,这也是一个非常重要的课题。

Apache Superset是由Airbnb开源的数据可视化工具,目前属于Apache孵化器项目,主要用于数据可视化工作。分析人员可以不用直接写SQL语句,而是通过选择指标、分组条件和过滤条件,即可绘制图表,这无疑降低了它的使用难度。它在可视化方面做得很出色,是开源领域中的佼佼者。

Apache Superset的官网地址为http://superset.spache.org。

注意:与Apache Superset类似的还有开源的Metabase,官网地址为https://www.metabase.com。

Part 2.18 Elasticsearch

Elasticsearch是一个开源的、分布式的、提供Restful API的搜索和数据分析引擎,它的底层是开源库Apache Lucene。它使用Java编写,内部采用Lucene做索引与搜索。它的目标是使全文检索变得更加简单的。

Elasticsearch具有如下特征:

  • 一个分布式的实施文档存储
  • 一个分布式实时分析搜索引擎
  • 能横向扩展,支持PB级别的数据。

Elasticsearch的官网地址为https://www.elastic.co/cn/。

注意:Elasticsearch中涉及的数据可以用Kibana实现数据可视化分析。

Part 2.19 Jupyter Notebook

Jupyter Notebook是一个功能非常强大的Web工具,不仅仅用于大数据分析。它的前身是IPython Notebook,是一个基于Web的交互式笔记本,支持40多种编译语言。

它的本质是一个Web应用程序,便于创建和共享程序文档,支持实时代码、数学方程、可视化和Markdown。它主要用于数据清理和转换、数值模拟、统计建模、机器学习等。

Jupyter Notebook的官网地址为https://jupyter.org

Part 2.20 Apache Zeppelin

Apache Zeppelin和Jupyter Notebook类似,是一个提供交互式数据分析且基于Web的笔记本。它基于Web的开源框架,使交互式数据分析变得可行的。Zeppelin提供了数据分析、数据可视化等功能。

借助Apache Zeppelin,开发人员可以构建数据驱动的、可交互且协作的精美的在线文档,并且支持多种语言,包括Apache Spark、PySpark、Spark SQL、Hive、Markdown、Shell等。

Apache Zeppelin主要功能有:

  • 数据提取
  • 数据挖掘
  • 数据分析
  • 数据可视化展示

Apache Zeppelin的官网地址为http://zeppelin.apache.org。

大数据工具发展非常快,有很多工具可能都没听说过。就当前的行情来看,Apache Spark基本上已经成为批处理领域的佼佼者,且最新版本在流处理上也做得不错,是实现流批一体化数据处理很好的框架。

需要大数据分析与处理的公司,应该根据自身的人员技能结构和业务需求,选择合适的大数据工具。虽然大数据工具非常多,但是Hadoop、HBase、Kafka、Spark和Flink几乎是必备的大数据工具。

Part 3 小结

大数据工具繁多,当前并没有一个一站式的大数据解决方案,不同大数据工具需要配合才能构建出一个完整的大数据应用。毫无疑问,虽然大数据工具如此之多,但是常用的大数据工具中,Hadoop、HBase、Kafka、Spark或Flink是不可或缺的工具。

-- END

Python PySpark 大数据时代相关推荐

  1. Ubuntu16.04安装Hadoop+Spark+pyspark大数据python开发环境

    一,安装jdk1.8.0.144 下载地址:www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648. ...

  2. 大数据时代都说python发展非常好,学习Python,到底有啥优势?

    现在有很多人参加Python培训学习Python开发技术,但是参加Python培训真的那么好吗?学习Python开发在将来就业的时候有什么优势呢? 今天,小编就以上问题探讨一下. 学习Python开发 ...

  3. 有python专业的世界大学_大数据时代专业怎么选?2018年QS世界大学商业分析硕士专业排名...

    导读:最新2018年QS世界大学商业分析硕士专业排名对全球各所大学商业分析专业做出综合评价,最终45所大学上榜. 商业分析专业Business Analysis到底学哪些科目?就业方向如何?作为商科专 ...

  4. python中的大数据品牌运营策划营销_大数据时代的品牌营销

    龙源期刊网 http://www.qikan.com.cn 大数据时代的品牌营销 作者:肖明超 来源:<销售与管理> 2015 年第 10 期 去年一年到现在参加的很多营销峰会或者论坛, ...

  5. 大数据时代的网络视频营销

    2019独角兽企业重金招聘Python工程师标准>>> 大数据时代的网络视频营销 在大数据时代的今天,视频网站优质的内容资源为品牌广告营销提供丰富的可能性及传播机会,品牌元素与视频内 ...

  6. 大数据时代数据库-云HBase架构生态实践

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&a ...

  7. 大数据时代的电信运营商的机遇

    2019独角兽企业重金招聘Python工程师标准>>> 大数据时代的电信运营商的机遇 未来移动互联的爆发式增长将推动移动应用和云存储的迅速增长,所有这一切,都需要相当规模的数据中心作 ...

  8. 那些被大数据时代抛弃的人

    作者 | 衣公子 来源 | 衣公子的剑(ID:yigongzidejian) 前言 2000年,微软如日中天.有人问比尔盖茨(Bill Gates)对于IT行业的看法. 盖茨说,挺好的,就是有点noi ...

  9. 2015年《大数据》高被引论文Top10文章No.2——大数据时代的数据挖掘 —— 从应用的角度看大数据挖掘(下)...

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将把2015年<大数据>高被引论文Top10的文章陆续发布,欢迎大家关注!本文为高被引Top10论文的No.2, ...

最新文章

  1. UA SIE545 优化理论基础1 凸分析8 极点与极方向
  2. jzoj3510-最短路径【dp】
  3. 《MySQL必知必会》笔记--数据库基础
  4. 一键洞察全量SQL ,远离性能异常
  5. 《C++ Primer Plus》第15章 友元、异常和其他 学习笔记
  6. 漫画:谁杀死了MySQL?
  7. centos nginx php_Centos7下NGINX+PHP的安装及配置
  8. 烽火吉比特HG261GU获取超级密码教程
  9. hh-suite使用教程
  10. ET_01-ET框架开发环境搭建及Demo运行(客户端版)
  11. 在线编辑Word——插入图片、图形
  12. 分类(category)的使用
  13. 如何把扫描的PDF文件转换为Word文档?
  14. 数据结构:并查集和图
  15. Java常见面试题—final 在 java 中有什么作用?
  16. Poj 2387 Til the Cows Come Home 迪杰斯特拉(普通+优化)
  17. 中国专利数据库(85-22)
  18. 泛统计理论初探——初探MCMC采样和MH采样
  19. C语言:字符串反序输出
  20. 骨头汤、豆浆、海带都不能补钙,最补钙的食物是它

热门文章

  1. iOS-bug·Failed to connect to github-production-release-asset-2e65be.s3.amazonaws.com port 443:
  2. 【专栏】RPC系列(实战)-负重前行的“动态代理”
  3. ZYNQ-AX7020学习笔记
  4. 小米AX6S刷OpenWrt和开启OpenClash,及刷回官网固件
  5. Linux虚拟机不显示IP地址的三种解决方法
  6. 青藤《关键信息基础设施增强保护安全实践》论文入选中国科技核心期刊
  7. c语言实验3报告及答案,C语言编程实验报告3
  8. 简历——“三无”应届生怎么写简历,全是干货!(模板直接拿走)
  9. win7安装node版本最高只支持13.14.0
  10. Tagged Pointer 含义的解释