hadoop3 禁用ec
在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证书”;
- 您有两种选择:
- 使用命令行创建证书:
- 在AWS上登录
$ 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上,单击“密钥对”,或
- 您可以运行以下命令:
- 以下是应附加到〜/ .profile文件的示例:
$ 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图像(它们必须满足大多数用户的需求)来列出,键入
- 选择一个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
hadoop3 禁用ec