linux数据分析工具怎么用

79次阅读
没有评论

共计 8604 个字符,预计需要花费 22 分钟才能阅读完成。

这篇文章主要介绍“linux 数据分析工具怎么用”,在日常操作中,相信很多人在 linux 数据分析工具怎么用问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux 数据分析工具怎么用”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

linux 数据分析工具有:1、Hadoop,是一个能够对大量数据进行分布式处理的软件框架;2、Storm,可以非常可靠的处理庞大的数据流,用于处理 Hadoop 的批量数据;3、RapidMiner,用于数据挖掘并进行可视化建模;4、wc 等等。

本教程操作环境:linux5.9.8 系统、Dell G3 电脑。

6 个 linux 大数据处理分析工具

1、Hadoop

Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。

Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。

Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。

Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。

Hadoop 是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在 Hadoop 上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

高可靠性。Hadoop 按位存储和处理数据的能力值得人们信赖。

高扩展性。Hadoop 是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

高效性。Hadoop 能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

高容错性。Hadoop 能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

Hadoop 带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

2、HPCC

HPCC,High Performance Computing and Communications(高性能计算与通信)的缩写。1993 年,由美国科学、工程、技术联邦协调理事会向国会提交了“重大挑战项目:高性能计算与 通信”的报告,也就是被称为 HPCC 计划的报告,即美国总统科学战略项目,其目的是通过加强研究与开发解决一批重要的科学与技术挑战问题。HPCC 是美国 实施信息高速公路而上实施的计划,该计划的实施将耗资百亿美元,其主要目标要达到:开发可扩展的计算系统及相关软件,以支持太位级网络传输性能,开发千兆 比特网络技术,扩展研究和教育机构及网络连接能力。

该项目主要由五部分组成:

高性能计算机系统(HPCS),内容包括今后几代计算机系统的研究、系统设计工具、先进的典型系统及原有系统的评价等;

先进软件技术与算法(ASTA),内容有巨大挑战问题的软件支撑、新算法设计、软件分支与工具、计算计算及高性能计算研究中心等;

国家科研与教育网格(NREN),内容有中接站及 10 亿位级传输的研究与开发;

基本研究与人类资源(BRHR),内容有基础研究、培训、教育及课程教材,被设计通过奖励调查者 - 开始的,长期 的调查在可升级的高性能计算中来增加创新意识流,通过提高教育和高性能的计算训练和通信来加大熟练的和训练有素的人员的联营,和来提供必需的基础架构来支 持这些调查和研究活动;

信息基础结构技术和应用(IITA),目的在于保证美国在先进信息技术开发方面的领先地位。

3、Storm

Storm 是自由的开源软件,一个分布式的、容错的实时计算系统。Storm 可以非常可靠的处理庞大的数据流,用于处理 Hadoop 的批量数据。Storm 很简单,支持许多种编程语言,使用起来非常有趣。Storm 由 Twitter 开源而来,其它知名的应用企业包括 Groupon、淘宝、支付宝、阿里巴巴、乐元素、Admaster 等等。

Storm 有许多应用领域:实时分析、在线机器学习、不停顿的计算、分布式 RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、ETL(Extraction-Transformation-Loading 的缩写,即数据抽取、转换和加载)等等。Storm 的处理速度惊人:经测 试,每个节点每秒钟可以处理 100 万个数据元组。Storm 是可扩展、容错,很容易设置和操作。

4、Apache Drill

为了帮助企业用户寻找更为有效、加快 Hadoop 数据查询的方法,Apache 软件基金会近日发起了一项名为“Drill”的开源项目。Apache Drill 实现了 Google’s Dremel.

据 Hadoop 厂商 MapR Technologies 公司产品经理 Tomer Shiran 介绍,“Drill”已经作为 Apache 孵化器项目来运作,将面向全球软件工程师持续推广。

该项目将会创建出开源版本的谷歌 Dremel Hadoop 工具(谷歌使用该工具来为 Hadoop 数据分析工具的互联网应用提速)。而“Drill”将有助于 Hadoop 用户实现更快查询海量数据集的目的。

“Drill”项目其实也是从谷歌的 Dremel 项目中获得灵感:该项目帮助谷歌实现海量数据集的分析处理,包括分析抓取 Web 文档、跟踪安装在 Android Market 上的应用程序数据、分析垃圾邮件、分析谷歌分布式构建系统上的测试结果等等。

通过开发“Drill”Apache 开源项目,组织机构将有望建立 Drill 所属的 API 接口和灵活强大的体系架构,从而帮助支持广泛的数据源、数据格式和查询语言。

5、RapidMiner

RapidMiner 是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。

功能和特点

免费提供数据挖掘技术和库

100% 用 Java 代码(可运行在操作系统)

数据挖掘过程简单,强大和直观

内部 XML 保证了标准化的格式来表示交换数据挖掘过程

可以用简单脚本语言自动进行大规模进程

多层次的数据视图,确保有效和透明的数据

图形用户界面的互动原型

命令行 (批处理模式) 自动大规模应用

Java API(应用编程接口)

简单的插件和推广机制

强大的可视化引擎,许多尖端的高维数据的可视化建模

400 多个数据挖掘运营商支持

耶鲁大学已成功地应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘。

6、Pentaho BI

Pentaho BI 平台不同于传统的 BI 产品,它是一个以流程为中心的,面向解决方案 (Solution) 的框架。其目的在于将一系列企业级 BI 产品、开源软件、API 等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如 Jfree、Quartz 等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。

Pentaho BI 平台,Pentaho Open BI 套件的核心架构和基础,是以流程为中心的,因为其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在 BI 平台上执行的商业智能流程。流程可以很容易的被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。目前,Pentaho 的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等等。这些组件通过 J2EE、WebService、SOAP、HTTP、Java、JavaScript、Portals 等技术集成到 Pentaho 平台中来。Pentaho 的发行,主要以 Pentaho SDK 的形式进行。

Pentaho SDK 共包含五个部分:Pentaho 平台、Pentaho 示例数据库、可独立运行的 Pentaho 平台、Pentaho 解决方案示例和一个预先配制好的 Pentaho 网络服务器。其中 Pentaho 平台是 Pentaho 平台最主要的部分,囊括了 Pentaho 平台源代码的主体;Pentaho 数据库为 Pentaho 平台的正常运行提供的数据服务,包括配置信息、Solution 相关的信息等等,对于 Pentaho 平台来说它不是必须的,通过配置是可以用其它数据库服务取代的; 可独立运行的 Pentaho 平台是 Pentaho 平台的独立运行模式的示例,它演示了如何使 Pentaho 平台在没有应用服务器支持的情况下独立运行;Pentaho 解决方案示例是一个 Eclipse 工程,用来演示如何为 Pentaho 平台开发相关的商业智能解决方案。

Pentaho BI 平台构建于服务器,引擎和组件的基础之上。这些提供了系统的 J2EE 服务器,安全,portal,工作流,规则引擎,图表,协作,内容管理,数据集成,分析和建模功能。这些组件的大部分是基于标准的,可使用其他产品替换之。

9 个 linux 数据分析命令行工具

1、head 与 tail

首先,让我们先从文件处理开始。文件中有什么内容? 其格式如何? 大家可以使用 cat 命令在终端中显示文件,但其显然不适合处理内容较长的文件。

输入 head 与 tail,二者能够完整显示文件中的指定行数内容。如果大家未指定行数,则默认显示其中 10 行。

$ tail -n 3 jan2017articles.csv
02 Jan 2017,Article,Scott Nesbitt,3 tips for effectively using wikis for documentation,1,/article/17/1/tips-using-wiki-documentation, Documentation, Wiki ,710
02 Jan 2017,Article,Jen Wike Huger,The Opensource.com preview for January,0,/article/17/1/editorial-preview-january,,358
02 Jan 2017,Poll,Jason Baker,What is your open source New Year s resolution?,1,/poll/17/1/what-your-open-source-new-years-resolution,,186

在最后三行中,我能够找到日期、作者姓名、标题以及其他一些信息。不过由于缺少列头,我不清楚各列的具体含义。下面查看各列的具体标题:

$ head -n 1 jan2017articles.csv
Post date,Content type,Author,Title,Comment count,Path,Tags,Word count

现在一切都非常明确,我们可以看到发布日期、内容类型、作者、标题、提交次数、相关 URL、各文章标签以及字数。

2、wc

但如果需要分析数百甚至上千篇文章,又该如何处理? 这里就要使用 wc 命令了——其为“字数”一词的缩写。wc 能够对文件的字节、字符、单词或者行数进行计数。在本示例中,我们希望了解文章中的行数。

$ wc -l jan2017articles.csv 93 jan2017articles.csv

本文件共有 93 行,考虑到第一行中包含文件标题,因此可以推测此文件是一份包含 92 篇文章的列表。

3、grep

下面提出新的问题:其中有多少篇文章与安全话题有关? 为了实现目标,我们假定需要的文章会在标题、标签或者其他位置提到安全这一字眼。这时,grep 工具可用于通过特定字符搜索文件或者实现其他搜索模式。这是一款极为强大的工具,因为我们甚至能够利用正则表达式建立极为精确的匹配模式。不过这里,我们只需要寻找一条简单的字符串。

$ grep -i  security  jan2017articles.csv
30 Jan 2017,Article,Tiberius Hefflin,4 ways to improve your security online right now,3,/article/17/1/4-ways-improve-your-online-security,Security and encryption,1242
28 Jan 2017,Article,Subhashish Panigrahi,How communities in India support privacy and software freedom,0,/article/17/1/how-communities-india-support-privacy-software-freedom,Security and encryption,453
27 Jan 2017,Article,Alan Smithee,Data Privacy Day 2017: Solutions for everyday privacy,5,/article/17/1/every-day-privacy, Big data, Security and encryption ,1424
04 Jan 2017,Article,Daniel J Walsh,50 ways to avoid getting hacked in 2017,14,/article/17/1/yearbook-50-ways-avoid-getting-hacked, Yearbook, 2016 Open Source Yearbook, Security and encryption, Containers, Docker, Linux ,2143

我们使用的格式为 grep 加 - i 标记(告知 grep 不区分大小写),再加我们希望搜索的模式,最后是我们所搜索的目标文件的位置。最后我们找到了 4 篇安全相关文章。如果搜索的范围更加具体,我们可以使用 pipe——它能够将 grep 同 wc 命令加以结合,用以了解其中有多少行提到了安全内容。

$ grep -i  security  jan2017articles.csv | wc -l 4

这样,wc 会提取 grep 命令的输出结果并将其作为输入内容。很明显,这种结合再加上一点 shell 脚本,终端将立即变成一款强大的数据分析工具。

4、tr

在多数分析场景下,我们都会面对 CSV 文件——但我们该如何将其转换为其他格式以实现不同应用方式? 这里,我们将其转化为 HTML 形式以通过表格进行数据使用。tr 命令可帮助大家实现这一目标,它可将一类字符转化为另一类。同样的,大家也可以配合 pipe 命令实现输出 / 输入对接。

下面,我们试试另一个多部分示例,即创建一个 TSV(即制表符分隔值)文件,其中只包含发表于 1 月 20 日的文章。

$ grep  20 Jan 2017  jan2017articles.csv | tr  ,   /t    jan20only.tsv

首先,我们利用 grep 进行日期查询。我们将此结果 pipe 至 tr 命令,并利用后者将全部逗号替换为 tab(表示为 /t)。但结果去哪了? 这里我们使用〉字符将结果输出为新文件而非屏幕结果。如此一来,我们可以 dqywjan20only.tsv 文件中一定包含预期的数据。

$ cat jan20only.tsv 20 Jan 2017 Article Kushal Das 5 ways to expand your project s contributor base 2 /article/17/1/expand-project-contributor-base Getting started 690 20 Jan 2017 Article D Ruth Bavousett How to write web apps in R with Shiny 2 /article/17/1/writing-new-web-apps-shiny Web development 218 20 Jan 2017 Article Jason Baker  Top 5: Shell scripting the Cinnamon Linux desktop environment and more  0 /article/17/1/top-5-january-20 Top 5 214 20 Jan 2017 Article Tracy Miranda How is your community promoting diversity? 1 /article/17/1/take-action-diversity-tech Diversity and inclusion 1007

5、sort

如果我们先要找到包含信息最多的特定列,又该如何操作? 假设我们需要了解哪篇文章包含最长的新文章列表,那么面对之前得出的 1 月 20 日文章列表,我们可以使用 sort 命令对列字数进行排序。在这种情况下,我们并不需要使用中间文件,而可以继续使用 pipe。不过将长命令链拆分成较短的部分往往能够简化整个操作过程。

$ sort -nr -t$ /t  -k8 jan20only.tsv | head -n 1
20 Jan 2017 Article Tracy Miranda How is your community promoting diversity? 1 /article/17/1/take-action-diversity-tech Diversity and inclusion 1007

以上是一条长命令,我们尝试进行拆分。首先,我们使用 sort 命令对字数进行排序。-nr 选项告知 sort 以数字排序,并将结果进行反向排序(由大到小)。此后的 -t$ /t 则告知 sort 其中的分隔符为 tab(/t)。其中的 $ 要求此 shell 为一条需要处理的字符串,并将 / n 返回为 tab。而 -k8 部分则告知 sort 命令使用第八列,即本示例中进行字数统计的目标列。

最后,输出结果被 pipe 至 head,处理后在结果中显示此文件中包含最多字数的文章标题。

6、sed

大家可能还需要在文件中选择特定某行。这里可以使用 sed。如果希望将全部包含标题的多个文件加以合并,并只为整体文件显示一组标题,即需要清除额外内容;或者希望只提取特定行范围,同样可以使用 sed。另外,sed 还能够很好地完成批量查找与替换任务。

下面立足之前的文章列表创建一个不含标题的新文件,用于同其他文件合并(例如我们每月都会定期生成某个文件,现在需要将各个月份的内容进行合并)。

$ sed 1 d jan2017articles.csv jan17no_headers.csv

其中的“1 d”选项要求 sed 删除第一行。

7、cut

了解了如何删除行,那么我们该如何删除列? 或者说如何只选定某一列? 下面我们尝试为之前生成的列表创建一份新的作者清单。

$ cut -d ,  -f3 jan17no_headers.csv   authors.txt

在这里,通过 cut 与 - d 相配合代表着我们需要第三列(-f3),并将结果发送至名为 authors.txt 的新文件。

8、uniq

作者清单已经完成,但我们要如何知悉其中包含多少位不同的作者? 每位作者又各自编写了多少篇文章? 这里使用 unip。下面我们对文件进行 sort 排序,找到唯一值,而后计算每位作者的文章数量,并用结果替换原本内容。

sort authors.txt | uniq -c   authors.txt

现在已经可以看到每位作者的对应文章数,下面检查最后三行以确保结果正确。

$ tail -n3 authors-sorted.txt
1 Tracy Miranda
1 Veer Muchandi
3 VM (Vicky) Brasseur

9、awk

最后让我们了解最后一款工具,awk。awk 是一款出色的替换性工具,当然其功能远不止如此。下面我们重新回归 1 月 12 日文章列表 TSV 文件,利用 awk 创建新列表以标明各篇文章的作者以及各作者编写的具体字数。

$ awk -F  /t   {print $3     $NF}  jan20only.tsv
Kushal Das 690
D Ruth Bavousett 218
Jason Baker 214
Tracy Miranda 1007

其中的 -F /t 用于告知 awk 目前处理的是由 tab 分隔的数据。在大括号内,我们为 awk 提供执行代码。$3 代表要求其将输出第三行,而 $NF 则代表输出最后一行(即‘字段数’的缩写),并在两项结果间添加两个空格以进行明确划分。

虽然这里列举的例子规模较小,看似不必使用上述工具解决,但如果将范围扩大到包含 93000 行的文件,那么它显然很难利用电子表格程序进行处理。

利用这些简单的工具与小型脚本,大家可以避免使用数据库工具并轻松完成大量数据统计工作。无论您是专业人士还是业余爱好者,它的作用都不容忽视。

到此,关于“linux 数据分析工具怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计8604字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)