Tag Archive: Bigdata

玩转大数据也许真的可以离开Hadoop?

之前在学习大数据相关的内容,技术坑很多,水很深。偶然间在一位博主的博客中看到了Tablesaw这款开源工具,号称「MAKING BIGDATA SAMLL AGAIN」,觉得很神奇,遂前去一探究竟。

Tablesaw简介
引用官网的一段介绍:

Tablesaw is a high-performance, in-memory data table in Java.
Tablesaw’s design is driven by two ideas: First, few people need distributed analytics. On a single server, Tablesaw lets you work interactively with a 2,000,000,000 row table. (I plan to raise that ceiling, btw.) Second, it should be super easy to use: To that end I happily steal ideas from everything from spreadsheets to specialized column stores like KDB.

我们来总结下,Tablesaw设计初衷有以下两条:

  1. 作者认为很少有人真的需要进行分布式计算分析,在单台服务器上「Tablesaw」能支持最多20亿条数据,似乎在大多数情况下都能满足用户的计算需求;
  2. 大数据工具应该简单易用,费大把劲去搭建大数据集群估计已经吓退一拨人。

从本质上而言,我们发现「Tablesaw」就是一款基于内存,使用纯java实现的big spreadsheet。嗯,我相信你一定使用过Excel。

Tablesaw主要功能
既然Tablesaw宣称自己简单好用,那到底支持哪些功能呢,笔者新建了一个Maven工程玩了一把,貌似有以下功能:

  • Import data from RDBMS and CSV files, local or remote (http, S3, etc.)
  • Add and remove columns
  • Sort
  • Filter
  • Group
  • Map and reduce operations
  • Descriptive stats (mean, min, max, median, etc.)
  • Plotting for exploratory data analysis and model checking
  • Store tables in a very-fast, compressed columnar storage format

在试用过程中有几点 事项说明 下:

  1. 在数据量不大的情况下,执行简单的查询操作速度很快,不像在Hive中做一个非常简单的查询都会转化成一个MapReduce作业在Hadoop集群上跑几十秒时间(当然你可以通过set hive.fetch.task.conversion=more ,使得简单的查询不会被转化成MapReduce作业);
  2. Tablesaw支持的功能还非常有限,对于复杂的组合查询会很吃力,甚至可能都做不到,Tablesaw作者在博客中强调未来会支持更多的列类型,支持更多的操作,同时把常用的机器学习算法的实现也引入进来,对于未来的设想我们拭目以待;
  3. 在借助Tablesaw做数据展示的时候,使用的是XCharts

Tablesaw适用场景
简单介绍了Tablesaw的主要功能以及未来的设想,其实我更关注的是如何与我们现有的应用场景进行结合,或者说Tablesaw在哪些场景下会比较适用,大致能想到的有以下两个领域:

  1. 作为缓存器,对于热点数据我们从持久化的关系型数据库读到内存之后,可以马上对外提供计算查询的API;
  2. 对于数据分析师,数据科学家等以实验论证形式展开工作的一类人,对他们来讲有一款简单易用的大数据工具绝对是福音。

浅谈大数据技术与人工智能技术之间的关系

重读吴军博士的“智能时代-技术的拐点”章节有感,以及自己的一些思考。

大家似乎都有这样一个直观的感性认识,人工智能从2015,16年开始似乎又进入了一个快速的发展阶段,各种人工智能的概念性产品纷纷涌现,遍地开花,尤其是创业者,感觉到特别兴奋,纷纷想要打造出革命性的产品,改变世界,这个时候其实我们有一点纳闷,有一点疑惑,为什么一项已经发展了半个多世纪之久的人工智能技术在今天这个时间点能够被大家普遍接纳和采用,大家开始有能力去构建一个人工智能学习系统,呈现一种突破性的发展态势,我们肯定在想这背后发生了什么,是的!

这十几年来,还有一门技术非常火,那就是大数据技术,有人曾经这样形容大数据技术与人工智能技术的关系,说:

人工智能就像潜力无限的婴儿,而大数据是喂养婴儿的奶粉,奶粉的数量和质量决定了婴儿的智力发育水平。

那么这十几年以来,大数据技术取得了哪些突破性的进展,我们分成四个维度来分别看一下,如下图所示:

 

数据采集
数据采集说的是数据源的问题,分以下几点进行说明:
1. 随着全球软件业的蓬勃发展,越来越多的应用系统投入生产运行,系统本身产业的交易,日志等等数据是庞大的,这是第一个来源;
2. 随着各种智能设备以及可穿戴设备的普及,设备中部署的一个个sensor无时无刻不在自发的采集数据,这是其二;
3. 进入web2.0时代,尤其是在社交网络如此发达的今天,用户ugc产生的数据量呈指数级增长。

所以在今天这个时间点看来,数据已经不是多少的问题,而是如何好好利用的问题。

数据存储
数据存储分两点来看:
1. 根据摩尔定律,存储设备每隔18个月存储容量上升,成本下降。越来越多的服务提供商开始铺机器,建设一个个数据中心;
2. 存储设备更新迭代,由磁带过渡到机械硬盘,在发展到现今的固态硬盘,这里体现出来的是存储设备数据存取速度的极大提升。

数据传输
数据传输讨论的是如何把众多的数据源聚合到数据服务器上的问题,随着网络传输技术的发展,各种数据源通过千兆/百兆光纤网络,WiFi,4g网络等等完成数据的传递。

数据处理
这是我个人认为具有深刻意义的突破性进展,出现了并行计算框架,你很难想象Deepmind公司在训练AlphaGo的时候如果只用了一台服务器来跑他们的神经网络算法,那么试想完成一轮神经网络的迭代运算需要多久?一天、一星期、一个月、一年还是直接就趴下了,无论如何,至少我们会达成这样的共识:AlphaGo大胜李世石的局面不会这么早被我们见证,对吗?

所以,总结起来看,围绕大数据技术的这四个维度在各自方向上的突破性进展合力把大数据带到了一个技术拐点,同时再加上更优化的算法模型和更完备的海量数据共同推进了人工智能往前迈出了一大步,取得了突破性进展。

聊聊大数据平台的典型应用场景

说起大数据总是感觉听得多,实践的少,所以谈不上有什么认识,很是遗憾。然前一段时间刚好接手团队内部「数据服务线」的工作,筹划搭建大数据平台,埋藏在心底的那股劲儿又被唤起,提枪上马开干。

整个大数据集群大概有十几台虚拟机,安装Hadoop生态系统的开源工具,具体工具如下:

(更多…)