nosqlwiki的简单介绍
科技公司钟爱的50款开源工具
大数据
成都创新互联公司是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十年时间我们累计服务了上千家以及全国政企客户,如成都资质代办等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞美。
1. Hadoop
Apache主持的这个项目是最广为人知的大数据工具。众多公司为Hadoop提供相关产品或商业支持,包括亚马逊网络服务、Cloudera、Hortonworks、IBM、Pivotal、Syncsort和VMware。知名用户包括:阿里巴巴、美国在线、电子港湾、Facebook、谷歌、Hulu、领英、Spotify、推特和雅虎。
支持的操作系统:Windows、Linux和OS X
相关网站:http://hadoop.apache.org
2. Hypertable
Hypertable在互联网公司当中非常流行,它由谷歌开发,用来提高数据库的可扩展性。用户包括百度、电子港湾、Groupon和Yelp。它与Hadoop兼容,提供商业支持和培训。
支持的操作系统:Linux和OS X
相关网站:http://
3. Mesos
Apache Mesos是一种资源抽象工具,有了它,企业就可以鼗整个数据中心当成一个资源池,它在又在运行Hadoop、Spark及类似应用程序的公司当中很流行。使用它的企业组织包括:Airbnb、欧洲原子核研究组织(CERN)、思科、Coursera、Foursquare、Groupon、网飞(Netflix)、推特和优步。
支持的操作系统:Linux和OS X
相关网站:http://mesos.apache.org
4. Presto
Presto由Facebook开发,自称是“一款开源分布式SQL查询引擎,用于对大大小小(从GB级到PB级)的数据源运行交互式分析查询。”Facebook表示,它将Presto用于对300PB大小的数据仓库执行查询,其他用户包括Airbnb和Dropbox。
支持的操作系统:Linux
相关网站:https://prestodb.io
5. Solr
这种“快若闪电”的企业搜索平台声称高度可靠、扩展和容错。使用它的公司包括:ATT、Ticketmaster、康卡斯特、Instagram、网飞、IBM、Adobe和SAP Hybris。
支持的操作系统:与操作系统无关
相关网站:http://lucene.apache.org/solr/
6. Spark
Apache Spark声称,“它在内存中运行程序的速度比Hadoop MapReduce最多快100倍,在磁盘上快10倍。”Spark“支持”的企业组织包括:亚马逊、百度、Groupon、日立解决方案、IBM、MyFitnessPal、诺基亚和雅虎。
支持的操作系统:Windows、Linux和OS X
相关网站:http://spark.apache.org
7. Storm
正如Hadoop用来处理批量数据,Apache Storm用来处理实时数据。官方网站上显示用户包括:天气频道、推特、雅虎、WebMD、Spotify、威瑞信(Verisign)、Flipboard和Klout。
支持的操作系统:Linux
相关网站:https://storm.apache.org
云计算
8. Cloud Foundry
Cloud Foundry提供用于构建平台即服务的开源工具。它声称“由行业领袖为行业领袖构建”,其支持者包括IBM、 Pivotal、惠普企业、VMware、英特尔、SAP和EMC。
支持的操作系统:Linux
相关网站:https://
9. CloudStack
这个交钥匙IaaS解决方案构成了许多公共云和私有云的基础。它的用户极多,包括阿尔卡特-朗讯、苹果、Autodesk、英国电信、冠群科技、思杰、Cloudera、戴尔、富士通、SAP和韦里逊。
支持的操作系统:与操作系统无关
相关网站:http://cloudstack.apache.org
10. OpenStack
这种很受欢迎的云计算平台声称,“世界上成百上千个大品牌”每天依赖它。支持者包括:ATT、Ubuntu、惠普企业、IBM、英特尔、Rackspace、红帽、SUSE、思科、戴尔、EMC、赛门铁克及另外许多知名科技公司。
支持的操作系统:与操作系统无关
相关网站:http://
11. Scalr
这种云管理平台备受市场研究公司的好评,它简化了管理多个云环境的过程。知名用户包括Expedia、三星、美国宇航局喷气推进实验室、埃森哲、索尼和Autodesk。
支持的操作系统:Linux
相关网站:http://
容器
12. Docker
Docker在相对新兴的容器领域迅速确立起了主导平台这一地位。科技界的许多大牌公司在构建或提供扩展或使用Docker技术的产品,包括亚马逊、微软、IBM、惠普企业、红帽、Rackspace和Canonical。
支持的操作系统:Windows、Linux和OS X
相关网站:https://
输入标题 内容管理
13. DNN
这款内容管理解决方案之前名为DotNetNuke,承诺构建丰富的交互式网站时,只要花较少的精力,就能收到显著的成效。用户包括佳能、时代华纳有线电视、德州仪器和美国银行。
支持的操作系统:Windows
相关网站:http://
14. Drupal
Drupal声称,98000多个开发人员在为这个极其流行的内容管理系统积极贡献代码。支持者包括微软、Zend、Fastly和New Relic,其内容市场有数百家公司参与其中,它们提供了相关的产品和服务。
支持的操作系统:与操作系统无关
相关网站:https://
15. Joomla
Joomla为数百万个网站提供平台,其下载量超过了5000万人次。许多用户当中就有这些公司:电子港湾、巴诺书店、MTV和标致。
支持的操作系统:与操作系统无关
相关网站:https://
16. MediaWiki
MediaWiki以维基百科使用的软件而出名,它还为百度、Vistaprint、Novell、英特尔和美国宇航局支持网站。它是构建可编辑网页的不错选择,许多企业组织用它来构建内部知识库。
支持的操作系统:Windows、Linux/Unix和OS X
相关网站:https://
数据库
17. Cassandra
这种NoSQL数据库由Facebook开发,其用户包括苹果、欧洲原子核研究组织(CERN)、康卡斯特、电子港湾、GitHub、GoDaddy、Hulu、Instagram、Intuit、网飞、Reddit及其他科技公司。它支持极其庞大的数据集,声称拥有非常高的性能和出色的耐用性和弹性。可通过第三方获得支持。
支持的操作系统:与操作系统无关
相关网站:http://cassandra.apache.org
18. CouchDB
CouchDB为Web而开发,这种NoSQL数据库将数据存储在JSON文档中,这类文档可通过HTTP来加以查询,并用JavaScript来处理。Cloudant现在归IBM所有,它提供一款专业人员支持的软件版本,用户包括:三星、Akamai、Expedia、微软游戏工作室及其他公司。
支持的操作系统:Windows、Linux、OS X和安卓
相关网站:http://couchdb.apache.org
19. MongoDB
MongoDB是一种NoSQL数据库,声称“针对关键任务型部署环境进行了优化”,用户包括Foursquare、《福布斯》、Pebble、Adobe、领英、eHarmony及其他公司。提供收费的专业版和企业版。
支持的操作系统:Windows、Linux、OS X和Solaris
相关网站:http://
20. MySQL
MySQL自称是“世界上最流行的开源数据库”,备受众多互联网公司的青睐,比如YouTube、贝宝、谷歌、Facebook、推特、电子港湾、领英、优步和亚马逊。除了免费社区版外,它还有多款收费版。最新更新版声称速度比老版本快三倍。
支持的操作系统:Windows、Linux、Unix和OS X
相关网站:http://
21. Neo4j
Neo4J自诩为“世界上领先的图形数据库”,用于欺诈检测、推荐引擎、社交网站、主数据管理及更多领域。用户包括电子港湾、沃尔玛、思科、惠普、埃森哲、CrunchBase、eHarmony、Care.com及另外许多企业组织。
支持的操作系统:Windows和Linux
相关网站:http://neo4j.com
开发工具
22. Bugzilla
Bugzilla是开源社区的宠儿,用户包括Mozilla、Linux基金会、GNOME、KDE、Apache、LibreOffice、Open Office、Eclipse、红帽、Novell及其他公司。这款软件缺陷追踪系统(bugtracker)的重要功能包括:高级搜索功能、电子邮件通知、预定报告、时间追踪、出色的安全及更多特性。
支持的操作系统:Windows、Linux和OS X
相关网站:https://
23. Eclipse
Eclipse项目最为知名的是,它是一种大受欢迎的面向Java的集成开发环境(IDE),它还提供面向C/C++和PHP的IDE,此外提供另外一大批开发工具。主要支持者包括冠群科技、谷歌、IBM、甲骨文、红帽和SAP。
支持的操作系统:与操作系统无关
相关网站:http://
24. Ember.js
这种框架用于“构建野心勃勃的Web应用程序”,旨在为JavaScript开发人员提高工作效率。官方网站上显示用户包括雅虎、Square、Livingsocial、Groupon、Twitch、TED、网飞、Heroku和微软。
支持的操作系统:与操作系统无关
相关网站: http://emberjs.com
25. Grunt
Grunt是一种JavaScript任务运行工具,有助于自动处理重复性的开发任务。使用它的知名科技公司包括:Adobe、推特、Mozilla、Cloudant和WordPress。
支持的操作系统:与操作系统无关
相关网站:http://gruntjs.com
26. LoopBack
这个Node.js框架旨在让用户很容易构建REST API,并连接到后端数据存储区。知名用户包括GoDaddy、美国能源部和赛门铁克。
支持的操作系统:Windows、Linux、OS X、安卓和iOS
相关网站:http://loopback.io
27. Node.js
Node.js的成名之处在于,它让开发人员可以使用JavaScript,编写服务器端应用程序。开发工作之前由Joyent管控,现在交由Node.js基金会监管。用户包括IBM、微软、雅虎、SAP、领英、贝宝和网飞。
支持的操作系统:Windows、Linux和OS X
相关网站:https://nodejs.org/en/
28. PhoneGap
Apache Cordova是一种开源框架,让开发人员可以使用HTML、CSS和JavaScript等Web技术,构建移动应用程序。PhoneGap是最受欢迎的Cordova发行版。使用某一种Cordova发行版的科技公司包括:维基百科、Facebook、 Salesforce、IBM、微软、Adobe和黑莓。
支持的操作系统:Window、Linux和OS X
相关网站:http://phonegap.com
29. React Native
React Native由Facebook开发,这种框架可用于使用JavaScript和React JavaScript库(同样由Facebook开发),构建原生移动应用程序。其他用户包括:《探索》频道和CBS体育新闻网。
支持的操作系统:OS X
相关网站:http://facebook.github.io/react-native/
30. Ruby on Rails
这个Web开发框架在开发人员当中极其流行,它声称“为确保编程员满意和持续高效地工作进行了优化”。用户包括Basecamp、推特、Shopify和GitHub等公司。
支持的操作系统:Windows、Linux和OS X
相关网站:http://rubyonrails.org
31. Sencha Touch
Sencha Touch自称是“一种用于构建通用移动应用程序的领先的跨平台移动Web应用程序框架,基于HTML5和JavaScript”。它既有开源许可证版本,也有商业许可证版本。据官方网站声称,《财富》100强中60%使用它。
支持的操作系统:与操作系统无关
相关网站:https://
32. ZK
索尼、Sun、IBM、Adobe、电子港湾、富士通、梦工厂和优利系统等公司使用这种Java Web框架来构建Web和移动应用程序。提供收费支付及相关工具。
支持的操作系统:与操作系统无关
相关网站:http://
中间件
33. JBoss
红帽的JBoss中间件包括各种轻量级、对云计算友好的工具,同时结合、集成和自动化各个企业应用程序和系统。用户包括:橡树岭国家实验室、日产、思科、冠群科技、AMD及其他公司。
支持的操作系统:Linux
相关网站:http://
操作系统
34. 红帽企业版Linux
红帽最知名的产品就是其旗舰Linux发行版,这需要付费订购。据该公司声称,《财富》全球500强公司中超过90%在使用红帽产品。
相关网站:http://
35. SUSE Linux企业版
这款面向企业的Linux发行版同样备受大企业的追捧,它也需要付费订购。该公司声称,它有13000多个企业用户,包括伦敦证券交易所、SAP、天睿(Teradata)和沃尔格林连锁药店(Walgreens)。
相关网站:https://
36. Ubuntu
Ubuntu提供广受欢迎的Linux发行版,有多个版本:桌面版、服务器版、云版、手机版、平板电脑版和物联网版。声称用户包括亚马逊、IBM、维基百科和英伟达。
相关网站:http://
项目管理
37. Project Libre
这个屡获奖项的项目是微软Project的替代者,下载量已有近200万人次。它有一大批用户,包括IBM、埃森哲、美国能源部、思科、ATI和AMD。
支持的操作系统:Windows、Linux和OS X
相关网站:http://
存储
38. FreeNAS
这款开源网络附加存储(NAS)软件声称,它备受联合国、迪士尼互动媒体集团、路透社和Dr. Phil等用户的“喜爱”。它可以安装到几乎任何硬件上,而TrueNAS提供的预先构建的设备就基于该技术。
支持的操作系统:FressBSD
相关网站:http://
39. Gluster
Gluster是一种可高度扩展的网络文件系统,适合云计算环境。红帽提供一款基于该技术的收费产品,用户包括卡西欧和Intuit。
支持的操作系统:Linux
相关网站:http://
40. Lustre
Lustre是另一种可高度扩展的文件系统,旨在支持高性能计算(HPC)环境。一些最早采用它的用户包括美国的几大国家实验室:劳伦斯·利物莫尔国家实验室、桑迪亚国家实验室、橡树岭国家实验室和洛斯阿拉莫斯国家实验室。
支持的操作系统:Linux
相关网站:http://lustre.org
系统管理工具
41. Ansible
Ansible现在归红帽所有,它自称是“一种异常简单的IT自动化引擎,可以使云服务配置、配置管理、应用程序部署、服务内部的编排以及其他许多IT操作实现自动化。”使用它的科技公司包括:思科、瞻博网络、Evernote、推特、威瑞信、GoPro、EA Sports、Atlassian和韦里逊。它既有免费版,也有收费版。
支持的操作系统:Linux
相关网站:http://
42. Chef
作为另一款自动化工具,Chef支持开发运维方法,同时改善了速度、协作和安全性。拥有免费版和收费版。官方网站上显示用户包括:塔吉特(Target)、诺德斯特龙(Nordstrom)、Facebook、Etsy、IGM、雅虎和彭博社。
支持的操作系统:Windows、Linux和OS X
相关网站:https://
43. Hudson
Hudson在使用敏捷和开发运维方法的企业当中很流行,它是一种可扩展的持续集成服务器系统,可以监控重复作业的执行。这个项目得到了Eclipse基金会、甲骨文、Atlassian和YourKit的支持。
支持的操作系统:与操作系统无关
相关网站:http://hudson-ci.org
44. Puppet
Puppet号称“使用最广泛的开源IT管理系统”,它包括40多个基础设施管理方面的开源项目。除了开源版本外,它还有一款收费的企业版本。它声称,用户包括25000多家企业,比如迪士尼、沃尔玛、1-800-Flowers.com、Heartland Payment Systems、盖蒂图片社(Getty Images)和Yelp。
支持的操作系统:Windows、Linux、Unix和OS X
相关网站:https://puppetlabs.com/puppet/open-source-projects
版本控制
45. Bazaar
Bazaar由Canonical管理,被许多开源项目所使用,包括Ubuntu、 GNU基金会、Linux基金会、MySQL、Bugzilla、 Debian和Maria DB。它简单易学,支持任何工作流程和工作区间模式,承诺存储效率很高、速度很快。
支持的操作系统:Windows、Linux和OS X
相关网站:http://bazaar.canonical.com/en/
46. Git
这个版本控制系统已变得极受欢迎,这一方面归功于GitHub服务的使用日益广泛。使用它的公司和项目包括:谷歌、Facebook、微软、推特、领英、网飞、Perl、PostgreSQL、安卓、Rails、QT、Gnome和Eclipse。
支持的操作系统:Windows、Linux和OS X
相关网站:http://git-scm.com
47. Mercurial
Mercurial是一种分布式源代码控制管理工具,专注于帮助团队更轻松、更快速地协同工作。用户包括OpenJDK和NetBeans等各大项目。
支持的操作系统:Windows、Linux和OS X
相关网站:https://
48. Subversion
这个企业级版本控制系统得到Apache的支持,首次发布于2000年。使用它的企业组织包括Apache软件基金会自己、Hobby Lobby、Mono、Plone和GNU Enterprise。
支持的操作系统:Windows、Linux和OS X
相关网站:http://subversion.apache.org
Web服务器
49. Apache HTTP Server
Apache至今已有20年多的历史,专利是自1996年以来互联网上最受欢迎的Web服务器系统。据W3Techs声称,目前所有网站中55.3%是由Apache支持的。
支持的操作系统:Windows、Linux和OS X
相关网站:http://httpd.apache.org
50. Nginx
Nginx的人气也极旺,它被互联网上所有网站中的大约四分之一所使用。除了俄罗斯许多访问量很大的网站外,用户还包括网飞和WordPress.com。
支持的操作系统:Windows、Linux和OS X
相关网站:http://nginx.org
如何安装和配置Cassandra
Cassandra属于最近比较流行的一款NoSQL数据库 中给NoSQL的定义如下:
下一代的数据库产品应该具备这几点:非关系型的,分布式的,开源的,可以线性扩展的。这类数据库最初的目的在于提供现代网站可扩展的数据库解决方案。这个运动开始于2009年初,目前正在迅速的发展。这种类型的数据库具有:自由的schema,数据多处备份,简单的编程API,数据的最终一致性保证等等。所以我们将这种类型的数据库称为NoSQL(不仅仅是SQL,全称为“not only sql”)。
下面我们一起来看看如果分别在Windows和Linux环境下安装和部署Cassandra。
在WINDOWS上单机运行CASSANDRA
大多数人使用的OS都是Windows,所以如果只是想简单地测试一下Cassandra,我们可以直接在安装好JDK1.6的Windows系统上安装Cassandra,并进行简单的测试。
1 下载Cassandra
下载即可。目前最新的beta版本是0.6.0 b3,但是我们安装使用的最新的Release版本0.5.1。
2 安装Cassandra
将下载的压缩包解压,假设解压的位置是D:\apache-cassandra-0.5.1。
1 修改conf目录下的log4j.properties文件:
log4j.appender.R.File=D:\apache-cassandra-0.5.1\logs
2 修改conf目录下的storage-conf.xml文件:
CommitLogDirectoryD:\apache-cassandra-0.5.1\commitlog/CommitLogDirectory
DataFileDirectories
DataFileDirectoryD:\apache-cassandra-0.5.1\data/DataFileDirectory
/DataFileDirectories
CalloutLocationD:\apache-cassandra-0.5.1\callouts/CalloutLocation
StagingFileDirectoryD:\apache-cassandra-0.5.1\staging/StagingFileDirectory
3 设置系统的环境变量:
CASSANDRA_HOME=D:\apache-cassandra-0.5.1
3 启动Cassandra
运行bin目录下的cassandra.bat。如果看到:INFO - Starting up server gossip,那么恭喜你,Cassandra已经在你的本机启动起来了。
4 使用命令行进行简单的测试
运行bin目录下的cassandra-cli.bat。输入:connect localhost 9160,连接成功后可以看到下面的提示。
cassandra connect localhost 9160
line 1:18 missing SLASH at '9160'
Connected to localhost/9160
然后,我们可以参考README.txt文件中提供的范例进行测试:
cassandra set Keyspace1.Standard1['jsmith']['first'] = 'John'
Value inserted.
cassandra set Keyspace1.Standard1['jsmith']['last'] = 'Smith'
Value inserted.
cassandra set Keyspace1.Standard1['jsmith']['age'] = '42'
Value inserted.
cassandra get Keyspace1.Standard1['jsmith']
(column=age, value=42; timestamp=1249930062801)
(column=first, value=John; timestamp=1249930053103)
(column=last, value=Smith; timestamp=1249930058345)
Returned 3 rows.
cassandra
你也可以根据这篇文章《谈谈Cassandra的客户端》中的内容测试一下如何使用Java编写简单的程序和Cassandra交互。
在LINUX上运行CASSANDRA集群
如果需要真正在生产环境中使用Cassandra,我们需要搭建一个Cassandra集群,这样才能真正发挥出它作为NoSQL数据所应该具备的特性。
在Linux部署Cassandra的步骤基本与Windows上部署的类似,我们需要在每一台机器上安装JDK1.6,然后下载Cassandra,并修改log4j.properties和storage-conf.xml的配置文件和设置环境变量。不同的是,我们需要在storage-conf.xml文件中配置集群的信息:
1 配置集群
1 配置集群节点信息
Seeds
Seedhadoop2/Seed
Seedhadoop3/Seed
Seedhadoop4/Seed
Seedhadoop5/Seed
Seedhadoop6/Seed
Seedhadoop7/Seed
Seedhadoop8/Seed
Seedhadoop9/Seed
Seedhadoop10/Seed
/Seeds
2 配置集群节点之间交互的监听地址
直接留空即可:
ListenAddress/ListenAddress
3 配置Thrift Server监听的地址
直接留空即可:
ThriftAddress/ThriftAddress
4 配置集群的名称
每一个集群的名称都应该是不用的
ClusterNamegpcuster.cnblogs.com/ClusterName
5 开启节点自动加入集群的功能
AutoBootstraptrue/AutoBootstrap
6 配置数据的备份数
ReplicationFactor3/ReplicationFactor
7 调节Memory和Disk的性能
需要根据实际的情况来配置,可以参考Wiki。
2 运行Cassandra
在每一台节点上,运行bin/cassandra。如果看到:INFO - Starting up server gossip,说明启动成功。
大数据包括一些什么?
大数据技术包括数据收集、数据存取、基础架构、数据处理、统计分析、数据挖掘、模型预测、结果呈现1、数据收集:在大数据的生命周期中,数据采集处于第一个环节。根据MapReduce产生数据的应用系统分类,大数据的采集主要有4种来源:管理信息系统、Web信息系统、物理信息系统、科学实验系统。2、数据存取:大数据的存去采用不同的技术路线,大致可以分为3类。第1类主要面对的是大规模的结构化数据。第2类主要面对的是半结构化和非结构化数据。第3类面对的是结构化和非结构化混合的大数据,3、基础架构:云存储、分布式文件存储等。4、数据处理:对于采集到的不同的数据集,可能存在不同的结构和模式,如文件、XML 树、关系表等,表现为数据的异构性。对多个异构的数据集,需要做进一步集成处理或整合处理,将来自不同数据集的数据收集、整理、清洗、转换后,生成到一个新的数据集,为后续查询和分析处理提供统一的数据视图。5、统计分析:假设检验、显著性检验、差异分析、相关分析、T检验、方差分析、卡方分析、偏相关分析、距离分析、回归分析、简单回归分析、多元回归分析、逐步回归、回归预测与残差分析、岭回归、logistic回归分析、曲线估计、因子分析、聚类分析、主成分分析、因子分析、快速聚类法与聚类法、判别分析、对应分析、多元对应分析(最优尺度分析)、bootstrap技术等等。6、数据挖掘:目前,还需要改进已有数据挖掘和机器学习技术;开发数据网络挖掘、特异群组挖掘、图挖掘等新型数据挖掘技术;突破基于对象的数据连接、相似性连接等大数据融合技术;突破用户兴趣分析、网络行为分析、情感语义分析等面向领域的大数据挖掘技术。7、模型预测:预测模型、机器学习、建模仿真。8、结果呈现:云计算、标签云、关系图等。
大数据包括哪些?
简单来说,从大数据的生命周期来看,无外乎四个方面:大数据采集、大数据预处理、大数据存储、大数据分析,共同组成了大数据生命周期里最核心的技术,下面分开来说:
一、大数据采集
大数据采集,即对各种来源的结构化和非结构化海量数据,所进行的采集。
数据库采集:流行的有Sqoop和ETL,传统的关系型数据库MySQL和Oracle 也依然充当着许多企业的数据存储方式。当然了,目前对于开源的Kettle和Talend本身,也集成了大数据集成内容,可实现hdfs,hbase和主流Nosq数据库之间的数据同步和集成。
网络数据采集:一种借助网络爬虫或网站公开API,从网页获取非结构化或半结构化数据,并将其统一结构化为本地数据的数据采集方式。
文件采集:包括实时文件采集和处理技术flume、基于ELK的日志采集和增量采集等等。
二、大数据预处理
大数据预处理,指的是在进行数据分析之前,先对采集到的原始数据所进行的诸如“清洗、填补、平滑、合并、规格化、一致性检验”等一系列操作,旨在提高数据质量,为后期分析工作奠定基础。数据预处理主要包括四个部分:数据清理、数据集成、数据转换、数据规约。
数据清理:指利用ETL等清洗工具,对有遗漏数据(缺少感兴趣的属性)、噪音数据(数据中存在着错误、或偏离期望值的数据)、不一致数据进行处理。
数据集成:是指将不同数据源中的数据,合并存放到统一数据库的,存储方法,着重解决三个问题:模式匹配、数据冗余、数据值冲突检测与处理。
数据转换:是指对所抽取出来的数据中存在的不一致,进行处理的过程。它同时包含了数据清洗的工作,即根据业务规则对异常数据进行清洗,以保证后续分析结果准确性。
数据规约:是指在最大限度保持数据原貌的基础上,最大限度精简数据量,以得到较小数据集的操作,包括:数据方聚集、维规约、数据压缩、数值规约、概念分层等。
三、大数据存储
大数据存储,指用存储器,以数据库的形式,存储采集到的数据的过程,包含三种典型路线:
1、基于MPP架构的新型数据库集群
采用Shared Nothing架构,结合MPP架构的高效分布式计算模式,通过列存储、粗粒度索引等多项大数据处理技术,重点面向行业大数据所展开的数据存储方式。具有低成本、高性能、高扩展性等特点,在企业分析类应用领域有着广泛的应用。
较之传统数据库,其基于MPP产品的PB级数据分析能力,有着显著的优越性。自然,MPP数据库,也成为了企业新一代数据仓库的最佳选择。
2、基于Hadoop的技术扩展和封装
基于Hadoop的技术扩展和封装,是针对传统关系型数据库难以处理的数据和场景(针对非结构化数据的存储和计算等),利用Hadoop开源优势及相关特性(善于处理非结构、半结构化数据、复杂的ETL流程、复杂的数据挖掘和计算模型等),衍生出相关大数据技术的过程。
伴随着技术进步,其应用场景也将逐步扩大,目前最为典型的应用场景:通过扩展和封装 Hadoop来实现对互联网大数据存储、分析的支撑,其中涉及了几十种NoSQL技术。
3、大数据一体机
这是一种专为大数据的分析处理而设计的软、硬件结合的产品。它由一组集成的服务器、存储设备、操作系统、数据库管理系统,以及为数据查询、处理、分析而预安装和优化的软件组成,具有良好的稳定性和纵向扩展性。
四、大数据分析挖掘
从可视化分析、数据挖掘算法、预测性分析、语义引擎、数据质量管理等方面,对杂乱无章的数据,进行萃取、提炼和分析的过程。
1、可视化分析
可视化分析,指借助图形化手段,清晰并有效传达与沟通信息的分析手段。主要应用于海量数据关联分析,即借助可视化数据分析平台,对分散异构数据进行关联分析,并做出完整分析图表的过程。
具有简单明了、清晰直观、易于接受的特点。
2、数据挖掘算法
数据挖掘算法,即通过创建数据挖掘模型,而对数据进行试探和计算的,数据分析手段。它是大数据分析的理论核心。
数据挖掘算法多种多样,且不同算法因基于不同的数据类型和格式,会呈现出不同的数据特点。但一般来讲,创建模型的过程却是相似的,即首先分析用户提供的数据,然后针对特定类型的模式和趋势进行查找,并用分析结果定义创建挖掘模型的最佳参数,并将这些参数应用于整个数据集,以提取可行模式和详细统计信息。
3、预测性分析
预测性分析,是大数据分析最重要的应用领域之一,通过结合多种高级分析功能(特别统计分析、预测建模、数据挖掘、文本分析、实体分析、优化、实时评分、机器学习等),达到预测不确定事件的目的。
帮助分用户析结构化和非结构化数据中的趋势、模式和关系,并运用这些指标来预测将来事件,为采取措施提供依据。
4、语义引擎
语义引擎,指通过为已有数据添加语义的操作,提高用户互联网搜索体验。
5、数据质量管理
指对数据全生命周期的每个阶段(计划、获取、存储、共享、维护、应用、消亡等)中可能引发的各类数据质量问题,进行识别、度量、监控、预警等操作,以提高数据质量的一系列管理活动。
以上是从大的方面来讲,具体来说大数据的框架技术有很多,这里列举其中一些:
文件存储:Hadoop HDFS、Tachyon、KFS
离线计算:Hadoop MapReduce、Spark
流式、实时计算:Storm、Spark Streaming、S4、Heron
K-V、NOSQL数据库:HBase、Redis、MongoDB
资源管理:YARN、Mesos
日志收集:Flume、Scribe、Logstash、Kibana
消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ
查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
分布式协调服务:Zookeeper
集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager
数据挖掘、机器学习:Mahout、Spark MLLib
数据同步:Sqoop
任务调度:Oozie
······
想要学习更多关于大数据的知识可以加群和志同道合的人一起交流一下啊[ ]
大数据时代的数据分析师该了解哪些事情
大数据时代的数据分析师该了解哪些事情
近几年来,大数据养精蓄锐,从刚开始的无人谈及,到现在的盛行谈论,就这样走进了公众的视野。什么是大数据呢?对于数据分析师,它有意味着什么?处在人人高谈的大数据时代,数据分析师该了解哪些内容,本文将为您解答。
用Google搜索了一下“BigData”,得到了19,600,000个结果……而使用同样的词语,在两年前你几乎搜索不到什么内容,而现在大数据的内容被大肆宣传,内容多得让人眼花缭乱。而这些内容主要是来自IBM、麦肯锡和O’Reilly ,大多数文章都是基于营销目的的夸夸其谈,对真实的情况并不了解,有些观点甚至是完全错误的。我问自己…… 大数据之于数据分析师,它意味着什么呢?如下图所示,谷歌趋势显示,与“网站分析”(web analytics)和”商业智能”(business intelligence)较为平稳的搜索曲线相比,“大数据”(big data)的搜索量迎来了火箭式的大幅度增长。
被神话的大数据
Gartner把“大数据”的发展阶段定位在“社交电视”和“移动机器人”之间,正向着中部期望的高峰点迈进,而现在是达到较为成熟的阶段前的二至五年。这种定位有着其合理性。各种奏唱着“大数据”颂歌的产品数量正在迅速增长,大众媒体也进入了“大数据”主题的论辩中,比如纽约时报的“大数据的时代“,以及一系列在福布斯上发布的题为” 大数据技术评估检查表“的文章。
进步的一面体现在
,大数据的概念正在促使内部组织的文化发生转变,对过时的“商务智能”形成挑战,并促进了“分析”意识的提升。
基于大数据的创新技术可以很容易地被应用到类似数据分析的各种环境中。值得一提的是,企业组织通过应用先进的业务分析,业务将变得更广泛、更复杂,价值也更高,而传统的网站分析受到的关注将会有所减弱。
大数据的定义
什么是“大数据”,目前并没有统一的定义。维基百科提供的定义有些拙劣,也不完整:“ 大数据,指的是所涉及的数据量规模巨大到无法通过主流的工具,在合理的时间内撷取、管理、处理、并整理成为人们所能解读的信息 “。
IBM 提供了一个充分的简单易懂的概述:
大数据有以下三个特点:大批量(Volume)、高速度(Velocity)和多样化(Variety) 。 大批量 – 大数据体积庞大。企业里到处充斥着数据,信息动不动就达到了TB级,甚至是PB级。 高速度 – 大数据通常对时间敏感。为了最大限度地发挥其业务价值,大数据必须及时使用起来。 多样化 – 大数据超越了结构化数据,它包括所有种类的非结构化数据,如文本、音频、视频、点击流、日志文件等等都可以是大数据的组成部分。 MSDN的布莱恩·史密斯在IBM的基础上增加了第四点: 变异性 – 数据可以使用不同的定义方式来进行解释。不同的问题需要不同的阐释。
从技术角度看大数据
大数据包括了以下几个方面:数据采集、存储、搜索、共享、分析和可视化,而这些步骤在商务智能中也可以找到。在皮特·沃登的“ 大数据词汇表 “中,囊括了60种创新技术,并提供了相关的大数据技术概念的简要概述。
获取 :数据的获取包括了各种数据源、内部或外部的、结构化或非结构化的数据。“大多数公共数据源的结构都不清晰,充满了噪音,而且还很难获得。” 技术: Google Refine、Needlebase、ScraperWiki、BloomReach 。
序列化:“你在努力把你的数据变成有用的东西,而这些数据会在不同的系统间传递,并可能存储在不同节点的文件中。这些操作都需要某种序列化,因为数据处理的不同阶段可能需要不同的语言和API。当你在处理非常大量的记录时,该如何表示和存储数据,你所做的选择对你的存储要求和性能将产生巨大影响。 技术: JSON、BSON、Thrift、Avro、Google Protocol Buffers 。
存储 :“大规模的数据处理操作使用了全新的方式来访问数据,而传统的文件系统并不适用。它要求数据能即时大批量的读取和写入。效率优先,而那些有助于组织信息的易于用户使用的目录功能可能就显得没那么重要。因为数据的规模巨大,这也意味着它需要被存储在多台分布式计算机上。“ 技术: Amazon S3、Hadoop分布式文件系统 。
服务器 :“云”是一个非常模糊的术语,我们可能对它所表示的内容并不很了解,但目前在计算资源的可用性方面已有了真正突破性的发展。以前我们都习惯于购买或长期租赁实体机器,而现在更常见的情况是直接租用正运行着虚拟实例的计算机来作为服务器。这样供应商可以以较为经济的价格为用户提供一些短期的灵活的机器租赁服务,这对于很多数据处理应用程序来说这是再理想不过的事情。因为有了能够快速启动的大型集群,这样使用非常小的预算处理非常大的数据问题就可能成为现实。“ 技术: Amazon EC2、Google App Engine、Amazon Elastic Beanstalk、Heroku 。
NoSQL:在IT行为中,NoSQL(实际上意味着“不只是SQL”)是一类广泛的数据库管理系统,它与关系型数据库管理系统(RDBMS)的传统模型有着一些显著不同,而最重要的是,它们并不使用SQL作为其主要的查询语言。这些数据存储可能并不需要固定的表格模式,通常不支持连接操作,也可能无法提供完整的ACID(原子性—Atomicity、一致性—Consistency、隔离性—Isolation、持久性—Durability)的保证,而且通常从水平方向扩展(即通过添加新的服务器以分摊工作量,而不是升级现有的服务器)。 技术: Apache Hadoop、Apache Casandra、MongoDB、Apache CouchDB、Redis、BigTable、HBase、Hypertable、Voldemort 。
处理 :“从数据的海洋中获取你想要的简洁而有价值的信息是一件挑战性的事情,不过现在的数据系统已经有了长足的进步,这可以帮助你把数据集到转变成为清晰而有意义的内容。在数据处理的过程中你会遇上很多不同的障碍,你需要使用到的工具包括了快速统计分析系统以及一些支持性的助手程序。“ 技术: R、Yahoo! Pipes、Mechanical Turk、Solr/ Lucene、ElasticSearch、Datameer、Bigsheets、Tinkerpop 。 初创公司: Continuuity、Wibidata、Platfora 。
MapReduce :“在传统的关系数据库的世界里,在信息被加载到存储器后,所有的数据处理工作才能开始,使用的是一门专用的基于高度结构化和优化过的数据结构的查询语言。这种方法由Google首创,并已被许多网络公司所采用,创建一个读取和写入任意文件格式的管道,中间的结果横跨多台计算机进行计算,以文件的形式在不同的阶段之间传送。“ 技术: Hadoop和Hive、Pig、Cascading、Cascalog、mrjob、Caffeine、S4、MapR、Acunu、Flume、Kafka、Azkaban、Oozie、Greenplum 。
自然语言处理 :“自然语言处理(NLP)……重点是利用好凌乱的、由人类创造的文本并提取有意义的信息。” 技术: 自然语言工具包Natural Language Toolkit、Apache OpenNLP、Boilerpipe、OpenCalais。
机器学习:“机器学习系统根据数据作出自动化决策。系统利用训练的信息来处理后续的数据点,自动生成类似于推荐或分组的输出结果。当你想把一次性的数据分析转化成生产服务的行为,而且这些行为在没有监督的情况下也能根据新的数据执行类似的动作,这些系统就显得特别有用。亚马逊的产品推荐功能就是这其中最著名的一项技术应用。“ 技术: WEKA、Mahout、scikits.learn、SkyTree 。
可视化 :“要把数据的含义表达出来,一个最好的方法是从数据中提取出重要的组成部分,然后以图形的方式呈现出来。这样就可以让大家快速探索其中的规律而不是仅仅笼统的展示原始数值,并以此简洁地向最终用户展示易于理解的结果。随着Web技术的发展,静态图像甚至交互式对象都可以用于数据可视化的工作中,展示和探索之间的界限已经模糊。“ 技术: GraphViz、Processing、Protovis、Google Fusion Tables、Tableau 。
大数据的挑战
最近举行的世界经济论坛也在讨论大数据,会议确定了一些大数据应用的机会,但在数据共用的道路上仍有两个主要的问题和障碍。
1.隐私和安全
正如Craig Ludloff在“隐私和大数据“的专题中所提到的,一个难以避免的危机正在形成,大数据将瓦解并冲击着我们生活的很多方面,这些方面包括私隐权、政府或国际法规、隐私权的安全性和商业化、市场营销和广告……试想一下欧盟的cookie法规,或是这样的一个简单情景,一个公司可以轻易地在社交网络上收集各种信息并建立完整的资料档案,这其中包括了人们详细的电子邮箱地址、姓名、地理位置、兴趣等等。这真是一件吓人的事情!
2.人力资本
麦肯锡全球研究所的报告显示 ,美国的数据人才的缺口非常大,还将需要140,000到190,000个有着“深度分析”专业技能的工作人员和1.500个精通数据的经理。寻找熟练的“网站分析”人力资源是一个挑战,另外,要培养自己的真正拥有分析技能的人员,需要学习的内容很多,这无疑是另一个大挑战。
大数据的价值创造
很多大数据的内容都提及了价值创造、竞争优势和生产率的提高。要利用大数据创造价值,主要有以下六种方式。
透明度 :让利益相关人员都可以及时快速访问数据。实验 :启用实验以发现需求,展示不同的变体并提升效果。随着越来越多的交易数据以数字形式存储,企业可以收集更准确、更详细的绩效数据。决策支持 :使用自动化算法替换/支持人类决策,这可以改善决策,减少风险,并发掘被隐藏的但有价值的见解。创新 :大数据有助于企业创造出新的产品和服务,或提升现有的产品和服务,发明新的商业模式或完善原来的商业模式。细分 :更精细的种群细分,可以带来不同的自定义行为。
工业领域的增长 :有了足够的和经过适当培训的人力资源,那些重要的成果才会成为现实并产生价值。
数据分析的机会领域
当“网站分析”发展到“数据智能“,毫无疑问,数据分析人员也工作也应该发生一些转变,过去的工作主要是以网站为中心并制定渠道的具体战术,而在将来则需要负责更具战略性的、面向业务和(大)数据专业知识的工作。
数据分析师的主要关注点不应该是较低层的基础设施和工具开发。以下几点是数据分析的机会领域:
处理:掌握正确的工具以便可以在不同条件下(不同的数据集、不同的业务环境等)进行高效的分析。目前网站分析专家们最常用的工具无疑是各类网站分析工具,大多数人并不熟悉商业智能和统计分析工具如Tableau、SAS、Cognos等的使用。拥有这些工具的专业技能将对数据分析人员的发展大有好处。
NLP:学习非结构化数据分析的专业技能,比如社交媒体、呼叫中心日志和邮件的数据多为非结构化数据。从数据处理的角度来看,在这个行业中我们的目标应该是确定和掌握一些最合适的分析方法和工具,无论是社会化媒体情感分析还是一些更复杂的平台。
可视化 :掌握仪表板的展示技能,或者宽泛点来说,掌握数据可视化的技术是摆在数据分析师面前一个明显的机会(注:不要把数据可视化与现在网络营销中常用的“信息图”infographics相混淆)。
行动计划
在大数时代,其中一个最大的挑战将是满足需求和技术资源的供给。当前的“网站分析”的基础普遍并不足够成熟以支持真正的大数据的使用,填补技能差距,越来越多的“网站分析师”将成长为“数据分析师”。
本文题目:nosqlwiki的简单介绍
浏览地址:http://pwwzsj.com/article/hodsji.html