编辑点评:大数据批量处理工具最新版
众所周知,数据是当今 IT 领域的一切。此外,这些数据每天都在大量增长。早些时候,我们常谈论千字节和兆字节,这款软件可以帮助站长SEO整理专用多功能,感兴趣的就快来下载吧
15款使用最多的大数据分析工具
下面介绍了一些常用的开源工具和很少有付费的商业工具(提供了免费试用版)。让我们详细了解每款工具。
一、Apache Hadoop
Apache Hadoop 是一个分布式文件系统并且能处理大数据的软件框架。它通过 MapReduce 编程模型处理大数据数据集。Hadoop 是一个开源框架,用 Java 编写,它提供了跨平台支持。
毫无疑问,这是最顶级的大数据工具。事实上,超过一半的财富 50 强公司在使用 Hadoop。这些公司包括Amazon Web services,Hortonworks,IBM,英特尔,微软,Facebook等。
优点:
Hadoop 的核心优势是其 HDFS(Hadoop 分布式文件系统),它能够在同一文件系统上保存所有类型的数据 - 视频、图像、JSON、XML 和纯文本。
非常适用于研发目的。
提供对数据的快速访问。
高度可伸缩
在计算机群集上提供的高度可用的服务
缺点:
有时,由于其 3 倍数据冗余,可能会面临磁盘空间问题。
I/O 操作本可以针对更好的性能进行优化。
定价:此软件在 Apache 许可证下可免费使用。
二、CDH (Cloudera Distribution for Hadoop)
CDH着眼于大数据的企业级部署。它是完全开源的,同时提供一个免费的分布式平台,包含Apache Hadoop, Apache Spark, Apache Impala等等。使用CDH,你能够收集、处理、管理、探索、建模和存储无限量的数据。
优点:
完全分布式
Cloudera 管理器很好地管理 Hadoop 集群。
易于实施。
不太复杂的管理。
高安全性和治理性。
缺点:
很少有复杂的 UI 功能,如 CM 服务上的图表。
多种推荐的安装方法听起来令人困惑。
但是,每个节点的许可价格非常昂贵。
定价:CDH 是 Cloudera 的免费软件版本。但是,如果您有兴趣了解 Hadoop 集群的成本,则每个节点的成本约为每 TB 1000 到 2000 美元。
三、Cassandra
Apache Cassandra 没有成本和开源分布式 NoSQL DBMS,用于管理分布在众多领域服务器上的大量数据,提供高可用性。
它使用 CQL(Cassandra Structure Language)与数据库进行交互。一些使用 Cassandra 的知名公司包括埃森哲、美国运通、Facebook、通用电气、霍尼韦尔、雅虎等。
优点:
没有单点故障。
非常快速地处理海量数据。
日志结构化存储。
自动复制。
线性可扩展性。
简单的环状架构。
缺点:
在故障排除和维护方面需要一些额外的努力。
集群本来可以改进。
行级锁特性不存在。
定价:此工具是免费的。
大数据量文本数据如何处理问题?
在日常的工作中我们会遇到大量的数据需要进行分析挖掘,但是由于大量的数据和数据结构往往很难准确进行分析挖掘,下面介绍几种比好常用的方法,
当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。
1.Bloom filter
适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集
基本原理及要点:
对 于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这 个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动到其他的关键字。所以一个简单的改进就是 counting Bloom filter,用一个counter数组代替位数组,就可以支持删除了。
2.Hashing
适用范围:快速查找,删除的基本数据结构,通常需要总数据量可以放入内存
基本原理及要点:
hash函数选择,针对字符串,整数,排列,具体相应的hash方法。
碰撞处理,一种是open hashing,也称为拉链法;另一种就是closed hashing,也称开地址法,opened addressing。
3.bit-map
适用范围:可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下
基本原理及要点:使用bit数组来表示某些元素是否存在,比如8位电话号码
4.堆
适用范围:海量数据前n大,并且n比较小,堆可以放入内存
基 本原理及要点:最大堆求前n小,最小堆求前n大。方法,比如求前n小,我们比较当前元素与最大堆里的最大元素,如果它小于最大元素,则应该替换那个最大元 素。这样最后得到的n个元素就是最小的n个。适合大数据量,求前n小,n的大小比较小的情况,这样可以扫描一遍即可得到所有的前n元素,效率很高。
5.双层桶划分 ----其实本质上就是【分而治之】的思想,重在“分”的技巧上!
适用范围:第k大,中位数,不重复或重复的数字
基本原理及要点:因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后在一个可以接受的范围内进行。可以通过多次缩小,双层只是一个例子。
6.数据库索引
适用范围:大数据量的增删改查
基本原理及要点:利用数据的设计实现方法,对海量数据的增删改查进行处理。
7.倒排索引(Inverted index)
适用范围:搜索引擎,关键字查询
基本原理及要点:为何叫倒排索引?一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。
8.外排序
适用范围:大数据的排序,去重
基本原理及要点:外排序的归并方法,置换选择 败者树原理,最优归并树
9.trie树
适用范围:数据量大,重复多,但是数据种类小可以放入内存
基本原理及要点:实现方式,节点孩子的表示方式
10.分布式处理 mapreduce
适用范围:数据量大,但是数据种类小可以放入内存
基本原理及要点:将数据交给不同的机器去处理,数据划分,结果归约。
另外还可以使用一些大数据处理工具来进行数据分析挖掘,如NLPIR大数据语义智能分析系统,它是根据中文数据挖掘的综合需求,融合了网络精准采集、自然语言理解、文本挖掘和语义搜索的研究成果,并针对互联网内容处理的全技术链条的共享开发平台。
NLPIR大数据语义智能分析平台主要有精准采集、文档转化、新词发现、批量分词、语言统计、文本聚类、文本分类、摘要实体、智能过滤、情感分析、文档去重、全文检索、编码转换等十余项功能模块,平台提供了客户端工具,云服务与二次开发接口等多种产品使用形式。各个中间件API可以无缝地融合到客户的各类复杂应用系统之中,可兼容不同操作系统平台,可以供Java,Python,C,C#等各类开发语言使用。
大数据分析和处理的方法步骤
大数据处理数据时代理念的三大转变:要全体不要抽样,要效率不要绝对精确,要相关不要因果。具体的大数据处理方法其实有很多,但是根据长时间的实践,
我们总结了一个基本的大数据处理流程,并且这个流程应该能够对大家理顺大数据的处理有所帮助。整个处理流程可以概括为四步,分别是采集、导入和预处理、统计和分析,以及挖掘。
采集
大数据的采集是指利用多个数据库来接收发自客户端的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,
电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。
在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,
所以需要在采集端部署大量数据库才能支撑。并且如何在这些数据库之间进行负载均衡和分片的确是需要深入的思考和设计。
统计/分析
统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,
一些实时性需求会用到EMC的Greenplum、Oracle的Exadadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。
统计与分析这部分的主要特点和挑战是分析设计的数据量大,其对系统资源,特别是I/O会有极大的占用。
导入/预处理
虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,
并且可以在导入基础上做一些简单的清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。
导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别。
挖掘
与前面统计和分析过程不同的时,数据挖掘一般没有什么预先定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测的效果,从而实现一些高级别数据分析的需求。
比较典型算法有用于聚类的K-Means、用于统计学习的SVM和用于分类的Nsive Bayes,主要使用的工具有Hadoop的Mahout等。该过程的特点和挑战主要是用于挖掘的算法很复杂,并且计算涉及的数据量和计算量都很大,还有,常用数据挖掘算法都以单线程为主。
相关书籍推荐
现在,使用Python和开源工具可以非常方便地进行文本分析,因此在这个文本大数据时代,每个开发人员都需要了解如何分析文本。
推荐图书:《自然语言处理与计算语言》
本书介绍了如何应用自然语言处理和计算语言学算法,对现有数据进行推理,并得到一些有趣的分析结果。这些算法基于目前主流的统计机器学习和人工智能技术,实现工具唾手可得,比如Python社区的Gensim和spaCy之类的工具。
本书从学习数据清洗开始,学习如何执行计算语言学算法,然后使用真实的语言和文本数据、使用Python来探索NLP和深度学习的更高级课题。我们还会学习使用开源工具来标记、
解析和建模文本。读者将掌握优秀框架的实战知识,以及怎样为主题模型选择类似Gensim的工具,怎样通过Keras进行深度学习。
谁适合读这本书?
希望读者对Python有一定的了解,如果没有也没关系,本书会介绍一些Python的基础知识。此外,了解基本的统计学方法也大有裨益。鉴于本书主要内容涉及自然语言处理,所以了解基本语言学的知识还是非常有帮助的。
本书主要内容
第1章,什么是文本分析。当今技术的发展使得开发人员可以方便地从互联网获取海量的文本数据,利用强大、免费的开源工具来进行机器学习、计算语言学方面的研究。
这个领域正在以前所未有的速度发展。本章将详细讨论什么是文本分析,以及学习和理解文本分析的动机。
第2章,Python文本分析技巧。第1章中提到,本书将把Python作为工具,因为它是一种易用且功能强大的编程语言。本章将介绍用于文本分析的Python基础知识。为什么Python基础知识很重要?虽
然我们希望读者具备一定的Python和高中数学知识,但部分读者也许已经很久没有编写Python代码了。还有一部分Python开发人员的经验是基于Django之类的Web框架之上,这与文本分析和字符串处理所需要的技能有所不同。
第3章,spaCy语言模型。虽然第2章已经介绍了文本分析的概念,但没有具体讨论构建文本分析流程的任何技术细节。本章将介绍spaCy的语言模型。这将是文本分析的第一步,
也是NLP流程中的第一个组件。此外,本章还将介绍spaCy开源库,以及如何使用spaCy来帮助开发人员完成文本分析任务,并讨论一些更强大的功能,如POS标记和NER。本章将用一个实例来说明如何使用spaCy快速有效地预处理数据。
第4章,Gensim:文本向量化、向量变换和n-grams的工具。虽然前面的章节已经带领读者处理过原始文本数据,但是任何机器学习或信息检索相关算法都不会把原始文本作为输入格式。
所以本章将使用一种称为向量的数据结构来帮助算法模型理解文本,并选择Gensim和scikit-learn作为转换工具。在开始向量化文本的同时,还会引入预处理技术,比如bi-grams、tri-grams和n-grams。通过词频可以过滤掉文档中不常见的单词。
第5章,词性标注及其应用。第1章和第2章介绍了文本分析和Python,第3章和第4章帮助读者为更高级的文本分析设置代码。本章将讨论第一种高级NLP技术:词性标注(POS-tagging)。我们将研究什么是词性,如何识别单词的词性,以及怎样使用词性标签。
第6章,NER标注及其应用。上一章介绍了如何使用spaCy来完成词性标注。本章将探讨另一个有趣的用法:NER标注。本章将从语言和文本分析的角度来讨论什么是NER标注,并详细说明它的使用示例,以及如何用spaCy训练自己的NER标注。
第7章,依存分析。第5章和第6章中介绍了spaCy的NLP如何执行各种复杂的计算语言学算法,如POS标注和NER标注。不过,这并不是所有的spaCy包,本章将探讨依存分析的强大功能,
以及如何在各种上下文和应用场景中使用它。在继续使用spaCY之前,我们将研究依存分析的理论基础,并训练一个依存分析模型。
第8章,主题模型。到目前为止,我们学习了一些计算语言学算法和spaCy方面的知识,并了解了如何使用这些计算语言学算法来标记数据,以及理解句子结构。
虽然利用这些算法可以捕获文本的细节,但仍然缺乏对数据的全面了解。在每个语料库中,哪些词比其他词出现得更频繁?是否可以对数据进行分组或找到潜在主题?本章将尝试解答这些问题。
第9章,高级主题建模。在前一章中,我们见识了主题模型的威力,并理解和探索了数据的直观方式。本章将进一步探讨这些主题模型的实用性,以及如何创建一个更高效的主题模型,
更好地封装可能出现在语料库中的主题。主题建模是理解语料库文档的一种方式,它为开发人员分析文档提供了更多的发挥空间。
第10章,文本聚类和文本分类。前一章介绍了主题模型,以及它组织和理解文档及其子结构的过程。本章将继续讨论新的文本机器学习算法,以及两个特定的任务—— 文本聚类和文本分类,
探讨这两个算法的直观推理,以及如何使用流行的Python机器学习库scikit-learn来建模。
第11章,查询词相似度计算和文本摘要。一旦文本可以向量化,就可以计算文本文档之间的相似性或距离。这正是本章要介绍的内容。现在业界存在多种不同的向量表示技术,从标准的单词包表示、
TF-IDF到文本文档的主题模型表示。本章还将介绍关于如何用Gensim实现文本摘要和关键词提取的知识。
第12章,Word2Vec、Doc2Vec和Gensim。前面的章节曾经多次讨论向量化这一课题——如何理解向量化,以及如何使用数学形式表示文本数据。我们所使用的所有机器学习方法的基础都依赖于这些向量表示。
本章将更进一步,使用机器学习技术来生成单词的向量化表示,从而更好地封装单词的语义信息。这种技术俗称为词嵌入,Word2Vec和Doc2Vec是该技术的两种主流变体。
第13章,使用深度学习处理文本。到目前为止,我们已经探索了机器学习在各种上下文中的应用,比如主题建模、聚类、分类、文本摘要,甚至POS标注和NER标注都离不开机器学习。
本章将介绍机器学习的前沿技术之一:深度学习。深度学习是机器学习的一个分支。该技术受生物结构的启发,通过神经网络来生成算法和结构。文本生成、文本分类和单词嵌入领域都是深度学习可结合的领域。
本章将学习深度学习的基础知识,以及一个文本深度学习模型实现的例子。
第14章,使用Keras和spaCy进行深度学习。前一章介绍了文本的深度学习技术,并尝试使用神经网络生成文本。本章将更深入地研究文本的深度学习,特别是如何建立一个能够进行文本分类的Keras模型,以及如何将深度学习融入到spaCy的流程中。
第15章,情感分析与聊天机器人。到目前为止,我们已经掌握了开始文本分析项目所需的基本技能,可以尝试更为复杂的项目。其中,有两个文本分析场景在之前没有涉及,但其中的很多概念都很常见:
情绪分析和聊天机器人。本章将作为一个导引,指导读者独立完成上述两个应用。本章不提供构建聊天机器人或情感分析的完整代码,而是把重点放在各种相关技术原理的介绍上。
热门评论
最新评论