首页 农药资讯 医疗资讯 健康资讯 明星资讯 育儿资讯 女性话题 时尚资讯 航空资讯 财经理财 范文论文 大数据 音乐资讯 软件资讯 新能源 站长资讯 it资讯
您当前的位置 :大数据 >  正文
干货:最受欢迎编程语言c与大数据开发实践
http://chenyaoqiang2.cn2020-10-08
IEEE Spectrum的第三次“最受欢迎编程语言”中,C语言居首,有人说是大数据赢了。本文将探讨c与大数据的开发实践。大数据是使用工具和技术处理大量和复杂数据集合的术语。能够处理大量数据的技术称为MapReduce。

大数据何时使用MapReduce 大概有如下场景会应用到MapReduce:

Apache Hadoop

开发MapReduce解决方案,推荐使用Hadoop,它已经是事实上的标准,同时也是开源免费的软件。

还有其他多个优点:

成本效益:不需要任何专门和奇特的硬件,因为软件在正常的硬件都运行正常

容错:如果有节点出现问题,其它节点可以接收它的工作,整个集群继续处理。

本文中我们将使用PHP做为主开发语言。

Apache Hadoop的安装配置超出了本文范围。您可以根据自己的平台,在线轻松找到很多文章。为了保持简单,我们只讨论大数据相关的事。

映射器的任务是将输入转换成一系列的键值对。比如在字计数器的情况下,输入是一系列的行。我们按单词将它们分开,把它们变成键值对(如key:word,value:1),看起来像这样:

the 1 water 1 on 1 on 1 water 1 on 1 ... 1

reducer

mapping和reducing的整个过程看起来有点像这样,请看下列之图表:

使用PHP做单词计数器

执行以下命令下载这本书:

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

我们的PHP代码从mapper开始

#!/usr/bin/php <?php // iterate through lines while($line = fgets(STDIN)){ // remove leading and trailing $line = ltrim($line); $line = rtrim($line); // split the line in words $words = preg_split('/\s/', $line, -1, PREG_SPLIT_NO_EMPTY); // iterate through words foreach( $words as $key ) { // print word (key) to standard output // the output will be used in the // reduce (reducer.php) step // word (key) tab-delimited wordcount (1) printf("%s\t%d\n", $key, 1); } } ?>

你可以通过使用某些命令和管道的组合来在本地轻松测试脚本。

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

输出将存储在文件夹hello / result中,可以通过执行以下命令查看

hdfs dfs -cat hello/result/part-00000

下一个例子是一个更实际的例子,虽然数据集相对较小,但是相同的逻辑可以很容易地应用于具有数百个数据点的集合上。 我们将尝试计算过去五十年的黄金年平均价格。

在HDFS(Hadoop分布式文件系统)中创建一个工作目录

hadoop dfs -mkdir goldprice

我的reducer看起来像这样

#!/usr/bin/php <?php // iterate through lines while($line = fgets(STDIN)){ // remove leading and trailing $line = ltrim($line); $line = rtrim($line); // regular expression to capture year and gold value preg_match("/^(.*?)\-(?:.*),(.*)$/", $line, $matches); if ($matches) { // key: year, value: gold price printf("%s\t%.3f\n", $matches[1], $matches[2]); } } ?>

像单词统计样例一样,我们也可以在本地测试

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

查看平均值

hdfs dfs -cat goldprice/result/part-00000

我们经常会将结果转换成图表。 对于这个演示,我将使用gnuplot,你可以使用其它任何有趣的东西。

创建一个gnu plot配置文件(gold.plot)并复制以下内容

# Gnuplot script file for generating gold prices set terminal png set output "chart.jpg" set style data lines set nokey set grid set title "Gold prices" set xlabel "Year" set ylabel "Price" plot "gold.dat"

这会生成一个名为chart.jpg的文件。看起来像这样:


航天记账软件 http://moni-h.chanjet.com/
相关报道
干货:最受欢迎编程语言c与大数据开发实践
如何让云存储更好为“我”所用
环信大学:在线客服在万物互联时代的应用价值
这个域名“最理想”!三字母ZLX.com昨晚拍得24万元!
十大企业级应用“公有云就绪”
正在“破碎”的云服务,是好还是坏?
微软启动Xbox Live漏洞赏金计划 最高两万美元
欧盟即将对博通开出反垄断禁止令
数据观专访博彦多彩张玥:大数据行业正在发生演变
生鲜电商获资本青睐:虽然万亿市场想象空间巨大,但其实是块“非常难啃的骨头”
 
 
 热门新闻
· 如何让云存储更好为“我”所用
· 这个域名“最理想”!三字母ZLX.com昨晚拍得24万元!
· 微软启动Xbox Live漏洞赏金计划 最高两万美元
· 生鲜电商获资本青睐:虽然万亿市场想象空间巨大,但其实是块“非常难啃的骨头”
· 设计权威都在用.design域名!设计好帮手Adobe启用adobe.design
· 混合云:如何在公有云和私有云的结合中保持平衡
· Instagram推Data Download工具 用户可获取个人账号数据
· 云洗白VS云原生,如何才能慧眼识云?
· 云计算:行业云应用落地生根
· 钟鼎创投合伙人汤涛:物流是有大机会的行业
 推荐
· 干货:最受欢迎编程语言c与大数据开发实践
· 环信大学:在线客服在万物互联时代的应用价值
· 欧盟即将对博通开出反垄断禁止令
· 数据观专访博彦多彩张玥:大数据行业正在发生演变
· 5G发展将带来无限机遇和可能
· AI赋能行业,探索智能应用文思海辉出席2019世界人工智能大会
· 小米手机要停止解BL锁服务?MIUI官推:假消息
· 董明珠承诺:只要是格力人,一人一套房
· 这个域名竟和网址中的“www”有关:英文域名worldwideweb.com昨日12万元结拍
· 三数字域名185.com、199.com易主!卖家系国内投资人?
康明E网