Monthly Archives: December 2012
谁是大数据的受益者?
原文地址:大数据,香饽饽还是烫手的山芋? 文章的标题不太好,其实主要说一般的企业如何认识大数据,大数据和传统BI的关系。主要的观点如下: 一些专家认为,除了大量的研讨会,还有各类公司宣称进军大数据领域的雄心,其实际进展至今难见成效。许多企业CIO认为,国内能利用大数据背后产业价值的行业主要集中在金融、电信、能源、证券、烟草等超大型、垄断型企业,其他行业谈大数据价值为时尚早,大数据在企业的运用并不是说只要开放了数据、运用一些技术就可以轻易地发现“金矿”。目前国内大数据应用似乎正在呈现这样的状态:投资人活跃,技术和服务供应商热心,数字媒体高调,而大量应用企业迷惑。 当前IT厂商心态日趋浮躁,急功近利,没有真正去认真研究客户需求、认真研究企业管理,而是还停留在炒作概念甚至捞一把就走的阶段。今天你一个SOA,明天我一个EAI,今天你来网格计算,我明天来个云计算,你一个BI,我来个大数据,等等。 大数据与BI二者之间存在着深厚的天然联系,一对孪生兄弟,它们办公决策工作本身都是一种团队协作和协调,尤其是在数据挖掘和数据分析层面,并没多大的差别。同时,传统BI与大数据的关系,并不是互相替代、排斥的关系,它们犹如人的左脑和右脑,分工不同,传统BI以处理结构化信息为主,大数据以处理非结构化、半结构化信息为重,它们相互依存、相互补充、共为一体,组成企业完整的信息化大脑。 个人理解大数据应用方面宣传的产品推荐、用户行为分析等案例,属于数据分析中的高阶数据挖掘应用,更偏重于机器学习和预测性的分析,而这方面的分析无疑是需要大量的历史数据支撑,因此对大数据的处理能力更显得重要。
[转]大数据分析的分类
原文地址:大数据下的数据分析平台架构 大数据分析的分类 Hadoop平台对业务的针对性较强,为了让你明确它是否符合你的业务,现粗略地从几个角度将大数据分析的业务需求分类,针对不同的具体需求,应采用不同的数据分析架构。 按照数据分析的实时性,分为实时数据分析和离线数据分析两种。 实时数据分析一般用于金融、移动和互联网B2C等产品,往往要求在数秒内返回上亿行数据的分析,从而达到不影响用户体验的目的。要满足这样的需求,可以采用精心设计的传统关系型数据库组成并行处理集群,或者采用一些内存计算平台,或者采用HDD的架构,这些无疑都需要比较高的软硬件成本。目前比较新的海量数据实时分析工具有EMC的Greenplum、SAP的HANA等。 对于大多数反馈时间要求不是那么严苛的应用,比如离线统计分析、机器学习、搜索引擎的反向索引计算、推荐引擎的计算等,应采用离线分析的方式,通过数据采集工具将日志数据导入专用的分析平台。但面对海量数据,传统的ETL工具往往彻底失效,主要原因是数据格式转换的开销太大,在性能上无法满足海量数据的采集需求。互联网企业的海量数据采集工具,有Facebook开源的Scribe、LinkedIn开源的Kafka、淘宝开源的Timetunnel、Hadoop的Chukwa等,均可以满足每秒数百MB的日志数据采集和传输需求,并将这些数据上载到Hadoop中央系统上。 按照大数据的数据量,分为内存级别、BI级别、海量级别三种。 这里的内存级别指的是数据量不超过集群的内存最大值。不要小看今天内存的容量,Facebook缓存在内存的Memcached中的数据高达320TB,而目前的PC服务器,内存也可以超过百GB。因此可以采用一些内存数据库,将热点数据常驻内存之中,从而取得非常快速的分析能力,非常适合实时分析业务。图1是一种实际可行的MongoDB分析架构。 MongoDB大集群目前存在一些稳定性问题,会发生周期性的写堵塞和主从同步失效,但仍不失为一种潜力十足的可以用于高速数据分析的NoSQL。 此外,目前大多数服务厂商都已经推出了带4GB以上SSD的解决方案,利用内存+SSD,也可以轻易达到内存分析的性能。随着SSD的发展,内存数据分析必然能得到更加广泛的应用。 BI级别指的是那些对于内存来说太大的数据量,但一般可以将其放入传统的BI产品和专门设计的BI数据库之中进行分析。目前主流的BI产品都有支持TB级以上的数据分析方案。种类繁多,就不具体列举了。 海量级别指的是对于数据库和BI产品已经完全失效或者成本过高的数据量。海量数据级别的优秀企业级产品也有很多,但基于软硬件的成本原因,目前大多数互联网企业采用Hadoop的HDFS分布式文件系统来存储数据,并使用MapReduce进行分析。本文稍后将主要介绍Hadoop上基于MapReduce的一个多维数据分析平台。 数据分析的算法复杂度 根据不同的业务需求,数据分析的算法也差异巨大,而数据分析的算法复杂度和架构是紧密关联的。举个例子,Redis是一个性能非常高的内存Key-Value NoSQL,它支持List和Set、SortedSet等简单集合,如果你的数据分析需求简单地通过排序,链表就可以解决,同时总的数据量不大于内存(准确地说是内存加上虚拟内存再除以2),那么无疑使用Redis会达到非常惊人的分析性能。 还有很多易并行问题(Embarrassingly Parallel),计算可以分解成完全独立的部分,或者很简单地就能改造出分布式算法,比如大规模脸部识别、图形渲染等,这样的问题自然是使用并行处理集群比较适合。 而大多数统计分析,机器学习问题可以用MapReduce算法改写。MapReduce目前最擅长的计算领域有流量统计、推荐引擎、趋势分析、用户行为分析、数据挖掘分类器、分布式索引等。
Ubuntu 12.04上HAProxy安装和配置
一、安装 adam@hnn:~$ uname -a Linux hnn 3.2.0-35-generic-pae #55-Ubuntu SMP Wed Dec 5 18:04:39 UTC 2012 i686 i686 i386 GNU/Linux wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.22.tar.gz tar xvf haproxy-1.4.22.tar.gz cd haproxy-1.4.22 make TARGET=linux32 PREFIX=/home/adam/haproxy make install PREFIX=/home/adam/haproxy 安装apache sudo apt-get install apache2 二、基本配置 vi /home/adam/haproxy/haproxy.cfg global daemon maxconn 256 log 127.0.0.1 local2 defaults log global mode [...]