您好,登錄后才能下訂單哦!
這篇文章主要介紹“linux數據分析工具怎么用”,在日常操作中,相信很多人在linux數據分析工具怎么用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux數據分析工具怎么用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
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數據分析工具怎么用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。