小记命令:
编辑vi:i
识别保存并退出:ESC+(大写)ZZ
切换root用户:su -
切换用户:su 用户名
准备工作:
一、规划配置IP地址
192.168.13.129 master
192.168.13.130 slave1
192.168.13.131 slave2
二、hostname设置
依次登录master、slave1、slave2,进行如下操作:
hostname #查看hostname
hostnamectl set-hostname master #设置hostname为master,其他两台分 别为slave1和slave2
hostname #再次查看hostname是否设置成功
三、关闭防火墙
依次登录master、slave1、slave2,进行如下操作:
systemctl status firewalld.service #查看防火墙状态,如果没有关闭,则需执行下面操作
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
四、关闭selinux
依次登录master、slave1、slave2,进行如下操作:
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,设置后需重启才能生效。
/usr/sbin/sestatus #查看selinux是否关闭,应是SELinux status: disabled
五、hosts配置
依次登录master、slave1、slave2,进行如下操作:
vi /etc/hosts
添加:
192.168.13.129 master
192.168.13.130 slave1
192.168.13.131 slave2
六、新建hadoop用户及其用户组
依次登录master、slave1、slave2,进行如下操作:
adduser hadoop #新建用户hadoop
passwd hadoop #为用户hadoop设置密码
usermod -a -G hadoop hadoop #将新建的hadoop用户添加到hadoop用户组,前面hadoop指的是用户组名,后一个指的是用户名
cat /etc/group #查询是否添加成功
visudo #为hadoop用户赋予root权限
找到root ALL=(ALL) ALL这一行,一般在98行附近,然后在这一行下面再增加一行(其中间隔为tab):
hadoop ALL=(ALL) ALL
七、SSH免密登录配置
关于ssh免密码的设置,要求每两台主机之间设置免密码,自己的主机与自己的主机之间也要求设置免密码。 这项操作可以在hadoop用户下执行,执行完毕公钥在/home/hadoop/.ssh/id_rsa.pub
1、依次登录master、slave1、slave2,进行如下操作:
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
2、依次登录master、slave1、slave2,进行如下操作:
ssh master #测试是否登录成功
ssh slave1 #测试是否登录成功
ssh slave2 #测试是否登录成功
八、安装配置jdk1.8
java -version #检验jdk环境是否配置成功,如果显示了jdk版本则说明环境可以
hadoop安装:
1、改变文件的所有者、设置权限、解压安装hadoop
chown hadoop:hadoop hadoop-2.7.3.tar.gz
chmod 777 hadoop-2.7.3.tar.gz
tar -zxvf hadoop-2.7.3.tar.gz -C /home/hadoop
2、配置hadoop集群
注意:配置文件在/home/hadoop/hadoop2.7.3/etc/hadoop/下
注意:此项xml的修改放在 中
2.1、修改core-site.xml
vi core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.7.3/data/full/tmp</value>
</property>
2.2、在下方加入hadoop-env.sh
vi hadoop-env.sh
修改 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre
可通过xmanager或winscp等的可视化界面查看java-jdk的安装目录。
2.3、修改hdfs-site.xml
vi hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
2.4、修改slaves
vi slaves
master
slave1
slave2
此项注意把原始有的localhost删除
2.5、修改mapred-env.sh
vi mapred-env.sh
修改 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre
2.6、修改mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2.7、修改yarn-env.sh
vi yarn-env.sh
修改 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre
2.8、修改yarn-site.xml
vi yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
2.9、分发hadoop到节点
cd /home/hadoop
scp -r hadoop-2.7.3/ hadoop@slave1:pwd
scp -r hadoop-2.7.3/ hadoop@slave2:pwd
2.10、配置环境变量
sudo vi /etc/profile
末尾追加
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export PATH=PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
编译生效
source /etc/profile
3、Hadoop集群启动
在master机器,hadoop的bin目录下执行启动命令:
cd /home/hadoop/hadoop-2.7.3/bin
start-all.sh(不建议使用)或start-dfs.sh、start-yarn.sh(建议使用)
启动命令:
stop-all.sh(不建议使用)或stop-dfs.sh、stop-yarn.sh(建议使用)
如果集群是第一次启动,需要格式化namenode,在master机器进入hadoop的bin目录下执行:
hadoop namenode -format或hdfs namenode -format
集群检查是否正常,可采用jps查看进程或进入UI界面查看状态:
web页面访问:
hdfs:192.168.13.129:50070或master:50070
yarn:192.168.13.129:8088或master:8088