create-hadoop-image-remote
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:3k
源码类别:

网格计算

开发平台:

Java

  1. #!/bin/sh
  2. # Licensed to the Apache Software Foundation (ASF) under one or more
  3. # contributor license agreements.  See the NOTICE file distributed with
  4. # this work for additional information regarding copyright ownership.
  5. # The ASF licenses this file to You under the Apache License, Version 2.0
  6. # (the "License"); you may not use this file except in compliance with
  7. # the License.  You may obtain a copy of the License at
  8. #
  9. #     http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. # Create a Hadoop AMI. Runs on the EC2 instance.
  17. # Import variables
  18. bin=`dirname "$0"`
  19. bin=`cd "$bin"; pwd`
  20. . "$bin"/hadoop-ec2-env.sh
  21. # Remove environment script since it contains sensitive information
  22. rm -f "$bin"/hadoop-ec2-env.sh
  23. # Install Java
  24. echo "Downloading and installing java binary."
  25. cd /usr/local
  26. wget -nv -O java.bin $JAVA_BINARY_URL
  27. sh java.bin
  28. rm -f java.bin
  29. # Install tools
  30. echo "Installing rpms."
  31. yum -y install rsync lynx screen ganglia-gmetad ganglia-gmond ganglia-web httpd php
  32. yum -y clean all
  33. # Install Hadoop
  34. echo "Installing Hadoop $HADOOP_VERSION."
  35. cd /usr/local
  36. wget -nv http://archive.apache.org/dist/hadoop/core/hadoop-$HADOOP_VERSION/hadoop-$HADOOP_VERSION.tar.gz
  37. [ ! -f hadoop-$HADOOP_VERSION.tar.gz ] && wget -nv http://www.apache.org/dist/hadoop/core/hadoop-$HADOOP_VERSION/hadoop-$HADOOP_VERSION.tar.gz
  38. tar xzf hadoop-$HADOOP_VERSION.tar.gz
  39. rm -f hadoop-$HADOOP_VERSION.tar.gz
  40. # Configure Hadoop
  41. sed -i -e "s|# export JAVA_HOME=.*|export JAVA_HOME=/usr/local/jdk${JAVA_VERSION}|" 
  42.        -e 's|# export HADOOP_LOG_DIR=.*|export HADOOP_LOG_DIR=/mnt/hadoop/logs|' 
  43.        -e 's|# export HADOOP_SLAVE_SLEEP=.*|export HADOOP_SLAVE_SLEEP=1|' 
  44.        -e 's|# export HADOOP_OPTS=.*|export HADOOP_OPTS=-server|' 
  45.       /usr/local/hadoop-$HADOOP_VERSION/conf/hadoop-env.sh
  46. # Run user data as script on instance startup
  47. chmod +x /etc/init.d/ec2-run-user-data
  48. echo "/etc/init.d/ec2-run-user-data" >> /etc/rc.d/rc.local
  49. # Setup root user bash environment
  50. echo "export JAVA_HOME=/usr/local/jdk${JAVA_VERSION}" >> /root/.bash_profile
  51. echo "export HADOOP_HOME=/usr/local/hadoop-${HADOOP_VERSION}" >> /root/.bash_profile
  52. echo 'export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH' >> /root/.bash_profile
  53. # Configure networking.
  54. # Delete SSH authorized_keys since it includes the key it was launched with. (Note that it is re-populated when an instance starts.)
  55. rm -f /root/.ssh/authorized_keys
  56. # Ensure logging in to new hosts is seamless.
  57. echo '    StrictHostKeyChecking no' >> /etc/ssh/ssh_config
  58. # Bundle and upload image
  59. cd ~root
  60. # Don't need to delete .bash_history since it isn't written until exit.
  61. df -h
  62. ec2-bundle-vol -d /mnt -k /mnt/pk*.pem -c /mnt/cert*.pem -u $AWS_ACCOUNT_ID -s 3072 -p hadoop-$HADOOP_VERSION-$ARCH -r $ARCH
  63. ec2-upload-bundle -b $S3_BUCKET -m /mnt/hadoop-$HADOOP_VERSION-$ARCH.manifest.xml -a $AWS_ACCESS_KEY_ID -s $AWS_SECRET_ACCESS_KEY
  64. # End
  65. echo Done