hadoop自动安装脚本
还不能实现完全自动安装,只能算半自动的。
进行交互主要障碍有两点:
1. ssh-keygen的时候需要点击回车。
2. passwd 需要设置密码
如果谁能解决以上两点,欢迎email给我。
另外:需要JDK和Hadoop压缩包
第一步: 设置Root用户的SSH 无密码访问
为了之后修改Hosts文件,配置环境变量,拷贝数据方便
ssh root@192.168.1.148 'sh -c "ssh-keygen -t rsa"'
cat ~/.ssh/id_rsa.pub | ssh root@192.168.1.148 'sh -c "cat - >>~/.ssh/authorized_keys"'
ssh root@192.168.1.148 'sh -c "chmod -R 700 /root/.ssh"'
# ssh root@192.168.1.148 'sh -c " ls -l --color=tty ~/.ssh "'
第二步: 添加用户Hadoop,Hadoop的管理帐户,是Hadoop的超级用户
ssh root@192.168.1.148 'sh -c "useradd -p 123456 hadoop"'
ssh root@192.168.1.148 'sh -c "passwd hadoop"' 给Hadoop用户修改密码
# ssh root@192.168.1.148 'sh -c " ls -l --color=tty /home/hadoop"'
第三步: 修改主机名和hosts 文件
ssh root@192.168.1.148 'sh -c "hostname hadoop148"'
ssh root@192.168.1.148 'sh -c " echo -e \"NETWORKING=yes \nNETWORKING_IPV6=no\nHOSTNAME=hadoop148\" > /etc/sysconfig/network "'
echo -e "192.168.1.148 hadoop148" >> /etc/hosts 修改本地Hosts文件,最后拷贝到每台机器上
第四步:设置hadoop用户的SSH无密码访问
ssh hadoop@192.168.1.148 'sh -c "ssh-keygen -t rsa"'
cat ~/.ssh/id_rsa.pub | ssh hadoop@192.168.1.148 'sh -c "cat - >>~/.ssh/authorized_keys"'
ssh hadoop@192.168.1.148 'sh -c "chmod -R 700 /home/hadoop/.ssh"'
ssh hadoop@192.168.1.148 'sh -c " ls -l --color=tty ~/.ssh "'
第五步: 安装JDK,Hadoop 压缩包
scp jdk1.7.0_03.tgz root@192.168.1.159:/usr/local/ # 拷贝
ssh root@192.168.1.159 'sh -c " tar -xvzf /usr/local/jdk1.7.0_03.tgz -C \"/usr/local\" "' # 远程解压缩
scp hadoop-0.20.205.0.tar.gz root@192.168.1.159:/opt
ssh root@192.168.1.159 'sh -c " tar -xvzf /opt/hadoop-0.20.205.0.tar.gz -C \"/opt\" "'
第六步:设置软连接,创建目录
ssh root@192.168.1.159 'sh -c "mkdir /opt/data "'
ssh root@192.168.1.159 'sh -c "mkdir /opt/tmp "'
ssh root@192.168.1.159 'sh -c "ln -s /opt/hadoop-0.20.205.0 /opt/hadoop"'
第七步:拷贝hosts文件,设置环境变量,启动Hadoop
ssh root@192.168.1.159 'sh -c " echo -e \"export JAVA_HOME=/usr/local/jdk1.7.0_03 \nexport PATH=/opt/hadoop/bin:\\\$JAVA_HOME/bin:\\\$PATH\nexport CLASSPATH=\\\$JAVA_HOME/lib\" >> /etc/profile "'
scp /etc/hosts root@192.168.1.159:/etc/ # hosts 文件需要拷贝到没一台已经安装Hadoop的机器中
scp /opt/hadoop/conf/masters /opt/hadoop/conf/core-site.xml /opt/hadoop/conf/hdfs-site.xml /opt/hadoop/conf/mapred-site.xml /opt/hadoop/conf/hadoop-env.sh /opt/hadoop/conf/fair-scheduler.xml root@192.168.1.159:/opt/hadoop/conf
ssh root@192.168.1.159 'sh -c "chown -R hadoop:hadoop /opt"'
ssh hadoop@192.168.1.159 'sh -c "/opt/hadoop/bin/hadoop-daemon.sh start datanode"'
ssh hadoop@192.168.1.159 'sh -c "/opt/hadoop/bin/hadoop-daemon.sh start tasktracker"'