大数据研究的出现,为企业、研究机构、政府决策提供了新的行之有效思路和手段,想要做好大数据的管理和分析,一些大数据开发工具 的使用是必不可少的,以下是大数据开发过程中常用的工具:
1 Apache Hive
Hive是一个建立在Hadoop上的开源数据仓库基础设施,通过Hive可以很容易的进行数据的ETL,对数据进行结构化处理,并对Hadoop上大数据文件进行查询和处理等。 Hive提供了一种简单的类似SQL的查询语言—HiveQL,这为熟悉SQL语言的用户查询数据提供了方便。
2 Apache Spark
Apache Spark是Hadoop开源生态系统的新成员。它提供了一个比Hive更快的查询引擎,因为它依赖于自己的数据处理框架而不是依靠Hadoop的HDFS服务。同时,它还用于事件流处理、实时查询和机器学习等方面。
3 Jaspersoft BI 套件
Jaspersoft包是一个通过数据库列生成报表的开源软件。行业领导者发现Jaspersoft软件是一流的, 许多企业已经使用它来将SQL表转化为pdf,,这使每个人都可以在会议上对其进行审议。另外,JasperReports提供了一个连接配置单元来替代HBase。
4 Keen IO
Keen IO是个强大的移动应用分析工具。开发者只需要简单到一行代码, 就可以跟踪他们想要的关于他们应用的任何信息。开发者接下来只需要做一些Dashboard或者查询的工作就可以了。
5 Mortar Data
Mortar Data是专为开发者打造的Hadoop开发平台,它用Pig和Python的组合替代了MapReduce以便开发者能简单地编写Hadoop管道(Pipeline)。
6 Placed Analytics
利用脚本语言以及API, PlacedAnalytics能够提供针对移动和网络应用的详细用户行为分析。包括, 用户使用时间和地理位置信息。 这些可以帮助开发者的应用更好地吸引广告商, 也可以帮助开发者对自己的应用进行改善。
7 Ingres Corp
它拥有超过一万客户而且正在扩增。它通过Vectorwise以及对ParAccel实现了扩展。这些发展分别导致了Actian Vector和Actian Matrix的创建。它有Apache,Cloudera,Hortonworks以及其他发行版本可供选择。
8 Talend Open Studio
Talend是一个统一的平台,它通过提供一个统一的,跨企业边界生命周期管理的环境,使数据管理和应用更简单便捷。这种设计可以帮助企业构建灵活、高性能的企业架构,在次架构下,集成并启用百分之百开源服务的分布式应用程序变为可能。
9 Cloudera
Cloudera正在努力为开源Hadoop,提供支持,Hadoop可以作为目标数据仓库,高效的数据平台,或现有数据仓库的ETL来源。企业规模可以用作集成Hadoop与传统数据仓库的基础。 Cloudera致力于成为数据管理的“重心”。
10 Pentaho Business Analytics
Pentaho的工具可以连接到NoSQL数据库,有很多内置模块,可以把它们拖放到一个上, 然后将它们连接起来。
工具的熟练使用可以起到事半功倍的效果,以上仅仅是一些数据开发过程中常用的工具,对于大数据开发人员来说是需要熟练掌握的,当然,大数据开发 过程中也会需要借助一些其他的工具,这就需要大数据开发人员 具有发现和解决问题的能力,以及养成善于积累的习惯!
斯坦福的专家在人工智能报告中得出的结论:"越来越强大的人工智能应用,可能会对我们的 社会 和经济产生深远的积极影响,这将出现在从现在到2030年的时间段里。"
以下这些开源人工智能应用都处于人工智能研究的最前沿。
1Caffe
它是由贾扬清在加州大学伯克利分校的读博时创造的,Caffe是一个基于表达体系结构和可扩展代码的深度学习框架。使它声名鹊起的是它的速度,这让它受到研究人员和企业用户的欢迎。根据其网站所言,它可以在一天之内只用一个NVIDIA K40 GPU处理6000万多个图像。它是由伯克利视野和学习中心(BVLC)管理的,并且由NVIDIA和亚马逊等公司资助来支持它的发展。
2 CNTK
它是计算机网络工具包(Computational Network Tookit)的缩写,CNTK是一个微软的开源人工智能工具。不论是在单个CPU、单个GPU、多个GPU或是拥有多个GPU的多台机器上它都有优异的表现。微软主要用它做语音识别的研究,但是它在机器翻译、图像识别、图像字幕、文本处理、语言理解和语言建模方面都有着良好的应用。
3Deeplearning4j
Deeplearning4j是一个java虚拟机(JVM)的开源深度学习库。它运行在分布式环境并且集成在Hadoop和Apache Spark中。这使它可以配置深度神经网络,并且它与Java、Scala和其他JVM语言兼容。
4DMTK
DMTK分布式集齐学习工具(Distributed Machine Learning Toolkit)的缩写,和CNTK一样,是微软的开源人工智能工具。作为设计用于大数据的应用程序,它的目标是更快的训练人工智能系统。它包括三个主要组件:DMTK框架、LightLDA主题模型算法和分布式(多义)字嵌入算法。为了证明它的速度,微软声称在一个八集群的机器上,它能够"用100万个主题和1000万个单词的词汇表(总共10万亿参数)训练一个主题模型,在一个文档中收集1000亿个符号,"。这一成绩是别的工具无法比拟的。
5H20
相比起科研,H2O更注重将AI服务于企业用户,因此H2O有着大量的公司客户,比如第一资本金融公司、思科、Nielsen Catalina、PayPal和泛美都是它的用户。它声称任何人都可以利用机器学习和预测分析的力量来解决业务难题。它可以用于预测建模、风险和欺诈分析、保险分析、广告技术、医疗保健和客户情报。
它有两种开源版本:标准版H2O和Sparking Water版,它被集成在Apache Spark中。也有付费的企业用户支持。
6Mahout
它是Apache基金会项目,Mahout是一个开源机器学习框架。根据它的网站所言,它有着三个主要的特性:一个构建可扩展算法的编程环境、像Spark和H2O一样的预制算法工具和一个叫Samsara的矢量数学实验环境。使用Mahout的公司有Adobe、埃森哲咨询公司、Foursquare、英特尔、领英、Twitter、雅虎和其他许多公司。其网站列了出第三方的专业支持。
7MLlib
由于其速度,Apache Spark成为一个最流行的大数据处理工具。MLlib是Spark的可扩展机器学习库。它集成了Hadoop并可以与NumPy和R进行交互 *** 作。它包括了许多机器学习算法如分类、回归、决策树、推荐、集群、主题建模、功能转换、模型评价、ML管道架构、ML持久、生存分析、频繁项集和序列模式挖掘、分布式线性代数和统计。
8NuPIC
由Numenta公司管理的NuPIC是一个基于分层暂时记忆理论的开源人工智能项目。从本质上讲,HTM试图创建一个计算机系统来模仿人类大脑皮层。他们的目标是创造一个"在许多认知任务上接近或者超越人类认知能力"的机器。
除了开源许可,Numenta还提供NuPic的商业许可协议,并且它还提供技术专利的许可证。
9OpenNN
作为一个为开发者和科研人员设计的具有高级理解力的人工智能,OpenNN是一个实现神经网络算法的c++编程库。它的关键特性包括深度的架构和快速的性能。其网站上可以查到丰富的文档,包括一个解释了神经网络的基本知识的入门教程
10OpenCyc
由Cycorp公司开发的OpenCyc提供了对Cyc知识库的访问和常识推理引擎。它拥有超过239,000个条目,大约2,093,000个三元组和大约69,000 owl:这是一种类似于链接到外部语义库的命名空间。它在富领域模型、语义数据集成、文本理解、特殊领域的专家系统和 游戏 AI中有着良好的应用。该公司还提供另外两个版本的Cyc:一个可免费的用于科研但是不开源,和一个提供给企业的但是需要付费。
11Oryx 2
构建在Apache Spark和Kafka之上的Oryx 2是一个专门针对大规模机器学习的应用程序开发框架。它采用一个独特的三层λ架构。开发者可以使用Orys 2创建新的应用程序,另外它还拥有一些预先构建的应用程序可以用于常见的大数据任务比如协同过滤、分类、回归和聚类。大数据工具供应商Cloudera创造了最初的Oryx 1项目并且一直积极参与持续发展。
12PredictionIO
今年的二月,Salesforce收购了PredictionIO,接着在七月,它将该平台和商标贡献给Apache基金会,Apache基金会将其列为孵育计划。所以当Salesforce利用PredictionIO技术来提升它的机器学习能力时,成效将会同步出现在开源版本中。它可以帮助用户创建带有机器学习功能的预测引擎,这可用于部署能够实时动态查询的Web服务。
13SystemML
最初由IBM开发,SystemML现在是一个Apache大数据项目。它提供了一个高度可伸缩的平台,可以实现高等数学运算,并且它的算法用R或一种类似python的语法写成。企业已经在使用它来跟踪 汽车 维修客户服务、规划机场交通和连接 社会 媒体数据与银行客户。它可以在Spark或Hadoop上运行。
14TensorFlow
TensorFlow是一个谷歌的开源人工智能工具。它提供了一个使用数据流图进行数值计算的库。它可以运行在多种不同的有着单或多CPU和GPU的系统,甚至可以在移动设备上运行。它拥有深厚的灵活性、真正的可移植性、自动微分功能,并且支持Python和c++。它的网站拥有十分详细的教程列表来帮助开发者和研究人员沉浸于使用或扩展他的功能。
15Torch
Torch将自己描述为:"一个优先使用GPU的拥有机器学习算法广泛支持的科学计算框架",它的特点是灵活性和速度。此外,它可以很容易的通过软件包用于机器学习、计算机视觉、信号处理、并行处理、图像、视频、音频和网络等方面。它依赖一个叫做LuaJIT的脚本语言,而LuaJIT是基于Lua的。
欢迎关注~
微信公众号: IT百战程序员 ,免费提供人工智能、大数据、云计算等资料~~不管你在地球哪个方位,欢迎你的关注!
spark进入txt文件的命令
1、首先启动spark-shell进入Spark-shell模式:(进入spark目录下后 输入命令 bin/spark-shell启动spark-shell模式)
2、加载text文件(spark创建sc,可以加载本地文件和HDFS文件创建RDD)

val textFile = sctextFile("file:///home/hadoop/test1txt") #注意file:后是三个“/”
注意:加载HDFS文件和本地文件都是使用textFile,区别是添加前缀(hdfs://和file://)进行标识。
3、获取RDD文件textFile所有项(文本文件即总共行数)的计数(还有很多其他的RDD *** 作,自行百度)

textFilecount() #统计结果显示 1 行
二、在 spark-shell 中读取 HDFS 系统文件“/home/hadoop/testcsv(也可以是txt文件)”(如果该文件不存在, 请先创建),然后,统计出文件的行数:
方法一:
1、加载text文件(spark创建sc,可以加载本地文件和HDFS文件创建RDD)

val textFile = sctextFile("hdfs:///home/hadoop/testcsv") #注意hdfs:后是三个“/”
注意:加载HDFS文件和本地文件都是使用textFile,区别是添加前缀(hdfs://和file://)进行标识。
2、获取RDD文件textFile所有项的计数

textFilecount() #统计结果显示 1 行
方法二:(Spark shell 默认是读取 HDFS 中的文件,需要先上传文件到 HDFS 中,否则会有“orgapachehadoopmapredInvalidInputException: Input path does not exist: hdfs://localhost:9000/user/hadoop/READMEmd”的错误。)
1、省去方法一中第一步的命令(1)中的“hdfs://”,其他部分相同,命令如下:

三、编写独立应用程序,读取 HDFS 系统文件“/user/hadoop/testtxt”(如果该文件不存在, 请先创建),然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包, 并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令:
1、首先输入:quit 命令退出spark-shell模式:

2、在终端中执行如下命令创建一个文件夹 sparkapp3 作为应用程序根目录:

cd ~ # 进入用户主文件夹
mkdir /sparkapp3 # 创建应用程序根目录
mkdir -p /sparkapp3/src/main/scala # 创建所需的文件夹结构
3、在 /sparkapp3/src/main/scala 下建立一个名为 SimpleAppscala 的文件(vim /sparkapp3/src/main/scala/SimpleAppscala),添加代码如下:

/ SimpleAppscala /
import orgapachesparkSparkContext
import orgapachesparkSparkContext_
import orgapachesparkSparkConf
object SimpleApp {
def main(args: Array[String]) {
val logFile = "hdfs://localhost:9000/home/hadoop/testcsv"
val conf = new SparkConf()setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sctextFile(logFile, 2)
val num = logDatacount()
println("这个文件有 %d 行!"format(num))
}
}
4、该程序依赖 Spark API,因此我们需要通过 sbt 进行编译打包。 /sparkapp3 中新建文件 simplesbt(vim /sparkapp3/simplesbt),添加内容如下,声明该独立应用程序的信息以及与 Spark 的依赖关系:

name := "Simple Project"
version := "10"
scalaVersion := "21210"
libraryDependencies += "orgapachespark" %% "spark-core" % "300-preview2"
1)Notepad++
Notepad++ 是 Windows *** 作系统下的一套文本编辑器,有完整的中文化接口及支持多国语言编写的功能(UTF8 技术)。
Notepad++ 优点:
功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。
不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。
是免费软件,可以免费使用,自带中文,支持所有主流的计算机程序语言。
Notepad++ 缺点:
比起专用的 IDE 缺少语法检查,颜色选取,代码的 outline,注释的解析,TODO,调试工具集成,部署工具集成等等好多功能。
打开大文件比较慢
EditPlus 是一款由韩国 Sangil Kim (ES-Computing)出品的小巧但是功能强大的可处理文本、HTML 和程序语言的 Windows 编辑器,甚至可以通过设置用户工具将其作为 C,Java,Php 等等语言的一个简单的 IDE。
EditPlus 优点:
EditPlus 界面简洁美观,且启动速度快。
对中文支持比较好。
支持多种日期、时间输入;支持语法高亮;支持代码折叠;支持代码自动完成。
配置功能强大,且比较容易,扩展也比较强。
适合编辑网页。
EditPlus 缺点:
不支持代码提示功能。
不免费,收费单位美元,注册费用高
功能较简单。
版本更新比较慢。
spark和hadoop的区别:诞生的先后顺序、计算不同、平台不同。
诞生的先后顺序,hadoop属于第一代开源大数据处理平台,而spark属于第二代。属于下一代的spark肯定在综合评价上要优于第一代的hadoop。
计算不同spark和hadoop在分布式计算的底层思路上,其实是极为相似的,即mapreduce分布式运算模型:将运算分成两个阶段,阶段1-map,负责从上游拉取数据后各自运算,然后将运算结果shuffle给下游的reduce,reduce再各自对通过shuffle读取来的数据进行聚合运算spark和hadoop在分布式计算的具体实现上,又有区别;hadoop中的mapreduce运算框架,一个运算job,进行一次map-reduce的过程;而spark的一个job中,可以将多个map-reduce过程级联进行。
平台不同spark和hadoop区别是,spark是一个运算平台,而hadoop是一个复合平台(包含运算引擎,还包含分布式文件存储系统,还包含分布式运算的资源调度系统),所以,spark跟hadoop来比较的话,主要是比运算这一块大数据技术发展到目前这个阶段,hadoop主要是它的运算部分日渐式微,而spark目前如日中天,相关技术需求量大,offer好拿。
第一阶段:熟练掌握Scala语言
1,spark框架是采用scala语言写的,精致优雅。想要成为spark高手,你就必须阅读spark源码,就必须掌握scala。
2,虽然现在的spark可以使用多种语言开发,java,python,但是最快速和支持最好的API依然并将永远是Scala的API,所以必须掌握scala来编写复杂的和高性能的spark分布式程序。
3尤其是熟练掌握Scala的trait,apply,函数式编程,泛型,逆变,与协变等。
第二阶段:精通spark平台本身提供给开发折的API
1,掌握spark中面向RDD的开发模式,掌握各种transformation和action函数的使用。
2,掌握Spark中的款依赖和窄依赖,lineage机制。
3,掌握RDD的计算流程,如Stage的划分,spark应用程序提交给集群的基础过程和Work节点基础的工作原理。
第三阶段:深入Spark内核
此阶段主要是通过Spark框架的源码研读来深入Spark内核部分:
1,通过源码掌握Spark的任务提交,
2,通过源码掌握Spark的集群的任务调度,
3,尤其要精通DAGScheduler,TaskScheduler和Worker节点内部的工作的每一步细节。
第四阶段:掌握Spark上的核心框架的使用
Spark作为云计算大数据时代的集大成者,在实时流式处理,图技术,机器学习,nosql查询等方面具有明显的优势,我们使用Spark的时候大部分时间都是在使用其框架:
sparksql,spark streaming等
1,spark streaming是出色的实时流失处理框架,要掌握,DStream,transformation和checkpoint等。
2,spark sql是离线统计分析工具,shark已经没落。
3,对于spark中的机器学习和Graphx等要掌握其原理和用法。
第五阶段:做商业级的spark项目
通过一个完整的具有代表性的spark项目来贯穿spark的方方面面,包括项目的框架设计,用到的技术的剖析,开始实现,运维等,完善掌握其中的每一个阶段和细节,以后你就可以从容的面对绝大多数spark项目。
第六阶段:提供spark解决方案
1,彻底掌握spark框架源码的每一个细节,
2,根据步同的业务场景的需要提供spark在不同场景的解决方案,
3,根据实际需要,在spark框架基础上经行2次开发,打造自己的spark框架。
以上就是关于大数据开发工具有哪些全部的内容,包括:大数据开发工具有哪些、15 个开源的顶级人工智能工具、spark进入txt文件的命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)