所需条件:
1.三台centos7-64虚拟机(请使用单独的“4G内存2CPU三台虚拟机”环境。(一台master主机,两台slave主机,分别为slave1,slave2)
2.Java安装包版本:jdk-8u161-linux-x64.tar.gz(旧版本)
3.hadoop安装包版本:hadoop-2.7.3.tar.gz(旧版本)
注:若电脑上有xftp,连接虚拟机将安装包拖到虚拟机里,安装包到Apache-Hadoop官网和Jdk官网下载
步骤:
一.修改计算机名和创建Hadoop用户:
1.创建Hadoop用户:useradd Hadoop 设置Hadoop密码:password Hadoop
输入完此命令后再输入你想要设置的密码。
2.改计算机名:vi /etc/hostname 或者 hostnamectl set-hostname master(在另外两台虚拟机上各改为slave1,slave2)。
3.修改三台虚拟机的IP地址:ifcfg(查看)
4.修改本地映射:vi /etc/hosts 修改完成后重启虚拟机:reboot
注:以上操作,三台虚拟机都要进行
二.解压和赋权限:
1.解压:找到你们安装包所在的位置进行解压:tar -zxvf ./hadoop-2.7.3.tar.gz(包名) -C /usr/local/src/(解压到你们自己想要存放的路径,jdk安装包也是一样)
2.更改名:先到解压文件后的路径:cd /usr/local/src
然后改名:mv hadoop-2.7.3.tar.gz hadoop (jdk同样改名为java)
3.更改环境变量:vi /etc/profile,到文件的低端,插入
# this is java configration
export JAVA_HOME=/usr/local/src/java(此处上操作改名了,所以用java,若没有改名用原文件名)
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
# this is hadoop configration
export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$ HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
修改后,按esc ,然后按住shift+;,wq退出保存,发送到另外两台主机:scp /etc/profile root@slave1:/etc/
4.给Hadoop用户赋权限:chown -R hadoop:hadoop * (*号为此路径下所有文件)(此操作在root用户下面的/usr/local/src/路径下进行)
5.发送:scp -r /usr/local/src/java root@slave1(slave2):/usr/local/src/
6加载:source /etc/profile
7.查看版本(安装是否成功):java -version / hadooop version
三.免密:
1.查看虚拟机内是否有.ssh文件:cd .ssh(若进入.ssh路径下,就表示虚拟机里有这个文件,将此文件删除,rm-rf .ssh,若没有就生成此文件)
2.生成.ssh文件:ssh localhost 进入.ssh文件:cd .ssh
3.生成公钥私钥:ssh-keygen -t rsa 三次回车
4.将创建好的钥匙发给三台虚拟机:ssh-copy-id hadoop@主机名(此操作在Hadoop用户下)
5.查看免密是否做好:cat authorized_keys,在主机上登陆另外两台:ssh slave1(不用密码直接登录,如要密码,就代表免密没做好,重新做)
四.修改Hadoop文件
1.创建tmp: cd /usr/local/src/hadoop/ 然后创建:mkdir -p tmp/dfs/data(和name,两步都要做)
2.赋权限:chmod -R 777 tmp
3.六个配置文件:cd /usr/loca/src/hadoop/etc/hadoop
-----------------------------------------------------------------------------------------------------------------------------
下面是Hadoop的core-site.xml配置信息:(伪分布+集群模式)
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/src/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
修改配置文件 hdfs-site.xml:(伪分布+集群模式)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
hadoop/tmp/dfs/data</value>
</property>
</configuration>
---------------------------------------------------------------------------------------------------------------------------------
文件 mapred-site.xml
<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>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
备注:hadoop-env.sh修改JAVA_HOME,否则报错JAVA_HOME is not set and could not be found.
export JAVA_HOME=${JAVA_HOME}改为:(两处)
export JAVA_HOME=/usr/local/src/java
export HADOOP_CONF_DIR=/usr/local/src/hadoop/etc/hadoop
4.发送:scp -r /usr/local/src/hadoop root@slave1(slave2):/usr/loca/src/
5.格式化:hdfs namenode -format
6.启动:start -all.sh jps查看,若出现六个进程,说明配置成功