aws上部署hadoop_在AWS Elastic MapReduce上运行PageRank Hadoop作业

aws上部署hadoop

aws-emr 在上一篇文章中,我描述了一个执行PageRank计算的示例,该示例是使用Apache Hadoop进行Mining Massive Dataset课程的一部分。 在那篇文章中,我接受了Java中现有的Hadoop作业,并做了一些修改(添加了单元测试,并通过参数设置了文件路径)。 这篇文章展示了如何在现实的Hadoop集群上使用此作业。 该集群是一个由1个主节点和5个核心节点组成的AWS EMR集群 ,每个集群均由m3.xlarge实例支持。

第一步是为集群准备输入。 我使用AWS S3是因为这是使用EMR时的便捷方式。 我创建了一个新存储桶'emr-pagerank-demo',并制作了以下子文件夹:

  • in:包含作业输入文件的文件夹
  • job:包含我的可执行Hadoop jar文件的文件夹
  • 日志:EMR将放置其日志文件的文件夹

然后,在“ in”文件夹中,我复制了要排名的数据。 我将此文件用作输入。 解压缩后,它变成了一个具有XML内容的5 GB文件,尽管不是很大,但对于此演示来说已经足够了。 当您使用前一篇文章的源代码并运行“ mvn clean install”时,您将获得jar文件:“ hadoop-wiki-pageranking-0.2-SNAPSHOT.jar”。 我将此jar文件上传到“作业”文件夹。

就是为了准备。 现在我们可以启动集群了。 在此演示中,我使用了AWS管理控制台 :

    • 命名集群
    • 输入日志文件夹作为日志位置

emr-page1

    • 输入核心实例数

emr-page2

    • 为我们的自定义罐添加一个步骤

emr-page3

    • 像这样配置步骤:

emr-page3步骤

    • 这将导致以下概述:

emr-page3b

如果正确,则可以按“创建集群”按钮,并使EMR进行工作。 您可以在控制台的“监视”部分监视集群:

监控

并在“步骤”部分中监视步骤的状态:

脚步

几分钟后,作业将完成(当然取决于输入文件的大小和使用的群集)。 在我们的S3存储桶中,我们可以看到在'log'文件夹中创建了日志文件:

日志目录

在这里,我们总共看到7个作业:1 x Xml准备步骤,5 x rankCalculator步骤和1 x rankOrdering步骤。

更重要的是,我们可以在“结果”文件夹中查看结果:

emr-result-dir

每个reducer都会创建自己的结果文件,因此我们在这里有多个文件。 我们对排名最高的网页感兴趣,因为其中的网页排名最高。 如果我们查看此文件,将看到以下结果排在前10位:

271.6686	Spaans
274.22974	Romeinse_Rijk
276.7207	1973
285.39502	Rondwormen
291.83002	Decapoda
319.89224	Brussel_(stad)
390.02606	2012
392.08563	Springspinnen
652.5087	2007
2241.2773	Boktorren

请注意,当前的实现只运行5次计算(硬编码),因此实际上并没有如MMDS原理中所描述的那样进行幂次迭代(对软件的下一版进行了很好的修改:-)。

还请注意,使用默认设置时,作业完成后群集不会终止,因此在手动终止群集之前,群集的成本会增加。

翻译自: https://www.javacodegeeks.com/2015/03/running-pagerank-hadoop-job-on-aws-elastic-mapreduce.html

aws上部署hadoop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux编写一个简单的端口扫描程序,小弟我在linux下写了个简单的多线程端口扫描程序,运行时出现有关问题,请问一下(2)...

当前位置:我的异常网 Linux/Unix 小弟我在linux下写了个简单的多线程端口扫描程序,小弟我在linux下写了个简单的多线程端口扫描程序,运行时出现有关问题,请问一下(2)www.myexceptions.net 网友分享于:2013-02-26 浏览:23次usle…

在嵌套使用if语句时,C语言规定else总是什么?

C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。在C语言中,使用if和else关键字对条件进行判断。请先看下面的代码:#include int main(){ int age; printf("请输入你的年龄:&…

optional空值判断_Java 8 Optional不仅用于替换空值

optional空值判断总览 在Java 8中,您可以返回Optional而不是返回null。 就像您在Java 7中所做的那样。这可能会有所不同,这取决于您是否倾向于忘记检查null还是使用静态代码分析来检查nullalbe引用。 但是,还有一种更引人注目的情况是将Opti…

continue语句的作用是结束整个循环的执行吗?

continue 语句的作用是结束本次循环,跳过循环体中剩余的语句而强制进入下一次循环(回到循环体的开头准备再次执行循环体)。continue语句只用在 while、for 循环中,常与 if 条件语句一起使用,判断条件是否成立。使用方式…

linux 远程权限不够,Eclipse连接远程Hadoop集群开发时权限不足问题解决方案

eclipse连接远程Hadoop集群开发时报错Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: userd, accessWRITE, inode"data":zxg:supergroup:rwxr-xr-xat org.apache.hadoop.hdfs.server.namenode.FSPerm…

jsp导入jstl标签库_EE JSP:使用JSTL标记库生成动态内容

jsp导入jstl标签库除了在JSP中编写自己的定制标记之外,您还将发现Java EE实际上提供了一组Java标准标记库(JSTL)供您使用。 这些内置标签包括重复(for-loop)标签,条件标签,变量声明和输出标签等…

一文掌握 C 智能指针的使用

RAII 与引用计数了解 objective-C/Swift 的程序员应该知道引用计数的概念。引用计数这种计数是为了防止内存泄露而产生的。基本想法是对于动态分配的对象,进行引用计数,每当增加一次对同一个对象的引用,那么引用对象的引用计数就会增加一次&a…

linux里面启用无线网卡,linux启用无线网卡上网

1、使用cat /proc/version查看linux内核版本号,我的系统是Linux version 2.6.32-220.el6.i6862、使用cat /etc/issue查看linux发行版本号,我的系统是Red Hat Enterprise Linux Server release 6.2 (Santiago)现在 进入正题,如何在redhat linu…

fwrite函数的一般调用形式是什么?

fwrite() 是C 语言标准库中的一个文件处理函数,功能是向指定的文件中写入若干数据块,如成功执行则返回实际写入的数据块数目。该函数以二进制形式对文件进行操作,不局限于文本文件。语法:fwrite(buffer,size,count,fp)参数&#x…

java 不同类型 映射_如何使用Java泛型映射不同的值类型

java 不同类型 映射有时,一般的开发人员会遇到这样的情况,即他必须在特定容器内映射任意类型的值。 但是,Java集合API仅提供与容器相关的参数化。 例如,这将HashMap的类型安全使用限制为单个值类型。 但是,如果您想混合…

linux vim自动换行,VIM 的自动换行及自动折行设置

VIM 的自动换行及自动折行设置以 .vimrc 文件中的设置为例:" 自动换行是每行超过 n 个字的时候 vim 自动加上换行符" 需要注意的是,如果一个段落的首个单词很长,超出了自动换行设置的字符," 这种情况下不会换行。&…

lambdas 排序_Java8 Lambdas:解释性能缺陷的排序

lambdas 排序与Peter Lawrey合作撰写 。 几天前,我对使用新的Java8声明式的排序性能提出了一个严重的问题。 在这里查看博客文章。 在那篇文章中,我仅指出了问题,但在这篇文章中,我将更深入地了解和解释问题的原因。 这将通过使用…

strncmp函数用法是什么

strncmp函数用法&#xff1a;函数原型int strcmp(char *str1,char * str2&#xff0c;int n)功能比较字符串str1和str2的前n个字符。头文件#include 返回值返回值&#xff1a;返回整数值&#xff1a;当str1<str2时&#xff0c;返回值<0&#xff1b; str1"str2时&…

cepl进程 Linux,Ubuntu下NS2-2.33安装过程

首先安装下列软件包# sudo apt-get install build-essential# sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev# sduo apt-get install libxmu-dev libxmu-headers再下载NS2软件&#xff0c;(http://jaist.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.33.tar…

分享10个适合初学者学习的C开源项目代码

1.WebbenchWebbench 是一个在 linux 下使用的非常简单的网站压测工具。它使用 fork ()模拟多个客户端同时访问我们设定的 URL&#xff0c;测试网站在压力下工作的性能&#xff0c;最多可以模拟 3 万个并发连接去测试网站的负载能力。Webbench 使用C语言编写&#xff0c; 代码实…

tomcat与tomee_Apache TomEE(和Tomcat)的自签名证书

tomcat与tomee可能在大多数Java EE项目中&#xff0c;您将拥有具有SSL支持&#xff08; https &#xff09;的部分或整个系统&#xff0c;因此浏览器和服务器可以通过安全连接进行通信。 这意味着在处理数据之前&#xff0c;已发送的数据已加密&#xff0c;传输并最终解密。 …

linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)

运维 - linux(ubuntu) 环境变量管理 (持续更新)注: 本教程以 Ubuntu16.04 操作, 请细看. 如果看完还不明白, 联系我, 我给你发红包.一, 查看环境变量:方法 1: 直接用 $PATH 命令:wafaubuntu:~$ $PATHbash:/home/king/bin:/home/king/.local/bin:/usr/local/sbin:/usr/local/bin…

C 线程的使用~(上)

C 11 之前&#xff0c;C 语言没有对并发编程提供语言级别的支持&#xff0c;这使得我们在编写可移植的并发程序时&#xff0c;存在诸多的不便。现在 C 11 中增加了线程以及线程相关的类&#xff0c;很方便地支持了并发编程&#xff0c;使得编写的多线程程序的可移植性得到了很大…

k8s中graphite_在Graphite中存储Hystrix的几个月历史指标

k8s中graphiteHystrix的杀手级功能之一是低延迟&#xff0c;数据密集和美观的仪表板 &#xff1a; 即使这只是Hystrix实际操作的副作用&#xff08;断路器&#xff0c;线程池&#xff0c;超时等&#xff09;&#xff0c;它也往往是最令人印象深刻的功能。 为了使其工作&#…

linux下gate版本管理,Linux安装使用GoldenGate

如何安装使用goldengate一.环境:OS&#xff1a;linux CentOS_Final_5.5(64bit)DB&#xff1a;oracle11gR2(单机模式)goldengate: ggs_Linux_x64_ora11g_64bit_v11_1_1_0_0_078.tar网络&#xff1a;局域网&#xff0c;源端IP 192.168.128.100 镜像端IP 192.168.128.101二&…