自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

干貨:最受歡迎編程語言c與大數(shù)據(jù)開發(fā)實踐

大數(shù)據(jù)
IEEE Spectrum的第三次“最受歡迎編程語言”中,C語言居首,有人說是大數(shù)據(jù)贏了。本文將探討c與大數(shù)據(jù)的開發(fā)實踐。大數(shù)據(jù)是使用工具和技術(shù)處理大量和復雜數(shù)據(jù)集合的術(shù)語。能夠處理大量數(shù)據(jù)的技術(shù)稱為MapReduce。

IEEE Spectrum的第三次“***編程語言”中,C語言居首,有人說是大數(shù)據(jù)贏了。本文將探討c與大數(shù)據(jù)的開發(fā)實踐。大數(shù)據(jù)是使用工具和技術(shù)處理大量和復雜數(shù)據(jù)集合的術(shù)語。能夠處理大量數(shù)據(jù)的技術(shù)稱為MapReduce。

大數(shù)據(jù)何時使用MapReduce

大概有如下場景會應用到MapReduce:

Apache Hadoop

開發(fā)MapReduce解決方案,推薦使用Hadoop,它已經(jīng)是事實上的標準,同時也是開源免費的軟件。

還有其他多個優(yōu)點:

  • 成本效益:不需要任何專門和奇特的硬件,因為軟件在正常的硬件都運行正常
  • 容錯:如果有節(jié)點出現(xiàn)問題,其它節(jié)點可以接收它的工作,整個集群繼續(xù)處理。

本文中我們將使用PHP做為主開發(fā)語言。

Apache Hadoop的安裝配置超出了本文范圍。您可以根據(jù)自己的平臺,在線輕松找到很多文章。為了保持簡單,我們只討論大數(shù)據(jù)相關(guān)的事。

映射器的任務是將輸入轉(zhuǎn)換成一系列的鍵值對。比如在字計數(shù)器的情況下,輸入是一系列的行。我們按單詞將它們分開,把它們變成鍵值對(如key:word,value:1),看起來像這樣:

 

  1. the 1  
  2. water 1  
  3. on 1  
  4. on 1  
  5. water 1  
  6. on 1  
  7. ... 1 

reducer

mapping和reducing的整個過程看起來有點像這樣,請看下列之圖表:

使用PHP做單詞計數(shù)器

執(zhí)行以下命令下載這本書:

  1. wget http://www.gutenberg.org/cache ... 1.txt 

我們的PHP代碼從mapper開始

 

  1. #!/usr/bin/php 
  2. <?php 
  3.     // iterate through lines 
  4.     while($line = fgets(STDIN)){ 
  5.         // remove leading and trailing 
  6.         $line = ltrim($line); 
  7.         $line = rtrim($line); 
  8.  
  9.         // split the line in words 
  10.         $words = preg_split('/\s/', $line, -1, PREG_SPLIT_NO_EMPTY); 
  11.         // iterate through words 
  12.         foreach( $words as $key ) { 
  13.             // print word (keyto standard output 
  14.             // the output will be used in the 
  15.             // reduce (reducer.php) step 
  16.             // word (key) tab-delimited wordcount (1) 
  17.             printf("%s\t%d\n", $key, 1); 
  18.         } 
  19.     } 
  20. ?> 

你可以通過使用某些命令和管道的組合來在本地輕松測試腳本。

  1. head -n1000 pg2701.txt | ./mapper.php | sort | ./reducer.php 

輸出將存儲在文件夾hello / result中,可以通過執(zhí)行以下命令查看

  1. hdfs dfs -cat hello/result/part-00000 

下一個例子是一個更實際的例子,雖然數(shù)據(jù)集相對較小,但是相同的邏輯可以很容易地應用于具有數(shù)百個數(shù)據(jù)點的集合上。 我們將嘗試計算過去五十年的黃金年平均價格。

在HDFS(Hadoop分布式文件系統(tǒng))中創(chuàng)建一個工作目錄

  1. hadoop dfs -mkdir goldprice 

我的reducer看起來像這樣

 

  1. #!/usr/bin/php 
  2. <?php 
  3.     // iterate through lines 
  4.     while($line = fgets(STDIN)){ 
  5.         // remove leading and trailing 
  6.         $line = ltrim($line); 
  7.         $line = rtrim($line); 
  8.  
  9.         // regular expression to capture year and gold value 
  10.         preg_match("/^(.*?)\-(?:.*),(.*)$/", $line, $matches); 
  11.  
  12.         if ($matches) { 
  13.             // keyyear, value: gold price 
  14.             printf("%s\t%.3f\n", $matches[1], $matches[2]); 
  15.         } 
  16.     } 
  17. ?> 

像單詞統(tǒng)計樣例一樣,我們也可以在本地測試

  1. head -n1000 data.csv | ./mapper.php | sort | ./reducer.php 

查看平均值

  1. hdfs dfs -cat goldprice/result/part-00000 

我們經(jīng)常會將結(jié)果轉(zhuǎn)換成圖表。 對于這個演示,我將使用gnuplot,你可以使用其它任何有趣的東西。

創(chuàng)建一個gnu plot配置文件(gold.plot)并復制以下內(nèi)容

 

  1. # Gnuplot script file for generating gold prices 
  2. set terminal png 
  3. set output "chart.jpg" 
  4. set style data lines 
  5. set nokey 
  6. set grid 
  7. set title "Gold prices" 
  8. set xlabel "Year" 
  9. set ylabel "Price" 
  10. plot "gold.dat" 

這會生成一個名為chart.jpg的文件??雌饋硐襁@樣:

 

\
責任編輯:未麗燕 來源: 網(wǎng)絡大數(shù)據(jù)
相關(guān)推薦

2015-04-14 14:23:38

蘋果Swift編程語言

2015-06-17 14:06:50

編程語言計算機編程語言

2013-11-29 10:04:00

JavaScript遠程辦公

2022-03-25 09:57:18

C++Rust語言

2021-04-13 10:14:12

編程語言PythonJava

2021-10-12 11:20:06

編程語言PythonJava

2010-02-06 15:43:46

ibmdwWeb開發(fā)

2017-12-29 16:51:44

2017-06-26 15:47:27

2018-02-01 13:42:47

編程語言開發(fā)者行業(yè)

2018-03-02 11:59:06

湯圓大數(shù)據(jù)京東

2016-07-27 10:28:43

編程Python框架

2016-08-12 14:50:29

開源HadoopSpark

2020-02-25 17:49:39

編程語言框架

2018-09-06 12:30:40

編程語言PythonJava

2010-02-06 15:41:08

ibmdwJava

2017-11-09 13:22:42

機器學習數(shù)據(jù)科學Python

2023-06-06 10:07:21

CIO數(shù)據(jù)技能

2010-02-24 15:27:17

ibmdw

2024-07-30 11:55:15

點贊
收藏

51CTO技術(shù)棧公眾號