环境准备
centos免登陆设置
在主机master上
cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
rm ./id_rsa* # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa # 一直按回车就可以
让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:
cat ./id_rsa.pub >> ./authorized_keys
完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行 exit 返回原来的终端)。
接着在 Master 节点将上公匙传输到 Slave1 节点:
scp ~/.ssh/id_rsa.pub hadoop@slave1:/home/
在slave1上执行授权
mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略
cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub # 用完就可以删掉了
同样步骤在其他slave上执行
最后验证master 和其他slave 是否能免密码登录
ssh master
ssh slave1
安装JDK8,解压Hadoop
设置环境变量
vim ~/.bashrc
export JAVA_HOME=/usr/java/jdk1.8.0_60
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:/home/hadoop/bin:/home/hadoop/sbin
配置Hadoop
vim /home/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
vim /home/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/tmp/dfs/data</value>
</property>
</configuration>
vim mapred-site.xml (可能需要先重命名,默认文件名为 mapred-site.xml.template)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!--此处容易出错,导致启动失败,hadoop默认内存为8G,由于测试环境一般为虚拟机,所以按实际内存设置,hadoop不会自己检测内存大小 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
<discription>每个节点可用内存,单位MB</discription>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
设置slave的节点
vim slaves
slave1
slave2
Hadoop相关命令
start-all.sh
stop-all.sh
所有的操作,在master上做,slave上无需手工操作,hadoop将使用之前的免登陆设置,自动进行