`
qindongliang1922
  • 浏览: 2183754 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117530
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125921
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59896
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71301
社区版块
存档分类
最新评论

大数据,怎么搞?

阅读更多



随着大数据的爆红,数据分析师这个职位也得到了越来越多的关注,千千万万懂些大数据技术的少年们都渴望成为高大上的“大数据科学家”,可是,你们真的准备好了吗?


1、最早的数据分析可能就报表        目前很多数据分析后的结果,展示的形式很多,有各种图形以及报表,最早的应该是简单的几条数据,然后搞个web页面,展示一下数据。早期可能数 据量也不大,随便搞个数据库,然后SQL搞一下,数据报表就出来了。但是数据量大起来怎么分析呢?数据分析完了怎么做传输呢?这么大的数据量怎么做到实时 呢?分析的结果数据如果不是很大还行,如果分析的结果数据还是很大改怎么办呢?这些问题在这篇文章中都能找到答案,下面各个击破。

2、要做数据分析,首先要有数据        这个标题感觉有点废话,不过要做饭需要食材一样。有些数据时业务积累的,像交易订单的数据,每一笔交易都会有一笔订单,之后再对订单数据作分 析。但是有些场景下,数据没法考业务积累,需要依赖于外部,这个时候外部如果有现成的数据最好了,直接join过来,但是有时候是需要自己获取的,例如搞 个爬虫爬取网页的数据,有时候单台机器搞爬虫可能还爬不完,这个时候可能就开始考虑单机多线程爬取或者分布式多线程爬取数据,中间涉及到一个步骤,就是在 线的业务数据,需要每天晚上导入到离线的系统中,之后才可以进行分析。

3、有了数据,咋分析呢?        先将数据量小的情况下,可能一个复杂的SQL就可以搞出来,之后搞个web服务器,页面请求的时候,执行这个SQL,然后展示数据,好了,一个最简 单的数据分析,严格意义上讲是统计的分析。这种情况下,分析的数据源小,分析的脚本就是在线执行的SQL,分析的结果不用传输,结果的展示就在页面上,整 个流程一条龙。

4、数据量大了,无法在线分析了,咋办呢?        这个时候,数据量已经大的无法用在线执行SQL的形式进行统计分析了。这个时候顺应时代的东西产生了(当然还有其他的,我就知道这个呵呵),数据离 线数据工具hadoop出来了。这个时候,你的数据以文件的形式存在,可能各个属性是逗号分隔的,数据条数有十几个亿。这时候你可能需要构建一个 hadoop集群,然后把自己的文件导入到集群上面去,上了集群之后,文件就是HDFS的格式了,然后如果要做统计分析,需要写mapreduce程序, 所谓的mapreduce程序,就是实现map和reduce的接口,按照自己的业务逻辑写分析流程,之后把程序打成jar包上传到集群,之后开始执行。 分析后的结果还是文件的形式产生。

5、分析个数据还要写java代码是不是效率低了点        这个确实是,mapreduce的程序,本身的可测性没有执行一个简单的单元测试来的爽,所以效率确实不高。这个时候,hive出现 了,hive是一个数据仓库分析的语言,语法类似于数据库的SQL,但是有几个地方是不同的。有了hive之后,数据分析就好之前写SQL一样了,按照逻 辑编写hive SQL,然后控制台执行。可能最大的感觉是,数据库的sql很快就能有结果,但是hive的,即使很小的一个数据分析,也需要几分钟时间。构建hive, 需要在hadoop的集群上,原理很简单,就是把文件构建成表的形式(有一个数据库或者内存数据库维护表的schema信息),之后提交写好的hive sql的时候,hadoop集群里面的程序把hive脚本转换成对应的mapreduce程序执行。这个时候,做离线的数据分析简单写脚本就行了,不用再 搞java代码,然后上传执行了。

6、数据产生的结果,怎么搞到线上提供服务的数据库中呢?        这个时候分析的结果有了,可能是一个很宽很长的excel表格,需要导入到线上的数据库中,可能你想到了,如果我的数据库是mysql,我直接执行 load 命令就搞进去了,哪有那么麻烦。但是数据源可能有多了,mysql/oracle/hbasefs 按照笛卡尔积的形式,这样搞要搞死程序员了。这个时候datax(已经开源)出现了,能够实现异构数据源的导入和导出,采用插件的形式设计,能够支持未来 的数据源。如果需要导数据,配置一下datax的xml文件或者在web页面上点击下就可以实现了。


7、离线分析有时间差,实时的话怎么搞呢?        要构建实时的分析系统,其实在结果数据出来之前,架构和离线是截然不同的。数据时流动的,如果在大并发海量数据流动过程中,进行自己的业务分析呢? 这里其实说简单也简单,说复杂也复杂。目前我接触过的,方案是这样的,业务数据在写入数据库的时候,这里的数据库mysql,在数据库的机器上安装一个程 序,类似JMS的系统,用于监听binlog的变更,收到日志信息,将日志信息转换为具体的数据,然后以消息的形式发送出来。这个时候实现了解耦,这样的 处理并不影响正常的业务流程。这个时候需要有个Storm集群,storm集群干啥事情呢?就一件事情,分析数据,这个集群来接收刚才提到的JMS系统发 送出来的消息,然后按照指定的规则进行逻辑合并等计算,把计算的结果保存在数据库中,这样的话,流动的数据就可以过一遍筛子了。


8、分析的结果数据特别大,在线请求这些结果数据数据扛不住了,咋搞?        一般的结果数据,数据量没有那么大,也就几十万的样子,这样的数据级别,对于mysql这样的数据库没有任何压力,但是这个数据量如果增加到千 万或者亿级别,同时有复杂的SQL查询,这个时候mysql肯定就扛不住了。这个时候,可能需要构建索引(例如通过lucene来对于要检索的字段添加索 引),或者用分布式的内存服务器来完成查询。总之,两套思路,一个是用文件索引的形式,说白来就是空间换时间,另外一种是用内存,就是用更快的存储来抗请 求。


9、在线的数据库,除了mysql、oracle之外,还有其他选择不?        其实目前大家的思维定势,往往第一个选择就是oracle或者mysql,其实完全可以根据场景来进行选择,mysql和oracle是传统的 关系型数据库,目前nosql类的数据库也很多,例如HBase就是其中一个重要的代表。如果数据离散分布比较强,且根据特定的key来查询,这个时候 HBase其实是一个不错的选择。


10、空间的数据怎么分析?        上面的分析大都是统计维度的,其实最简单的描述就是求和或者平均值等,这个时候问题来了,大数据量的空间数据如何分析呢?对于我们电子商务而言,空 间数据可能就是海量的收货地址数据了。需要做分析,第一步就是先要把经纬度添加到数据中(如果添加经纬度,这个可以搞http的请求来通过地图服务提供商 来或者,或者是根据测绘公司的基础数据来进行文本切割分析),之后空间数据是二维的,但是我们常见的代数是一维的,这个时候一个重要的算法出现 了,geohash算法,一种将经纬度数据转换为一个可比较,可排序的字符串的算法。然后,这样就可以再空间距离方面进行分析了,例如远近,例如方圆周边 等数据的分析。


11、上面这些仅仅是统计,如果想搞算法或者挖掘之类的,怎么搞呢?        上述的分析,大多数是统计分析,这个时候如果想高一点高级的,例如添加一个算法,咋搞呢?其他复杂的算法我没咋接触过。将拿一个我练过手的算法来讲 吧。逻辑回归,如果样本数据量不是很大,可以采用weka来做了个回归,获得一个表达式,然后在线上系统中应用这个表达式,这种类似的表达式获取对于实时 性要求不是很高,所以公式每天跑一次就行了。如果数据量比较大,单机的weka无法满足需求了,可以将weka的jar包集成在系统中分析,当然也可以通 过hadoop中的mahout来进行离线分析,获取这个表达式。


12、我就是想离线分析数据,但是受不了hive或者hadoop的速度,咋搞?        其实搞过一段时间hadoop的人肯定有一点不爽,就是离线分析的速度太慢了,可能需要等很久,这个时候spark出现了,他和hadoop类似, 不过由于是内存中计算,所以速度快了很多,底层可以介入HDFS的文件系统,具体我没有使用过,但是公司内部一个团队目前已经用spark来进行分析了。

13、这就是搞大数据了?        有了这些工具就是搞大数据了?答案肯定不是,这个仅仅是工具罢了。真正搞大数据的可能在于思维的变化,用数据来思考,用数据来做决定。目前的无线和大数据啥关系?我觉得无线的终端是数据的来源和消费端,中间需要大数据的分析,两者密不可分啊



14,注意大数据,和数据大是二码事,如何利用海量的数据并结合互联网思维来挖掘出各种有价值的信息,才是真正的大数据。


扫码关注微信公众号:我是攻城师(woshigcs),如果有什么疑问,技术问题,职业问题或求职问题,等,欢迎在公众号上留言与我探讨!让我们做不一样的攻城师!谢谢大家! 





  • 大小: 184.1 KB
  • 大小: 26.4 KB
14
18
分享到:
评论
18 楼 a545807638 2016-03-14  
  
17 楼 from_null 2015-01-08  
不错,循序渐进,通俗易懂。
16 楼 qindongliang1922 2015-01-08  
gao_xianglong 写道

15 楼 qindongliang1922 2015-01-08  
小鱼不爱水 写道
[size=x-small]博主的每个层次言简意赅,通俗易懂,这是iteye上不可多得的文章,真心赞了,恢复至为收藏![/size]

多谢支持!
14 楼 gao_xianglong 2015-01-08  
13 楼 小鱼不爱水 2015-01-08  
[size=x-small]博主的每个层次言简意赅,通俗易懂,这是iteye上不可多得的文章,真心赞了,恢复至为收藏![/size]
12 楼 qindongliang1922 2015-01-07  
daiyongcai 写道

11 楼 qindongliang1922 2015-01-07  
daiyongcai 写道

10 楼 daiyongcai 2015-01-07  
9 楼 qzy927513 2015-01-07  
单个不复杂,形成一个应用生态圈就复杂了
8 楼 qindongliang1922 2015-01-07  
airball 写道

 
7 楼 airball 2015-01-07  
6 楼 qindongliang1922 2015-01-07  
fm395728572 写道
思维和工具相结合,会产生意想不到的效果

正解
5 楼 fm395728572 2015-01-07  
思维和工具相结合,会产生意想不到的效果
4 楼 qindongliang1922 2015-01-07  
arong 写道
嗯,这玩意是有点复杂。

其实只看一个hadoop,并不复杂,但是一系列的生态系统综合起来,就比较丰富了,你认为呢?
3 楼 arong 2015-01-07  
嗯,这玩意是有点复杂。
2 楼 qindongliang1922 2015-01-07  
ll0180 写道
稍微明白了点!!!

慢慢来,加油!
1 楼 ll0180 2015-01-07  
稍微明白了点!!!

相关推荐

    怎么搞个大数据平台?

    从“存储系统”、“处理系统”和“分析方法”来看大数据平台IntetixFoundation(英明泰思基金会)由从事数据科学、非营利组织和公共政策研究的中国学者发起成立,致力于通过数据科学改善人类社会和自然环境。...

    大数据项目如何落地之路线图探讨

    需要有一个良好的开端,即做好数据规划阶段的各项工作,具体包括:战略意图:在这个阶段,要明确战略意图,这个战略意图需要在相关干系部门之间达成一致和共识,换句话说就是为什么要搞这个大数据项目?战略规划:...

    shell脚本-大数据

    在IT行业中,大数据是指海量、持续增长的数据集,它具有高增长率、多样性、复杂性以及潜在价值。大数据处理通常涉及多种技术,而shell脚本在其中扮演着重要的角色。shell脚本是Linux或Unix操作系统中的一种命令解释...

    大数据云图:如何在大数据时代寻找下一个大机遇 【EPUB】

    例如航空公司要利用数据弄清楚给机票定什么价位,银行要利用数据搞清楚该贷款给谁,信用卡公司则利用数据侦破信用卡诈骗。但是直到最近,数据,或者用现今的说法就是大数据,才真正成为我们日常生活的一部分。这是...

    大数据技术之Scala.docx

    在学习Scala语言时,需要搞清楚Scala和Java之间的关系,将Scala和Java的相同点和不同点搞清楚,就可以快速的掌握Scala这门语言。 大数据技术之Scala是指利用Scala语言来处理和分析大数据的一种技术。Scala语言的...

    大数据架构师

    触过,但是发现了大数据这个行业的一个非常严重的问题:绝大多数的搞大数据这个领域的 同学,都是从别的领域转型过来的,比如说java、python、别的什么领域,大部分大数据工 程师原来的职业,五花八门,什么样的人都...

    hadoop大数据集群,docker镜像地址.txt

    自己根据大数据需求搞的docker镜像,3台服务器,实现hadoop、hbase、phoenix、zookeeper、scala、kafka、hive、mysql集群环境,使用方便,快速搭建hadoop大数据集群环境,镜像拉取后可以通过一个脚本启动集群。

    大数据建模五步法

    前一阵子,某网络公司发起了一个什么建模大赛,有人问,数据建模怎么搞?为了满足他的好学精神,我决定写这一篇文章,来描述一下数据分析必须要掌握的技能:数据建模。本文将尝试来梳理一下数据建模的步骤,以及每...

    关于大数据时代下市场营销策略思考经济论文.doc

    然而,许多企业并没有较强的市场营销意识,在发展过程中更多是关注生产环节,往往是闭门造车搞生产,结果导致产品严重脱离市场需求,形成了大量积压。 2. 市场调研不够充分 大数据时代最重要的就是收集各类信息,...

    大数据离线分析项目(Hadoop).pdf

    2. 对日志文件进行分析时,建立Hive外部表与HBase表的链接字段搞错,解决方法是查看数据字典,查找字段,并将hive外部表的字段名和HBase表的列名一样。 通过本次项目,作者对大数据的实际应用,以及客户需求的具体...

    大数据相关面试题总结

    面试题相关题,包括java,linux,数据库,hadoop,hbase,hive等

    大数据hadoop,spark教程.zip

    大数据教程.zip 0.大数据的4个特征 0.大数据的三个发展方向 0.大数据涉及到的技术 1.初识Hadoop 2.第一个MapReduce程序 3.Hive 4.把别处的数据搞到Hadoop上 5.把Hadoop上的数据搞到别处去 6.SparkSQL 7.Kafka 8....

    大数据改变生活.docx

    大数据改变生活 作者:李颂 来源:《决策与信息》 2014年第10期 李颂 说到大数据,你可能以为它离你很遥远,都是大公司和政府机构搞的名堂,其实它早已经埋伏在四周,并慢慢包抄过来。 医疗保健 Aetna 保险公司有...

    [详细完整版]大数据案例.ppt

    这家全美第二大零售商,会搞出如此大的乌龙?但经过这位父亲与女儿进一步沟通,才发现自己女儿真的已经怀孕了。那么,塔吉特是如何知道这个用户怀孕的呢? 塔吉特在和顾客沟通过程中采用了数据库营销方式,通过顾客...

    2019年最新大数据入门到精通视频教程

    一个资源搞懂大数据所有内容,内含linux基础,hbase,kafka,spark,hdfs等大数据技术.

    matlab代码做游戏-BigData:大数据学习方向

    首先,进入大数据行业首先第一步,先搞清楚大数据有哪些就业方向,然后每个方向需要学什么? 参考博客 大数据就业方向 1.大数据开发 构建和优化数据处理流程,支撑处理海量数据规模; 负责数据分布式存储、计算系统; ...

Global site tag (gtag.js) - Google Analytics