1、准备服务器(这里以我的3台Centos7为例)
2、配置主节点名
在主节点命令行输入: vi /etc/sysconfig/network 添加内容:
NETWORKING=yes
HOSTNAME=Carlota1
3、配置两台子节点名
分别在子节点命令行输入: vi /etc/sysconfig/network 添加内容:
NETWORKING=yes
HOSTNAME=Carlota2
NETWORKING=yes
HOSTNAME=Carlota3
4、配置hosts
打开主节点的hosts文件,注释掉 将文件的前两行(当前主机的信息),并在文件中添加所有hadoop集群的主机信息。
在命令行输入: vi /etc/hosts ,添加3台服务器的节点名信息:
192.168.33.21 Carlota1
192.168.33.22 Carlota2
192.168.33.23 Carlota3
保存之后,分别将主节点的hosts分别拷贝到其他两个子节点:
分别执行 /bin/hostname hostsname 使更改生效,(例如:Carlota1上执行 /bin/hostsname Carlota1,使之生效。)(重启可以代替/bin/hostname hostsname命令)
5、关闭防火墙
6、配置ssh无密码访问(使每个节点上的/root/.ssh/authorized_keys文件中都包含所有的节点生成的公钥内容)
scp /root/.ssh/id_rsa.pub root@Carlota1:/root/.ssh/id_rsa_Carlota2.pub
scp /root/.ssh/id_rsa.pub root@Carlota1:/root/.ssh/id_rsa_Carlota3.pub
cat id_rsa_Carlota2.pub>> authorized_keys
cat id_rsa_Carlota3.pub>> authorized_keys
scp authorized_keys root@Carlota2:/root/.ssh/
scp authorized_keys root@Carlota3:/root/.ssh/
7、准备工作 下载好相应的Hadoop与JDK版本
8、分别上传JDK与Hadoop的tar.gz文件到三台服务器 这里使用windows下的文件传输软件进行上传(其中我这里上传路径分别为/usr/local/java/和/usr/local/apps/)
9、安装配置JAVA
配置环境变量vi /etc/profile 添加以下内容
#JAVA
export JAVA_HOME=/usr/local/java/jdk1.8
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
测试是否安装成功:java -version
10、安装hadoop
配置环境变量vi /etc/profile 添加以下内容
#Hadoop
export HADOOP_HOME=/usr/local/apps/hadoop-3.2.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
11、配置Hadoop /sbin下 将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh,stop-yarn.sh顶部也需添加以下参数:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
12、配置Hadoop /etc下 需要修改的有以下几个文件:
(1)、hadoop-env.sh和yarn-env.sh 分别添加JAVA_HOME路径到hadoop-env.sh和yarn-env.sh中
export JAVA_HOME=/usr/local/java/jdk1.8
(2)、core-site.xml 添加如下代码
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Carlota1:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/temp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
其中/usr/temp文件夹需要新建! (3)、hdfs-site.xml 添加如下代码:
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Carlota1:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.web.ugi</name>
<value>supergroup</value>
</property>
</configuration>
其中/usr/dfs/name与/usr/dfs/data文件夹需要新建!
(4)、mapred-site.xml(没有mapred-site.xml文件可以将mapred-site.xml.template进行重命名为mapred-site.xml)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Carlota1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Carlota1:19888</value>
</property>
</configuration>
(5)、yarn-site.xml 添加如下代码:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>Carlota1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Carlota1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Carlota1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Carlota1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>Carlota1:8088</value>
</property>
</configuration>
(6)、workers 将原内容修改为
Carlota2
Carlota3
拷贝hadoop安装文件到子节点
scp -r etc/hadoop root@Carlota2:/usr/local/apps/hadoop-3.2.1/etc
scp -r etc/hadoop root@Carlota3:/usr/local/apps/hadoop-3.2.1/etc
13、启动Hadoop集群
主节点上jps进程如下:
子节点上jps进程如下:
hadoop集群配置成功!!!