大数据相关软件Astro、WDT、Ibis、Tiger-Statis介绍

以下为你介绍的大数据相关软件都可用在Linux系统上:Astro(HBase 的 Spark SQL)、WDT(数据传输工具)、Ibis(Python 数据分析框架)、Tiger-Statis(数据统计服务)。

1、Astro(HBase 的 Spark SQL)

华为2015年7月20日在O'Reilly Open Source Convention (OSCON) 上宣布Spark SQL on HBase package正式开源。Spark SQL on HBase package 项目又名 Astro,端到端整合了 Spark,Spark SQL和HBase的能力,有助于推动帮助Spark进入NoSQL的广泛客户群,并提供强大的在线查询和分析以及在垂直企业大规模数据处理能力。

Apache HBase 是数据在 HDFS 上的 Key-Value 存储。它用来给 Google 的 Big Table 建模,并提供了 API 用于查询数据。这些数据通过它的“row keys”来组织、区分和发布。在每个分区上,数据被指定的“列”数据集合“列族”物理分区。这些数据模型是宽且零散的,在这些表中列是动态的,零散的。

尽管 HBase 是非常有用的大数据存储,但是它的访问机制非常原始,只能通过客户端的 API,Map/Reduce 接口和交互的 shell。SQL 访问 HBase 数据可通过 Map/Reduce 或者接口机制,如 Apache Hive 和 Impala,或者一些“本地的” SQL 技术,如 Apache Phoenix。前者实现和使用起来通常比较便宜,它们的延迟和效率通常不如后者,并且只适用于离线分析。后者,与之相反,通常执行得更好,并且限定多个作为联机引擎。它们通常在特定的执行引擎的顶层。

Astro 1.0 版本依赖于 Spark 1.4.0,HBase 0.98。

构建方法(要求 Maven):

$ git clone https://github.com/HuaweiBigData/astro

$ cd astro

$ mvn -DskipTests clean install 

$ mvn clean install

$mvn -Phbase,hadoop-2.4 test  #运行测试

2、WDT(数据传输工具)

大数据相关软件Astro、WDT、Ibis、Tiger-Statis介绍

WDT 是一个嵌入式函数库( embeddedable library),也是命令行工具,旨在尽可能快速地用多个 TCP 路径在 2个系统之间传送文件。WDT 意思是 Warp speed Data Transfer 和 Wormhole Data Transfer。

WDT 的目标是:最低的总传输时间——当不使用自我强加的资源,仅限制硬件(光盘或网络带宽不延迟),并尽可能保持高效(较低的CPU/内存/资源利用率)。

我们正在努力保持最低限度的依赖,以最大限度地提高便携性,以及保证最小二进制。附带的好处是尽量减少编译时间。

例子:

WDT主要是一个库,但我们还有一个小的命令行工具,可用于测试,它本身就很有用,这是一个简单的示例:

接收方:(启动指示目标目录的服务器)

[ldemailly@devbig074]$ wdt -directory /data/users/ldemailly/transfer1

发送方:(发现目录树中的所有文件并将其发送到目的地)

[root@dev443]$ wdt -directory /usr/bin -destination devbig074.prn2

[===========================] 100% 588.8 Mbytes/s

I0720 21:48:08.446014 3245296 Sender.cpp:314] Total sender time = 2.68699

seconds (0.00640992 dirTime). Transfer summary : Transfer status = OK. Number

of files transferred = 1887. Data Mbytes = 1582.08. Header Kbytes = 62.083

(0.00383215% overhead). Total bytes = 1658999858. Wasted bytes due to

failure = 0 (0% overhead). Total sender throughput = 588.816 Mbytes/sec

(590.224 Mbytes/sec pure transf rate)

需要注意的是在大量小文件(从一个Linux发行版的/usr/bin中),但没有太大的数据(~1.5Gbyte),最大速度也不好,因为它会与更多的数据这个简单的例子(因为有仍然是TCP的加速时间,尽管它由于并行而更快了),就像我们在生产用例中使用它一样。

下载地址:https://github.com/facebook/wdt

3、Ibis(Python 数据分析框架)

Ibis 是一个新的 Python 数据分析框架,目标是让数据科学家和数据工程师们处理大型数据时,能够像处理小中型数据一样的高效。为了实现这个目标,我们将启用 Python 来作为 Apache Hadoop 的第一级别语言,并不在功能性,可用性或性能上妥协。过去十年,在花了很多时间来提高单节点的 Python 体验的可用性(还有 pandas 等项目)。当前,我们正在致力实现:

100% Python end-to-end 用户的工作流程。

给广泛的用例本地硬件速度(Native hardware speeds for a broad set of use cases)。

完全保真的数据分析,无需撷取(extractions)和取样。

大数据可伸缩性。

与现有的 Python 数据生态系统集成(pandas,scikit-learn,NumPy 等等)。

通过以下方式从PyPI安装Ibis:

pip install ibis-framework

或通过conda-forge:

conda install ibis-framework -c conda-forge

Ibis当前提供用于与以下系统进行交互的工具:

Apache Impala、Apache Kudu、Hadoop Distributed File System (HDFS)、PostgreSQL、MySQL (Experimental)、SQLite、Pandas DataFrames (Experimental)、Clickhouse、BigQuery、OmniSciDB (Experimental)。

下载地址:https://github.com/ibis-project/ibis

4、Tiger-Statis(数据统计服务)

Tiger 数据统计服务,用于移动端的数据统计分析。

系统工作流程:

PC端创建App,获得AppSecretKey。

PC端创建统计Code。

移动端(iOS,Android)使用AppSecretKey获取Tiger服务的授权。

移动端(iOS,Android)使用Tiger客户端SDK(后续会开源)根据Code记录数据。

Tiger使用说明:

使用前先设置Consts.DEFAULT_APP_PACKAGE_NAME(默认为cn.zhucongqi.) 以及Consts.TABLE_NAME_PREFIX(默认为tiger_)。

倒数config中的tiger_db.sql到您的数据库。

配置cfg.txt中数据库部分的配置。

PC端创建的Code是指对应的统计项数据的别名,比如要统计用户的登录情况,那么Code可以设置为login,统计用户的区域分类情况, 可以设置Code为user等。

PC端创建Code之后处理,Tiger会根据code生成Consts.TABLE_HASH_SIZE*2+2个数据库表,分别是Platform(iOS,Android)对应的Consts.TABLE_HASH_SIZE个数据库表,这些数据表主要用于分不同的平台来储存数据,还会生成Platform对应的info表,这个表用于记录对应Platform的hashid的记录情况。

记录数据的处理规则,先在code_info中写入一条数据,获得对应的id,将此id作为code_data的id且把对应的数据写入到data field。

下载地址:https://gitee.com/brucezcq/Tiger

注明

以上就是大数据相关软件Astro、WDT、Ibis、Tiger-Statis的介绍内容,这些大数据相关软件都能使用在Linux操作系统中。

栏目相关文章