摘要: 今天多数的大数据方案都是依托Hadoop环境来做结构化和非结构化数据处理,如何把自己的Hadoop算法快速部署到实际的生产环境当中去,对很多企业的大数据部署也提出了挑战。CSDN专访MathWorks中国资深技术专家陈建平,分享大数据解决方案。

近年来,随着大数据在Google、Facebook等企业的成功应用,很多传统企业和初创公司都转向应用大数据技术挖掘数据金矿。现有企业累计了大量的工业数据,但是大数据的开发的复杂流程阻碍了企业快速从工业数据和商业数据中挖掘价值。行业专家(算法研究者)精通行业数据分析,却受限于编程复杂度和缺乏快速部署算法的方法,使很多创造性想法无法得到有效实施。在这个技术飞跃的时代,拥有大量工业数据的企业和技术专家们应该如何开展大数据技术的研发工作?

大数据从业者在数据搜集、数据探索、开发和部署的每一个阶段都会碰到各式各样的难题,不得不在不同的开发环境中进行切换,并为此付出了大量额外的时间和人力成本。在现有的数据资源上,如何对数据进行清洗、整合以及探索性研究,正是数据专家们发挥专长的地方;而这个过程所耗费的时间往往是编程实现的好几倍。今天多数的大数据方案都是依托Hadoop环境来做结构化和非结构化数据处理,如何把自己的Hadoop算法快速部署到实际的生产环境当中去,对很多企业的大数据部署也提出了挑战。

MathWorks公司的MATLAB软件在科研和工业生产上拥有大量的用户,而且在数据分析领域,MATLAB作为传统数据分析专业软件独树一帜。最近,针对大数据研发过程中关键点,基于大家熟悉的 MATLAB 开发环境,该公司提出一个完整的解决方案。下面我们就来看看他们关于大数据分析的流程,来自MathWorks公司的资深应用工程师陈建平对记者做了相关介绍。

从流程角度上看,整个大数据处理可以分成4个主要步骤。第一步是数据的搜集和存储;第二步是通过数据分析技术对数据进行探索性研究,包括无关数据的剔除即数据清洗,和寻找数据的模式探索数据的价值所在; 第三步是在基本数据分析的基础上,选择和开发数据分析算法,对数据进行建模。从数据中提取有价值的信息,这其实是真正的大数据的学习过程。这其中会涉及很多算法和技术,比如机器学习算法等; 最后一步是对模型的部署和应用,即把研究出来的模型应用到生产环境之中。

我们分别从流程和技术两个角度来看一下MATLAB开发大数据应用的特点。从流程上,我们可以把大数据应用的过程分成四步。

第一步,数据的获取和存储和访问。MathWorks的产品是以工具箱的形式来组合的,在现有MATLAB 平台上已经有80多个专业工具箱和300多个第三方厂商工具箱。 从数据搜集和访问角度,MATLAB 支持以下几种搜集和访问方式:

  1. 数据库的访问。数据库是现有的大量数据,尤其是工业数据的默认存储格式。目前最新版本的MATLAB即支持对结构化数据库的访问,同时支持非结构数据库的访问,比如Mango DB,用户无需学习SQL等专业语言,即可通过MATLAB语言进行数据库的访问。另外,MATLAB也支持从专业金融数据库中直接抓取金融数据。
  2. 分布式文件系统。从2014b版本开始,通过引入一个叫做datastore的数据结构,MATLAB 已经能够支持对Hadoop HDFS文件系统的访问,并且统一了文件、文件夹、分布式数据库的访问接口,使用者无需改动算法即可访问不同的数据来源。
  3. 硬件数据的采集。MATLAB一直以来都硬件设备有着良好的支持,从专业数据采集设备,比如数据采集卡和测试仪器,到通用硬件,比如摄像机,都有统一的访问接口支持直接从MATLAB语言中抓取数据。结合不同的数据搜集、存储和访问手段,在一个平台中就能够完成大多数数据搜集和整理的工作。

第二步,数据的组织和基础分析。这一部分需要介入相应的统计手段,也是行业专家最擅长的地方。行业专家可以结合对行业的理解,探寻数据的价值所在。行业专家对自身工作领域非常熟悉,了解自身行业数据特点,但是未必对通用编程语言比如C或者Java充分熟悉。

MATLAB作为工业普及的语言,以其语法简单和可视化功能强大而深受工业和研究人员的喜爱。最新的MATLAB提供了大量图形化傻瓜工具,可以帮助行业专家进行诸如数据导入、数据清洗和数据可视化分析。更重要的一个特点是,这些工具大部分支持通过搜集操作行为,自动生成MATLAB脚本或者函数的能力,辅助自动化开发。即使你不了解编程细节,也能够得到高校的代码,大大提升了开发效率。

MATLAB的工具箱覆盖了各个不同的领域,行业专家可以采用相应的工具箱,对数据进行初步处理和特征探索,比如通过滤波等信号处理手段滤去噪声,或者通过频谱检测,寻找语音数据的嚣叫。这是通用数据分析工具无法替代的。

第三步,数据建模。经过数据清洗、探索性分析,目的就是为了建立一个有效模型用于工业生产。典型的手段是求助于统计分析方法和机器学习算法,寻求合理的数学模型。一直以来,MATLAB就是一个传统的数据分析平台,最近几年MathWorks结合最新的机器学习算法和深度学习算法,推出了升级了神经网络和统计工具箱。机器学习不再需要编写大量的代码了,通过采用分类和聚类App,可以对数据进行拖放就可以完成机器学习的过程。直接从App分析结果中就可以得到最佳的预测模型。

最后一步,应用发布。如何把计算模型发布到生产环境中,是一件费事费力的工作。传统算法开发流程中,算法工程师开发完算法后,把算法通过文本或者伪代码的方式提交给软件工程师,软件工程师再通过通用编程语言对算法进行实现。这种分段式开发方法非常容易带来错误,而且开发效率也相对地下。

现在,行业专家可以在前一个阶段得到的模型基础上,通过App和几个鼠标点击就可以把MATLAB代码发布成可执行程序、动态链接库、JAVA或者.NET包。部署工程师可以在这些结果上进行集成即可,减少了重新开发潜在的错误,加速了开发迭代的过程。
这4步构成了一个完整的大数据应用流程,行业专家可以在一个熟悉的环境中完成整个复杂数据分析的过程。

从技术进展的角度,MATLAB针对不同的数据规模和不同的数据复杂度,也提供了不同的大数据支持。下面的图对从数据复杂度和数据规模角度对数据进行了一个简单分类。

陈建平介绍说:“针对不同的数据类型和规模,我们应该有不同的处理方式,才能够达到处理和效率的最佳化。根据数据规模,把数据划分成能够加载入集群内存中的数据,和无法加载到集群内存的数据; 根据数据的复杂度,我们把数据可以分成能够分片并行处理的简单数据和无法分片的复杂数据。针对每一种组合,MATLAB都应该要有不同的解决方法,并且应该提供足够傻瓜的处理技术。”

在上述的二维划分中,我们可以把数据类型总结为三大类: 第一类为简单数据,即数据能够被划片,能够被多个节点同时处理。第二类为能够支持MapReduce操作的数据。第三类为复杂数据,这一类数据传统上属于高性能计算的领域,需要专门的编程和环境才能够处理。

第一类问题是最简单的,也是最容易被简单编程实现的。理论上,我们通过手工或者自动化把数据划分成单机能够处理的数据片,启动足够的计算资源即可。实际上,对这类问题的处理,在需要考虑计算效率的地方,还是需要一定的编程技巧要求的,比如如何做到负载均衡就是一个相对复杂的问题。MATLAB中通过并行计算工具箱和分布式计算服务器,可以用一个 ”parfor” 语句即可实现这类数据的并行化。

第二类问题可以通过MapReduce算法框架可以解决的问题。一般这类问题的数据是存放在HDFS之中,客户已经有了Hadoop环境,当时如何编写MapReduce算法是一个难点,需要一定的Java或者Python的相关编程经验,并且熟悉相应的API。在MATLAB中,你可以通过 “datastore” 直接访问本地文件、本地文件夹、HDFS文件、以及HDFS文件夹。工程师只要书写相应的MATLAB Map函数和 MATLAB语言的 Reduce 函数即可调用Hadoop环境进行MapReduce运算。在完成计算后,可以把相应的MATLAB代码放到部署App中,一键部署到MapReduce生产环境中。

最后一类问题最复杂,数据无法分割成片段,也无法通过MapReduce模型建模。一个典型的应用是大规模矩阵的分析。MATLAB中可以通过并行计算工具箱和MATLAB分布式计算服务器直接对阵列运算并行化。这类运算可以在客户端上对集群的计算过程进行交互式控制,并行化编程就像单机串行运算一样简单。

不管从大数据的处理流程上,还是从数据规模上,作为一个完整的开发平台,MATLAB提供了从数据搜集、数据分析、数据建模和应用部署等全面解决方案。用户可以不用过多关注编程细节,只需把有限的时间和资源投入到有效的分析过程中,让大数据应用开发成为一件简单轻松的事情。

受访人信息:

陈建平,MathWorks 中国资深技术专家,专注于工程大数据分析和高性能计算领域。拥有北京大学学士和硕士学位,并于2008年加入MathWorks公司。之前,他在NTT DoCoMo从事4G算法研究和无线系统设计。加入MathWorks后,专注于高性能计算和工程数据的分析和建模,并深入探索工程数据在大数据领域的应用。他拥有十余年数值算法设计、实现,以及对大规模工程数据分析和建模经验;尤其对MATLAB与不同编程语言,以及Hadoop和Spark等大数据架构的结合有较为深入的研究。

谈谈MATLAB大数据处理相关推荐

  1. 大数据舆情分析软件实时监控,TOOM大数据处理与舆情监控简介

    舆情数据分析处理是指通过使用大数据技术.人工智能.自然语言处理等,从舆情数据中提取信息,进行模型建立.模式识别.情感分析等,从而了解舆论情况.舆情数据分析处理的目的是了解舆论趋势.话题热点.网民情绪等 ...

  2. 大数据处理需要用到的编程语言开发语言

    你有一个大数据项目,你知道问题领域(problem domain),也知道使用什么基础设施,甚至可能已决定使用哪种框架来处理所有这些数据,但是有一个决定迟迟未能做出:我该选择哪种语言?(或者可能更有针 ...

  3. 大数据处理也要安全--关于MaxCompute的安全科普

    [TOC] 1.企业大数据处理现状 当今社会数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(百GB.TB乃至PB)级别.基于此,阿里云推出有了一套快速.完全托 ...

  4. 从Storm到Flink:大数据处理的开源系统及编程模型(文末福利)

    本文节选自CCF大数据教材系列丛书之<大数据处理>,本书由华中科技大学金海教授主编,包括大数据处理基础技术.大数据处理编程与典型应用处理.大数据处理系统与优化三个方面.本教材以大数据处理编 ...

  5. 算法原理:大数据处理的分治思想!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:周彬莲,东北石油大学,Datawhale优秀学习者 引言 MapR ...

  6. 基础搭建Hadoop大数据处理-编程

    Hadoop的编程可以是在Linux环境或Winows环境中,在此以Windows环境为示例,以Eclipse工具为主(也可以用IDEA).网上也有很多开发的文章,在此也参考他们的内容只作简单的介绍和 ...

  7. 生物医学大数据处理研究探讨

    生物医学大数据处理研究探讨 摘要: 随着生物分析和计算技术的快速发展以及医疗信息化水平的不断提高, 生物医学领域 产生了大量的数据,促进了生物医学大数据的形成,也使得生物医学的研究由原来的假设 驱动向 ...

  8. 大数据处理语言U-SQL介绍

    微软宣布了新的 Azure 数据湖(Azure Data Lake)服务,该服务被用于云分析,包括了一个超大规模信息库:一个在 YARN 上建立的新的的分析服务,该服务允许数据开发者和数据科学家分析全 ...

  9. 大数据处理——Hadoop解析(一)

    概述 这个时代被称之为大数据时代,各行各业生产的数据量呈现爆发性增长,并且基于这些爆发性增长的数据做深层次的数据挖掘.分析.因此,我们可以很容易的感觉到,在这样一个大数据的时代,我们很多做事情的方法正 ...

  10. 想学大数据?大数据处理的开源框架推荐

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文讨论大数据处理生态系统和相关的架构栈,包括对适应于不同任务的多种框架特性的调研.除此之外,文章还从多个层次对框架进行深入研究,如存储,资 ...

最新文章

  1. Java程序员从阿里拿到offer回来,这些面试题你会吗?
  2. VB 输入超出文件尾(错误62)(转)
  3. POJ 1573 POJ 2632(两道有趣的Robot)实例
  4. [搜索]波特词干(Porter Streamming)提取算法详解(2)
  5. P2272-[ZJOI2007]最大半连通子图【tarjan,缩点】
  6. p1470 Longest Prefix
  7. GitHub 创建项目
  8. win10电脑开机密码忘了怎么办_电脑开机密码忘了怎么办最简单的方法_windows7教程...
  9. web大作业:简单的学生网页作业源码 基于html css javascript jquery实现智能分控网站
  10. 如何优雅的在word打公式
  11. 《人工智能及其应用》练习题
  12. Scheme:点对(dotted pair,或pair)
  13. 代码对比工具:我最喜欢用的还是这几个
  14. 名编辑电子杂志大师教程 | 如何删除电子画册中不要的页面?
  15. 【读书笔记->统计学】04-02 利用概率理论预测和决策-条件概率、概率树、全概率公式、贝叶斯定理、相关与独立概念简介
  16. SQLServer存储过程中break、continue及return的使用
  17. This page can't be displayed. Contact support for additional information. The incident ID is: xxxxxx
  18. 伪代码基本规范~呦呦呦
  19. winform显示中国农历
  20. 魅蓝note2 解锁bootloader,刷twrp,刷安卓7.1.1系统

热门文章

  1. ffmpeg 中av_rescale_rnd 的含义
  2. Excel如何快速对比数据
  3. ORACLE--面试知识点
  4. python33个保留字基本含义_Python保留字总结
  5. 计算机网络中属于通信子网,计算机网络通常被划分为通信子网和资源子网,通信子网提供信息传输服务,资源子网提供共享资源。...
  6. com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %,
  7. 现场总线CAN和工业以太网EtherCAT详解
  8. word文档中在文字的右上角加标注快捷键
  9. 认知系列1:认知是什么
  10. 马斯洛提出动机理论_马斯洛的需要层次理论