Rumah > Artikel > Operasi dan penyelenggaraan > Apakah alat analisis data Linux?
Alat analisis data Linux termasuk: 1. Hadoop, iaitu rangka kerja perisian yang mampu mengedarkan pemprosesan sejumlah besar data 2. Ribut, yang boleh memproses aliran data yang besar dengan sangat dipercayai dan digunakan untuk memproses kelompok Hadoop Data; 3. RapidMiner, digunakan untuk perlombongan data dan pemodelan visual 4. wc, dsb.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
6 alatan pemprosesan dan analisis data besar Linux
1. Hadoop
Hadoop ialah rangka kerja perisian yang mampu memproses pengedaran sejumlah besar data. Tetapi Hadoop melakukannya dengan cara yang boleh dipercayai, cekap dan berskala.
Hadoop boleh dipercayai kerana ia menganggap elemen pengiraan dan storan akan gagal, jadi ia mengekalkan berbilang salinan data yang berfungsi, memastikan pemprosesan boleh diagihkan semula terhadap nod yang gagal.
Hadoop cekap kerana ia berfungsi secara selari, mempercepatkan pemprosesan melalui pemprosesan selari.
Hadoop juga boleh skala dan mampu memproses petabait data. Di samping itu, Hadoop bergantung pada pelayan komuniti, jadi ia adalah kos yang agak rendah dan boleh digunakan oleh sesiapa sahaja.
Hadoop ialah platform pengkomputeran teragih yang membolehkan pengguna membina dan menggunakannya dengan mudah. Pengguna boleh membangunkan dan menjalankan aplikasi dengan mudah yang mengendalikan sejumlah besar data pada Hadoop. Ia terutamanya mempunyai kelebihan berikut:
Kebolehpercayaan yang tinggi. Keupayaan Hadoop untuk menyimpan dan memproses data sedikit demi sedikit patut dipercayai.
Skala tinggi. Hadoop mengedarkan data dan menyelesaikan tugas pengkomputeran antara kelompok komputer yang tersedia, yang boleh dikembangkan dengan mudah kepada beribu-ribu nod.
Kecekapan. Hadoop boleh memindahkan data secara dinamik antara nod dan memastikan keseimbangan dinamik setiap nod, jadi kelajuan pemprosesan adalah sangat pantas.
Toleransi kesalahan yang tinggi. Hadoop boleh menyimpan berbilang salinan data secara automatik dan mengagihkan semula tugas yang gagal secara automatik.
Hadoop datang dengan rangka kerja yang ditulis dalam bahasa Java, jadi ia sesuai untuk dijalankan pada platform pengeluaran Linux. Aplikasi pada Hadoop juga boleh ditulis dalam bahasa lain, seperti C.
2. HPCC
HPCC, singkatan Pengkomputeran dan Komunikasi Berprestasi Tinggi. Pada tahun 1993, Majlis Penyelarasan Persekutuan untuk Sains, Kejuruteraan dan Teknologi A.S. menyerahkan laporan mengenai "Projek Cabaran Besar: Pengkomputeran dan Komunikasi Berprestasi Tinggi" kepada Kongres, juga dikenali sebagai laporan rancangan HPCC, yang merupakan Projek Strategi Sains Presiden A.S. Tujuannya adalah untuk menyelesaikan beberapa cabaran saintifik dan teknologi yang penting dengan mengukuhkan penyelidikan dan pembangunan. HPCC ialah rancangan untuk melaksanakan lebuh raya maklumat di Amerika Syarikat Pelaksanaan pelan ini akan menelan belanja berpuluh bilion dolar Matlamat utamanya adalah untuk: membangunkan sistem pengkomputeran berskala dan perisian berkaitan untuk menyokong prestasi penghantaran rangkaian peringkat terabit. membangunkan beribu-ribu teknologi rangkaian Megabit untuk mengembangkan penyelidikan dan institusi pendidikan serta keupayaan ketersambungan rangkaian.
Projek ini terutamanya terdiri daripada lima bahagian:
Sistem Komputer Berprestasi Tinggi (HPCS), yang merangkumi penyelidikan tentang sistem komputer generasi akan datang, alatan reka bentuk sistem, Penilaian lanjutan sistem biasa dan sistem asal, dsb.;
Teknologi dan Algoritma Perisian Lanjutan (ASTA), yang meliputi sokongan perisian untuk cabaran besar, reka bentuk algoritma baharu, cabang dan alatan perisian serta pengiraan Pusat penyelidikan pengkomputeran dan pengkomputeran berprestasi tinggi, dsb.;
Grid Penyelidikan dan Pendidikan Nasional (NREN), termasuk penyelidikan dan pembangunan stesen perantaraan dan penghantaran 1 bilion bit;
3. Storm
Storm ialah perisian sumber terbuka percuma, sistem pengkomputeran masa nyata yang boleh diedarkan. Ribut boleh mengendalikan aliran data yang besar dengan sangat dipercayai dan digunakan untuk memproses data kelompok Hadoop. Storm adalah mudah, menyokong banyak bahasa pengaturcaraan dan sangat menyeronokkan untuk digunakan. Storm adalah sumber terbuka oleh Twitter Syarikat aplikasi terkenal lain termasuk Groupon, Taobao, Alipay, Alibaba, Le Elements, Admaster, dll.Storm mempunyai banyak bidang aplikasi: analisis masa nyata, pembelajaran mesin dalam talian, pengkomputeran tanpa henti, RPC yang diedarkan (protokol panggilan prosedur jauh, kaedah meminta perkhidmatan daripada program komputer jauh melalui rangkaian), ETL (Extraction-Transformation). -Memuatkan) singkatan untuk Pengekstrakan Data, Transformasi dan Pemuatan), dsb. Kelajuan pemprosesan Storm adalah menakjubkan: selepas ujian, setiap nod boleh memproses 1 juta tupel data sesaat. Ribut berskala, tahan terhadap kesalahan dan mudah disediakan dan dikendalikan.
4. Apache Drill
Untuk membantu pengguna perusahaan mencari cara yang lebih berkesan untuk mempercepatkan pertanyaan data Hadoop, Apache Yayasan Perisian Persatuan baru-baru ini melancarkan projek sumber terbuka yang dipanggil "Drill". Apache Drill melaksanakan Dremel Google.
Menurut Tomer Shiran, pengurus produk vendor Hadoop MapR Technologies, "Drill" telah dikendalikan sebagai projek inkubator Apache dan akan terus dinaikkan pangkat kepada jurutera perisian di seluruh dunia.
Projek ini akan mencipta versi sumber terbuka alat Dremel Hadoop Google (digunakan oleh Google untuk mempercepatkan aplikasi Internet alat analisis data Hadoop). "Drill" akan membantu pengguna Hadoop menanyakan set data yang besar dengan lebih pantas.
Projek "Drill" sebenarnya diilhamkan oleh projek Dremel Google: projek ini membantu Google menganalisis dan memproses set data besar-besaran, termasuk menganalisis dan merangkak dokumen web dan menjejak data aplikasi yang dipasang di Android Market , menganalisis spam, menganalisis keputusan ujian pada sistem binaan teragih Google dan banyak lagi.
Dengan membangunkan projek sumber terbuka Apache "Drill", organisasi akan dijangka mewujudkan antara muka API Drill dan seni bina yang fleksibel dan berkuasa untuk membantu menyokong pelbagai sumber data, format data dan bahasa pertanyaan.
5. RapidMiner
RapidMiner ialah penyelesaian perlombongan data terkemuka di dunia, dengan teknologi canggih pada tahap yang sangat besar. Ia meliputi pelbagai tugas perlombongan data, termasuk pelbagai seni data, dan boleh memudahkan reka bentuk dan penilaian proses perlombongan data.
Fungsi dan ciri
Teknologi perlombongan data percuma dan perpustakaan tersedia
100% kod Java (boleh dijalankan dalam Sistem operasi)
Proses perlombongan data adalah mudah, berkuasa dan intuitif
XML Dalaman memastikan format piawai untuk mewakili pertukaran perlombongan data proses
Boleh mengautomasikan proses berskala besar dengan bahasa skrip mudah
Pandangan data berbilang peringkat untuk memastikan data yang sah dan telus
Prototaip interaktif antara muka pengguna grafik
Baris arahan (mod kelompok) aplikasi berskala besar automatik
Java API (antara muka Pengaturcaraan aplikasi)
Mekanisme pemalam dan promosi yang mudah
Enjin visualisasi yang berkuasa, banyak pemodelan visual yang canggih data dimensi
Lebih 400 pengendali perlombongan data disokong
Yale telah berjaya digunakan dalam banyak kawasan aplikasi yang berbeza, termasuk perlombongan teks, perlombongan multimedia , Reka bentuk fungsional, perlombongan aliran data, kaedah pembangunan bersepadu dan perlombongan data teragih.
6. Pentaho BI
Platform Pentaho BI berbeza daripada produk BI tradisional rangka kerja. Tujuannya adalah untuk menyepadukan satu siri produk BI peringkat perusahaan, perisian sumber terbuka, API dan komponen lain untuk memudahkan pembangunan aplikasi risikan perniagaan. Kemunculannya membolehkan satu siri produk bebas untuk risikan perniagaan, seperti Jfree, Kuarza, dsb., disepadukan bersama untuk membentuk penyelesaian risikan perniagaan yang kompleks dan lengkap.
Pentaho BI Platform, seni bina teras dan asas bagi suite Pentaho Open BI, adalah tertumpu kepada proses kerana pengawal habnya ialah enjin aliran kerja. Enjin aliran kerja menggunakan definisi proses untuk mentakrifkan proses risikan perniagaan yang dilaksanakan pada platform BI. Proses boleh disesuaikan dengan mudah dan proses baharu boleh ditambah. Platform BI termasuk komponen dan laporan untuk menganalisis prestasi proses ini. Pada masa ini, elemen utama Pentaho termasuk penjanaan laporan, analisis, perlombongan data, pengurusan aliran kerja, dsb. Komponen ini disepadukan ke dalam platform Pentaho melalui teknologi seperti J2EE, WebService, SOAP, HTTP, Java, JavaScript dan Portal. Pengedaran Pentaho terutamanya dalam bentuk SDK Pentaho.
SDK Pentaho mengandungi lima bahagian: platform Pentaho, pangkalan data sampel Pentaho, platform Pentaho yang berdiri sendiri, contoh penyelesaian Pentaho dan pelayan rangkaian Pentaho yang diprakonfigurasikan. Antaranya, platform Pentaho ialah bahagian terpenting platform Pentaho, termasuk badan utama kod sumber platform Pentaho, pangkalan data Pentaho menyediakan perkhidmatan data untuk operasi biasa platform Pentaho, termasuk maklumat konfigurasi, maklumat berkaitan Penyelesaian; , dsb. Untuk platform Pentaho, ia tidak perlu dan boleh digantikan dengan perkhidmatan pangkalan data lain melalui konfigurasi platform Pentaho yang boleh dijalankan secara bebas ialah contoh mod berjalan bebas platform Pentaho, yang menunjukkan cara membuat; Platform Pentaho berjalan secara bebas tanpa sokongan pelayan aplikasi Pentaho Contoh penyelesaian ialah projek Eclipse yang menunjukkan cara membangunkan penyelesaian risikan perniagaan yang berkaitan untuk platform Pentaho.
Platform Pentaho BI dibina pada pelayan, enjin dan komponen. Ini menyediakan pelayan J2EE sistem, keselamatan, portal, aliran kerja, enjin peraturan, carta, kerjasama, pengurusan kandungan, penyepaduan data, analisis dan keupayaan pemodelan. Kebanyakan komponen ini adalah berasaskan standard dan boleh digantikan dengan produk lain.
9 alat baris arahan analisis data Linux
1 kepala dan ekor
Pertama semua, mari mulakan dengan pemprosesan fail. Apakah kandungan dalam fail itu? Apakah formatnya? Anda boleh menggunakan arahan kucing untuk memaparkan fail dalam terminal, tetapi ia jelas tidak sesuai untuk memproses fail dengan kandungan yang panjang.
Masukkan kepala dan ekor, yang boleh memaparkan sepenuhnya bilangan baris yang ditentukan dalam fail. Jika anda tidak menyatakan bilangan baris, 10 daripadanya akan dipaparkan secara lalai.
$ 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
Dalam tiga baris terakhir saya dapat mencari tarikh, nama pengarang, tajuk dan beberapa maklumat lain. Walau bagaimanapun, disebabkan kekurangan pengepala lajur, saya tidak tahu maksud khusus setiap lajur. Sekarang lihat tajuk khusus setiap lajur:
$ head -n 1 jan2017articles.csv Post date,Content type,Author,Title,Comment count,Path,Tags,Word count
Kini semuanya jelas, kita boleh melihat tarikh penerbitan, jenis kandungan, pengarang, tajuk, bilangan penyerahan, URL berkaitan, tag artikel individu dan bilangan perkataan.
2. wc
Tetapi jika anda perlu menganalisis ratusan atau bahkan ribuan artikel, apakah yang perlu anda lakukan di sini - ia adalah " Singkatan untuk jumlah perkataan. wc boleh mengira bait, aksara, perkataan atau baris fail. Dalam contoh ini, kami ingin mengetahui bilangan baris dalam artikel.
$ wc -l jan2017articles.csv 93 jan2017articles.csv
Fail ini mempunyai 93 baris secara keseluruhannya Memandangkan baris pertama mengandungi tajuk fail, boleh dibuat spekulasi bahawa fail ini ialah senarai 92 artikel.
3. grep
Persoalan baharu dibangkitkan di bawah: Berapa banyak artikel yang berkaitan dengan topik keselamatan untuk mencapai matlamat, kami menganggap bahawa artikel yang diperlukan akan berada dalam tajuk, Perkataan keselamatan disebut pada label atau di tempat lain. Pada masa ini, alat grep boleh digunakan untuk mencari fail mengikut aksara tertentu atau melaksanakan corak carian lain. Ini adalah alat yang sangat berkuasa kerana kami juga boleh mencipta corak padanan yang sangat tepat menggunakan ungkapan biasa. Tetapi di sini, kita hanya perlu mencari rentetan yang mudah.
$ 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
Format yang kami gunakan ialah grep ditambah bendera -i (memaklumkan grep bahawa ia tidak sensitif huruf besar-besaran), serta corak yang ingin kami cari, dan akhirnya lokasi fail sasaran kami berada mencari. Akhirnya kami menemui 4 artikel berkaitan keselamatan. Jika skop carian lebih khusus, kita boleh menggunakan paip - ia menggabungkan grep dengan arahan wc untuk mengetahui berapa banyak baris yang menyebut kandungan keselamatan.
$ grep -i "security" jan2017articles.csv | wc -l 4
Dengan cara ini, wc akan mengekstrak keluaran arahan grep dan menggunakannya sebagai input. Jelas sekali bahawa gabungan ini, ditambah dengan sedikit skrip shell, serta-merta mengubah terminal menjadi alat analisis data yang berkuasa.
4, tr
Dalam kebanyakan senario analisis, kita akan menghadapi fail CSV - tetapi bagaimana kita menukarnya kepada format lain untuk mencapai aplikasi yang berbeza? menukarnya ke dalam bentuk HTML untuk penggunaan data melalui jadual. Perintah tr boleh membantu anda mencapai matlamat ini, ia boleh menukar satu jenis aksara kepada jenis lain. Begitu juga, anda juga boleh menggunakan arahan paip untuk mencapai dok output/input.
Seterusnya, mari cuba contoh berbilang bahagian lain, iaitu mencipta fail TSV (iaitu nilai yang dipisahkan tab) yang hanya mengandungi artikel yang diterbitkan pada 20 Januari.
$ grep "20 Jan 2017" jan2017articles.csv | tr ',' '/t' > jan20only.tsv
Pertama, kami menggunakan grep untuk pertanyaan tarikh. Kami menyalurkan hasil ini kepada arahan tr dan menggunakan yang terakhir untuk menggantikan semua koma dengan tab (diwakili sebagai '/t'). Tetapi ke manakah hasilnya? Di sini kita menggunakan > aksara untuk mengeluarkan hasil ke fail baharu dan bukannya ke skrin. Dengan cara ini, kami boleh memastikan bahawa fail dqywjan20only.tsv mengandungi data yang dijangkakan.
$ 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. Isih
Jika kita mula-mula ingin mencari lajur khusus yang mengandungi maklumat yang paling banyak, bagaimanakah kita perlu mengetahuinya? artikel mana yang mengandungi maklumat terbanyak Jika terdapat senarai panjang artikel baharu, maka menghadapi senarai artikel yang diperoleh sebelum ini pada 20 Januari, kita boleh menggunakan perintah isihan untuk mengisih bilangan perkataan lajur. Dalam kes ini, kita tidak perlu menggunakan fail perantaraan dan boleh terus menggunakan paip. Walau bagaimanapun, memecahkan rantai arahan yang panjang kepada bahagian yang lebih pendek selalunya boleh memudahkan keseluruhan operasi.
$ 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视频教程》
Atas ialah kandungan terperinci Apakah alat analisis data Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!