- 浏览: 2183754 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
随着大数据的爆红,数据分析师这个职位也得到了越来越多的关注,千千万万懂些大数据技术的少年们都渴望成为高大上的“大数据科学家”,可是,你们真的准备好了吗?
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),如果有什么疑问,技术问题,职业问题或求职问题,等,欢迎在公众号上留言与我探讨!让我们做不一样的攻城师!谢谢大家!
评论
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
稍微明白了点!!!
发表评论
-
谈谈我对Mac笔记本的使用感受
2018-06-03 15:06 572https://blog.csdn.net/u0104540 ... -
关于我的知识星球服务
2018-06-02 15:18 1448https://blog.csdn.net/u0104540 ... -
你选的不是专业,而是阶级(转载)
2016-12-06 09:20 863原文链接:http://atongyey ... -
《通往财富自由之路》阅读笔记(一)
2016-09-28 22:31 1136最近付费订阅了由罗 ... -
健康债你欠不起
2016-05-01 23:42 1434看完这个新闻之后,深表悲痛,心里有一种淡淡的忧伤,可能对这 ... -
为什么你的努力会一文不值?
2015-11-18 13:37 2756让一个研究生男收集 ... -
如何学好一门编程语言或技术?
2015-03-02 21:58 2059相信大家都知道,在看 ... -
2015年春节往事小记
2015-03-01 20:04 13162014年已经悄然而逝了,春节回家过年的这段时间,由于家里没网 ... -
史上最贵域名诞生!360斥资1700万美元买360.com
2015-02-05 21:07 1596昨日,360公司官方人士 ... -
攻城师们,你懂女孩子么?
2014-12-29 01:10 1587相信还有不少的同行程序员,都是单身贵族,那么问题来了,年关逼近 ... -
程序员学滑雪系列之初生牛犊(一)
2014-12-22 01:26 1369话说这程序员家族一般 ... -
程序员健身之有些腹肌不必撕裂,是吃出来的
2014-11-07 11:22 1343By John 本人也是肌肉爱好者, 每每见到被完美撕 ... -
向前努力,才能不堕落
2014-11-03 21:14 1529或许这再一次印证任何人每一次的成功背后都有不为人知的付出和 ... -
Cloudera公司首席架构师Doug Cutting谈Hadoop之变迁
2014-10-28 11:40 1817Doug Cutting是开源界的大神,也是散仙非常膜拜的一个 ... -
卖了5个月水果之后再看互联网思维(转)
2014-10-22 11:39 2077很久没有更新博客,是 ... -
程序员修炼内功心法
2014-10-17 11:28 16821、放下面子 有时候我 ... -
Google 工程师亲授:菜鸟开发者一定要投资的十大目标
2014-09-25 11:57 2582身为软件开发者,有什么是一定得投资的? Google 软件工程 ... -
程序员如何留住健康?
2014-09-22 10:45 1659相信大家已经注意到了 ... -
一次比较坑的装系统过程
2014-09-09 13:09 2277昨天晚上,帮朋友的thinpad e431系列的电脑重装64位 ... -
把梳子卖给和尚
2014-06-26 10:52 1039有一个营销经理想考考 ...
相关推荐
从“存储系统”、“处理系统”和“分析方法”来看大数据平台IntetixFoundation(英明泰思基金会)由从事数据科学、非营利组织和公共政策研究的中国学者发起成立,致力于通过数据科学改善人类社会和自然环境。...
需要有一个良好的开端,即做好数据规划阶段的各项工作,具体包括:战略意图:在这个阶段,要明确战略意图,这个战略意图需要在相关干系部门之间达成一致和共识,换句话说就是为什么要搞这个大数据项目?战略规划:...
在IT行业中,大数据是指海量、持续增长的数据集,它具有高增长率、多样性、复杂性以及潜在价值。大数据处理通常涉及多种技术,而shell脚本在其中扮演着重要的角色。shell脚本是Linux或Unix操作系统中的一种命令解释...
例如航空公司要利用数据弄清楚给机票定什么价位,银行要利用数据搞清楚该贷款给谁,信用卡公司则利用数据侦破信用卡诈骗。但是直到最近,数据,或者用现今的说法就是大数据,才真正成为我们日常生活的一部分。这是...
在学习Scala语言时,需要搞清楚Scala和Java之间的关系,将Scala和Java的相同点和不同点搞清楚,就可以快速的掌握Scala这门语言。 大数据技术之Scala是指利用Scala语言来处理和分析大数据的一种技术。Scala语言的...
触过,但是发现了大数据这个行业的一个非常严重的问题:绝大多数的搞大数据这个领域的 同学,都是从别的领域转型过来的,比如说java、python、别的什么领域,大部分大数据工 程师原来的职业,五花八门,什么样的人都...
自己根据大数据需求搞的docker镜像,3台服务器,实现hadoop、hbase、phoenix、zookeeper、scala、kafka、hive、mysql集群环境,使用方便,快速搭建hadoop大数据集群环境,镜像拉取后可以通过一个脚本启动集群。
前一阵子,某网络公司发起了一个什么建模大赛,有人问,数据建模怎么搞?为了满足他的好学精神,我决定写这一篇文章,来描述一下数据分析必须要掌握的技能:数据建模。本文将尝试来梳理一下数据建模的步骤,以及每...
然而,许多企业并没有较强的市场营销意识,在发展过程中更多是关注生产环节,往往是闭门造车搞生产,结果导致产品严重脱离市场需求,形成了大量积压。 2. 市场调研不够充分 大数据时代最重要的就是收集各类信息,...
2. 对日志文件进行分析时,建立Hive外部表与HBase表的链接字段搞错,解决方法是查看数据字典,查找字段,并将hive外部表的字段名和HBase表的列名一样。 通过本次项目,作者对大数据的实际应用,以及客户需求的具体...
面试题相关题,包括java,linux,数据库,hadoop,hbase,hive等
大数据教程.zip 0.大数据的4个特征 0.大数据的三个发展方向 0.大数据涉及到的技术 1.初识Hadoop 2.第一个MapReduce程序 3.Hive 4.把别处的数据搞到Hadoop上 5.把Hadoop上的数据搞到别处去 6.SparkSQL 7.Kafka 8....
大数据改变生活 作者:李颂 来源:《决策与信息》 2014年第10期 李颂 说到大数据,你可能以为它离你很遥远,都是大公司和政府机构搞的名堂,其实它早已经埋伏在四周,并慢慢包抄过来。 医疗保健 Aetna 保险公司有...
这家全美第二大零售商,会搞出如此大的乌龙?但经过这位父亲与女儿进一步沟通,才发现自己女儿真的已经怀孕了。那么,塔吉特是如何知道这个用户怀孕的呢? 塔吉特在和顾客沟通过程中采用了数据库营销方式,通过顾客...
一个资源搞懂大数据所有内容,内含linux基础,hbase,kafka,spark,hdfs等大数据技术.
首先,进入大数据行业首先第一步,先搞清楚大数据有哪些就业方向,然后每个方向需要学什么? 参考博客 大数据就业方向 1.大数据开发 构建和优化数据处理流程,支撑处理海量数据规模; 负责数据分布式存储、计算系统; ...