勤学思培训网CSDPAL
  • 总算发现大数据应该如何学习

    在巨大的数据集中进行筛选的最好工具是什么?通过和数据骇客的交流,我们知道了他们用于硬核数据分析最喜欢的语言和工具包。以下是小编为你整理的大数据应该如何学习

    在这些语言名单中,如果R语言排第二,那就没其他能排第一。自1997年以来,作为昂贵的统计软件,如Matlab和SAS的免费替代品,它渐渐风靡全球。

    在过去的几年时间中,R语言已经成为了数据科学的宠儿——数据科学现在不仅仅在书呆子一样的统计学家中人尽皆知,而且也为华尔街交易员,生物学家,和硅谷开发者所家喻户晓。各种行业的公司,例如Google,Facebook,美国银行,以及纽约时报都使用R语言,R语言正在商业用途上持续蔓延和扩散。

    R语言有着简单而明显的吸引力。使用R语言,只需要短短的几行代码,你就可以在复杂的数据集中筛选,通过先进的建模函数处理数据,以及创建平整的图形来代表数字。它被比喻为是Excel的一个极度活跃版本。


    [图片0]

    R语言最伟大的资本是已围绕它开发的充满活力的生态系统:R语言社区总是在不断地添加新的软件包和功能到它已经相当丰富的功能集中。据估计,超过200万的人使用R语言,并且最近的一次投票表明,R语言是迄今为止在科学数据中最流行的语言,被61%的受访者使用(其次是Python,39%)。

    此外,它的身影也渐渐出现在了华尔街。以前,银行分析师会全神贯注于Excel文件直到深夜,但现在R语言被越来越多地用于金融建模R,特别是作为一种可视化工具,Niall O’Connor,美国银行的副总裁如是说。 “R语言使我们平凡的表格与众不同,”他说。

    R语言的日渐成熟,使得它成为了数据建模的首选语言,虽然当企业需要生产大型产品时它的能力会变得有限,也有的人说这是因为它的地位正在被其他语言篡夺。

    “R更适合于做一个草图和大概,而不是详细的构建,”Michael Driscoll,metamarkets的首席执行官说。 “你不会在谷歌的网页排名以及Facebook的朋友推荐算法的核心找到R语言。工程师会用R语言做原型,然后移交给用Java或Python写的模型。”

    话说回来,早在2010年,Paul Butler就以R语言打造了全球的Facebook地图而著名,这证明了该语言丰富的可视化功能。尽管他现在已经不像以前那样频繁地使用R语言了。

    “R正在一点点地过时,因为它的缓慢和处理大型数据集的笨重,”Butler说。

    那么,他使用什么代替呢?

    Streaming(流计算模型)

    Spark Streaming支持对流数据的实时处理,以微批的方式对实时数据进行计算

    Kafka(分布式消息队列)

    Kafka是linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数据。

    活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv、用户访问了什么内容,搜索了什么内容等。

    这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理。

    Phoenix(hbase sql接口)

    Apache Phoenix 是Hbase的SQL驱动,Phoenix 使得Hbase 支持通过JDBC的方式进行访问,并将你的SQL查询转换成Hbase的扫描和相应的动作。

    ranger(安全管理工具)

    Apache ranger是一个hadoop集群权限框架,提供操作、监控、管理复杂的数据权限,它提供一个集中的管理机制,管理基于yarn的hadoop生态圈的所有数据权限。

    knox(hadoop安全网关)

    Apache knox是一个访问hadoop集群的restapi网关,它为所有rest访问提供了一个简单的访问接口点,能完成3A认证(Authentication,Authorization,Auditing)和SSO(单点登录)等

    确定有用的大数据

    大数据的利用前提是有效的大量数据,如果数据是一些脏乱差的数据,那么再多也是废物、垃圾,怎么可能好好利用呢,对此我们首先必须知道你业务领域是什么,这个领域内什么数据是有用的。比如如果是电子商务的公司,那么首先会员数据就是一个非常有价值的数据,当你有了有价值的数据,那么接下来就是“大”,你需要足够多的数据才能挖掘出他的价值

    获取足够数据

    获取足够量的数据主要是自身企业长期积累的过程,不过作为新的企业,在行业的沉淀也不够,未来快速实现,可以通过一些途径购买相关数据,金钱换时间的方式,迅速起来


    [图片1]

    建立合适的数据模型

    有了足够的数据,我们接下来就需要行业资深数据挖掘者,在海量的数据中进行数据分析,挖掘出有商业价值的信息,比如上面会员数据,可以从会员的性别挖掘出男女喜好,生日进行生日营销等等,这里需要相关人员对业务维度的全面把控,挖掘商业价值。下图是腾讯数据模型

    数据可视化

    为了让业务部门能更好的理解数据,相信你的模型,就需要将数据很好的展示出来,可视化,给用户视觉冲击,那么你的结论就更有说服力,相关人员也更好的配合你驱动商业价值

    商业行为

    有了数据的支撑,相关运营可以针对性的进行商业营销活动,将数据进行变现,比如爆款的推出,合理的大促等。

    MapReduce的使用

    首先要明确完成一个MapReduce最小的任务都包含哪些具体工作!部署Hadoop架构,在HDFS系统上分发要处理的数据集,定义Map和Reduce两个函数,配置相关路径和执行顺序。编译生成处理小包,再由Job分发给不同的服务器处理。最终收集整个输出结果!!

    部署Hadoop架构这一步骤极其简单,代价不菲。因为它需要N台服务器集群。并且通过Hadoop架构连接起来。

    由于可能会存在多个Reduce函数的情况,因此Map函数的处理结果将会被克隆复制,并且保存到不同的分区,确保每个Reduce处理的数据集是一样的。

    MapReduce支持多种语言来表达,Java/Ruby/Python等,另外也有直接支持MapReduce的编程语言:Pig/Hive/Scalding等

    MapReduce的使用已经基本可以解决大部分超级计算。不过它也有一个不可忽视的前提,就是业务分析任务是可拆解的。但也不用太担心,因为这种事情很少会发生!