Hadoop + Amazon EC2 –更新的教程

在Hadoop的Wiki页面上放置了一个旧教程: http : //wiki.apache.org/hadoop/AmazonEC2 ,但是最近我不得不遵循本教程,并且我注意到它没有涵盖某些Amazon新功能。

建议您已经熟悉Hadoop的基础来遵循本教程,可以在Hadoop的主页http://hadoop.apache.org/上找到非常有用的“如何开始”教程。 另外,您必须至少熟悉Amazon EC2内部和实例定义。

当您在Amazon AWS上注册帐户时,您可以运行750小时
t1.micro实例,但不幸的是,您无法在此类计算机上成功运行Hadoop。

在以下步骤中,当命令以$开头时,意味着应在本地计算机中执行该命令,并在#EC2实例中以#命令执行该命令。

创建一个X.509证书

由于我们将使用ec2-tools,因此我们在AWS的帐户需要有效的X.509证书:

    • 创建.ec2文件夹:
$ mkdir ~/.ec2
    • 在AWS上登录
      • 选择“安全证书”,然后在“访问证书”上单击“ X.509证书”;
      • 您有两种选择:
        • 使用命令行创建证书:
$ cd ~/.ec2; openssl genrsa -des3 -out my-pk.pem 2048
$ openssl rsa -in my-pk.pem -out my-pk-unencrypt.pem
$ openssl req -new -x509 -key my-pk.pem -out my-cert.pem -days 1095
        • 仅在您的机器日期确定的情况下才有效。
      • 使用该站点创建证书并下载私钥(请记住将其放在〜/ .ec2中)。


设置Amazon EC2-Tools

    • 下载并解压缩ec2-tools;
    • 编辑〜/ .profile以导出ec2-tools所需的所有变量,因此您不必在每次打开提示时都这样做:
      • 以下是应附加到〜/ .profile文件的示例:
        • 导出JAVA_HOME = / usr / lib / jvm / java-6-sun
        • 出口EC2_HOME =〜/ ec2-api-tools- *
        • 导出PATH = $ PATH:$ EC2_HOME / bin
        • 出口EC2_CERT =〜/ .ec2 / my-cert.pem
      • 要访问实例,您需要进行身份验证(出于安全方面的明显原因),通过这种方式,您必须创建密钥对(公共密钥和私有密钥):
        • 在https://console.aws.amazon.com/ec2/home上,单击“密钥对”,或
        • 您可以运行以下命令:
$ ec2-add-keypair my-keypair | grep –v KEYPAIR > ~/.ec2/id_rsa-keypair
$ chmod 600 ~/.ec2/id_rsa-keypair


设置Hadoop

下载并解压缩Hadoop后,您必须编辑src / contrib / ec2 / bin / hadoop-ec2-env.sh中提供的EC2配置脚本。

  • AWS变量
    • 这些变量与您的AWS账户(AWS_ACCOUNT_ID,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY)相关,可以在登录到您的账户的安全凭证中找到它们;
  • 安全变量
    • 安全变量(EC2_KEYDIR,KEY_NAME,PRIVATE_KEY_PATH)是与EC2实例的启动和访问相关的变量。
    • 选择一个AMI
      • 根据要运行的Hadoop版本(HADOOP_VERSION)和实例类型(INSTANCE_TYPE),应使用正确的映像来部署实例:
      • 您可以使用许多公共AMI图像(它们必须满足大多数用户的需求)来列出,键入
$ ec2-describe-images -x all | grep hadoop
    • 或者,您可以构建自己的映像,然后将其上传到Amazon S3存储桶;
    • 选择您要使用的AMI之后,基本上可以在hadoop-ec2-env.sh上编辑三个变量:
      • S3_BUCKET:将要使用的图像(例如hadoop-images)放置在存储桶中,
      • ARCH:您选择的AMI映像(i386或x84_64)的体系结构,以及
      • BASE_AMI_IMAGE:映射AMI图像的唯一代码,例如ami-2b5fba42。
    • 其他可配置变量是JAVA_VERSION,您可以在其中定义将与实例一起安装的版本:
      • 您还可以提供二进制文件(JAVA_BINARY_URL)所在的链接,例如,如果您有JAVA_VERSION = 1.6.0_29,则可以使用JAVA_BINARY_URL = http://download.oracle.com/otn-pub/java/ jdk / 6u29-b11 / jdk-6u29-linux-i586.bin。


跑步!

    • 您可以将src / contrib / ec2 / bin的内容添加到PATH变量中,以便能够从打开提示的位置运行独立的命令;
    • 要启动EC2集群并启动Hadoop,请使用以下命令。 参数是集群名称(hadoop-test)和从站数(2)。 群集启动时,公共DNS名称将打印到控制台。
$ hadoop-ec2 launch-cluster hadoop-test 2
    • 要从“集群”登录到主节点,请输入:
$ hadoop-ec2 login hadoop-test
    • 登录到主节点后,便可以开始作业:
      • 例如,要测试您的集群,您可以运行hadoop * -examples.jar已提供的pi计算:
# cd /usr/local/hadoop-*
# bin/hadoop jar hadoop-*-examples.jar pi 10 10000000
    • 您可以在http:// MASTER_HOST:50030 /上查看工作进度。 其中MASTER_HOST是群集启动后返回的主机名。
    • 工作完成后,群集仍处于活动状态。 要关闭,请使用以下命令:
$ hadoop-ec2 terminate-cluster hadoop-test
    • 请记住,在Amazon EC2中,实例是按小时计费的,因此,如果您只想进行测试,则可以在集群上再玩几分钟。


参考: Hadoop + Amazon EC2 –我们的JCG合作伙伴 Rodrigo Duarte在Thinking Bigger博客上的更新教程 。

翻译自: https://www.javacodegeeks.com/2012/11/hadoop-amazon-ec2-an-updated-tutorial.html

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

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

相关文章

oracle11g 修改字符集 修改为ZHS16GBK

转:http://www.cnblogs.com/jay-xu33/p/5210098.html oracle11g 修改字符集 修改为ZHS16GBK1.cmd下,cd到oracle数据库软件的服务器端 如:D:\app\Administrator\product\11.2.0\dbhome_1\BIN 2.输入set ORACLE_SID你想进入的数据库的那个sid 3.输入 sqlpl…

浏览器内核

浏览器的四大内核: Trident,Gecko,Webkit,Blink。 不同的内核对网页编写语法的解释也有不同,进而导致同一个页面在不同内核的浏览器下显示出来的效果也会有所出入,这也是作为一个前端工程师需要了解不同浏…

2017.4.14 Java String.split()用法小结

在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1、如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split("."); 2、如果用“|”作为分隔的话,必…

java线程统一_Java线程结果不一致

我有一个实现可运行的线程类和一个int计数器作为实例变量。两种同步方法add和sub。当我以某种方式运行测试类时,它几次会输出错误的结果。据我了解,当方法同步时,整个对象将被锁定以供其他线程访问,这种逻辑每次我们都应该获得相同…

markdown-Macdown

#标题 [页面锚点](#name) > <a name"name"></a>文字 **加粗**(Command-B) *斜体*(Command-I) * * * 或者 - -- 无序列表 1. 2. 3. 有序列表 、、、 代码段 、、、 或者用 ~ 代替 或者 上下空一行每行缩进4个空格 <http://www.baidu.com>链…

什么是web标准??

web标准 不是某一个标准&#xff0c;而是一系列标准的集合。网页主要由三部分组成&#xff1a;结构&#xff08;Structure&#xff09;、表现&#xff08;Presentation&#xff09;和行为&#xff08;Behavior&#xff09;。对应的标准也分三方面&#xff1a;结构化标准语言主…

有没有更好的Marker方法?

自Java 1.5推出以来&#xff0c;就是否在Java中使用Marker接口进行了广泛的讨论和辩论。 这是因为Java 1.5引入了注释功能&#xff0c;这些功能几乎可以解决Marker接口的目的。 本文将涵盖这场辩论的一个有趣的部分。 定义&#xff1a; Java中的标记接口是一个空接口&#xff…

php jquery ajax登录,jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)

弹出层主要用于展示丰富的页面信息&#xff0c;还有一个更好的应用是弹出表单层丰富交互应用。常见的应用有弹出登录表单层&#xff0c;用户提交登录信息&#xff0c;后台验证登录成功后&#xff0c;弹出层消失&#xff0c;主页面局部刷新用户信息。本文我们将给大家介绍如何使…

【CPU】解决打开360或者Chrome浏览器CPU占用过高

cmd 运行&#xff1a; RD /s /q "%USERPROFILE%\AppData\Roaming\Microsoft\Protect"转载于:https://www.cnblogs.com/zwqh/p/6708398.html

# 20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践+myod

20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践myod 因为在课上已经提交了四个实验&#xff0c;还欠缺最后一个实验&#xff0c;反省一下自己还是操作不熟练&#xff0c;平时在课下应该多多练习linux的命令训练。 实践一 每个* .c一个文件&#xff0c;每个*.h一…

css盒模型中margin很牛逼

css盒子模型&#xff0c;说简单也简单&#xff0c;用的时候也有不简单的。 其中margin的值可以为负值&#xff0c;并且为了实现margin&#xff0c;忽略父级的padding、border、甚至定位。这在布局上很有用&#xff0c;要注意。 ------------ 比如&#xff0c;div1&#xff0…

CometD:Java Web应用程序的Facebook类似聊天

聊天就像吃一块蛋糕或喝一杯热咖啡一样容易。 您是否曾经考虑过自己开发聊天程序&#xff1f; 您知道&#xff0c;聊天不容易。 但是&#xff0c;如果您是开发人员&#xff0c;并且阅读了本文的结尾&#xff0c;则可以尝试自己开发一个聊天应用程序&#xff0c;并允许您的用户通…

怎么用PHP建立购物网站,如何使用PHP建设一个购物网站

本系统以PHP为主要制作工具&#xff0c;实现了用户注册、登录、验证身份及用户数据的采集、物品的预览查询、搜索/查看物品信息&#xff0c;站内最新物品信息发布&#xff0c;可进入在线下单从而实现了网络销售。网上购物&#xff0c;这个逐渐流行于二十世纪的购物方式已经为越…

团队作业2——需求分析原型设计

需求分析&#xff1a; 软件的最终目的是用来解决用户的某些问题&#xff0c;需求分析就是要理解要解决的问题&#xff0c;真正明确用户需求。请发表一篇随笔&#xff0c;完成初步的需求分析&#xff1a; 1.访问软件项目的真实用户&#xff08;至少10个&#xff09;&#xff0c;…

给div命名,使逻辑更加清晰

我们把一些标签放进<div>里&#xff0c;划分出一个独立的逻辑部分。为了使逻辑更加清晰&#xff0c;我们可以为这一个独立的逻辑部分设置一个名称&#xff0c;用id属性来为<div>提供唯一的名称&#xff0c;这个就像我们每个人都有一个身份证号&#xff0c;这个身份…

css边框颜色渐变

在实际开发中&#xff0c;我们经常遇见边框需要背景渐变的实现要求&#xff0c;那么如何去实现呢&#xff0c;今天给大家分享依稀几种情况 1.直角的背景渐变 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><meta…

ActiveMQ:了解内存使用情况

正如最近的一些邮件列表电子邮件和从Google返回的许多信息所表明的那样&#xff0c;ActiveMQ的SystemUsage尤其是MemoryUsage功能使一些人感到困惑。 我将尝试解释有关MemoryUsage的一些细节&#xff0c;这些细节可能有助于理解它的工作方式。 我将不介绍StoreUsage和TempUsage…

php设置排序,7种php基本排序实现方法

本文总结了一下常用的7种排序方法&#xff0c;并用php语言实现。1、直接插入排序/** 直接插入排序,插入排序的思想是&#xff1a;当前插入位置之前的元素有序&#xff0c;* 若插入当前位置的元素比有序元素最后一个元素大&#xff0c;则什么也不做&#xff0c;* 否则在有序序列…

170406、用uid分库,uname(用户名)上的查询怎么办

【缘起】 用户中心是几乎每一个公司必备的基础服务&#xff0c;用户注册、登录、信息查询与修改都离不开用户中心。 当数据量越来越大时&#xff0c;需要多用户中心进行水平切分。最常见的水平切分方式&#xff0c;按照uid取模分库&#xff1a; 通过uid取模&#xff0c;将数据分…

bzoj2144: 跳跳棋(二分/倍增)

思维好题&#xff01; 可以发现如果中间的点要跳到两边有两种情况&#xff0c;两边的点要跳到中间最多只有一种情况。 我们用一个节点表示一种状态&#xff0c;那么两边跳到中间的状态就是当前点的父亲&#xff0c;中间的点跳到两边的状态就是这个点的两个儿子&#xff0c;从而…