ubuntu20安装Hadoop-2.8.0详细过程(第三步)| 分布式搭建hadoop
一、配置免密登录
1.1Hadoop上进行操作
配置master免密登录到slave。
ssh-keygen -t rsa
过程中输入3次enter,直至如图;

然后,目录切换到/home/w/.ssh下,ls看下下属的文件:

继续输入,复制公钥文件:
cat id_rsa.pub >> authorized_keys
修改authorized_keys文件的权限:
chmod 600 ~/.ssh/authorized_keys

将authorized_keys文件复制到slave节点的根目录下:
scp ~/.ssh/authorized_keys w@hadoop1:~/
过程中输入yes完成复制。

1.2Hadoop2、Hadoop3上进行操作
生成密钥:
ssh-keygen -t rsa
从master的authorized_keys文件复制到本机,用于中转。

将从master复制到slave的authorized_keys文件移动到hadoop2中的.ssh文件夹中:
mv ~/authorized_keys ~/.ssh/
修改hadoop2中的authorized_keys文件的权限
chmod 600 ~/.ssh/authorized_keys
进到.ssh文件夹,输入ls -l查看权限:

同样的步骤在hadoop3上重复。
1.3测试免密登录
在hadoop1上输入:
ssh hadoop2
然后输入yes后,前侧显示hadoop2即为配置成功。

输入exit即可退出hadoop2。
二、配置Hadoop主节点hadoop1
上一篇文章提到Hadoop安装,我们来完成后续配置。hadoop1作为主节点,hadoop2、hadoop3作为子节点。
2.1配置hadoop-env.sh
在虚拟机中打开/opt/hadoop-2.8.0/etc/hadoop,在此位置打开终端:

终端输入:
vi hadoop-env.sh
编辑器中末尾添加:
export JAVA_HOME=/opt/jdk1.8.0_321
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
保存退出。
2.2配置yarn-env.sh
终端输入:
vi yarn-env.sh
编辑器中末尾添加:
export JAVA_HOME=/opt/jdk1.8.0_321
保存退出。
2.3配置核心组件core-site.xml
终端输入:
vi core-site.xml
编辑器中在<configuration>标签中输入:
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.8.0/tmp</value> <!--等会儿格式化名称节点时会自动创建-->
</property>
保存退出。
2.4配置文件系统hdfs-site.xml
终端输入:
vi hdfs-site.xml
编辑器中输入:
<property>
<name>dfs.replication</name>
<value>2</value>
<!--对于Hadoop的分布式文件系统HDFS而言,一般都是采用冗余存储,冗余因子通常>
为3,也就是说,一份数据保存三份副本。但是,本教程只有2个Slave节点作为数据节点,即集群中有2个数据节点,所以,dfs.replication的值还是设置为 2-->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-2.8.0/tmp/dfs/name</value> <!--等会儿格式化名称节点时自动创建-->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.8.0/tmp/dfs/data</value> <!--等会儿格式化名称节点时自动创建-->
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop1:50070</value>
</property>
保存退出。
2.5配置文件系统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>hadoop1</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop1:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop1:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop1:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop1:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop1:18088</value>
</property>
<property>
<!--这一点是后面我测试的时候出错添加的,如果不加后面测试可能会出现找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster的错误-->
<!--这个配置的值可以通过hadoop classpath命令获取,然后将其复制到此处,后面的mapred-site.xml文件中也添加了这个配置,但是name不一样-->
<name>yarn.application.classpath</name>
<value>/opt/hadoop-2.8.0/etc/hadoop:/opt/hadoop-2.8.0/share/hadoop/common/lib/*:/opt/hadoop-2.8.0/share/hadoop/common/*:/opt/hadoop-2.8.0/share/hadoop/hdfs:/opt/hadoop-2.8.0/share/hadoop/hdfs/lib/*:/opt/hadoop-2.8.0/share/hadoop/hdfs/*:/opt/hadoop-2.8.0/share/hadoop/mapreduce/lib/*:/opt/hadoop-2.8.0/share/hadoop/mapreduce/*:/opt/hadoop-2.8.0/share/hadoop/yarn:/opt/hadoop-2.8.0/share/hadoop/yarn/lib/*:/opt/hadoop-2.8.0/share/hadoop/yarn/*
</value>
</property>
保存退出。
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>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop1:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop-2.8.0</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop-2.8.0</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop-2.8.0</value>
</property>
<property>
<!--这一点是后面我测试的时候出错添加的,如果不加可能会出现找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster的错误-->
<!--这个配置的值可以通过hadoop classpath命令获取,然后将其复制到此处-->
<name>mapreduce.application.classpath</name>
<value>/opt/hadoop-2.8.0/etc/hadoop:/opt/hadoop-2.8.0/share/hadoop/common/lib/*:/opt/hadoop-2.8.0/share/hadoop/common/*:/opt/hadoop-2.8.0/share/hadoop/hdfs:/opt/hadoop-2.8.0/share/hadoop/hdfs/lib/*:/opt/hadoop-2.8.0/share/hadoop/hdfs/*:/opt/hadoop-2.8.0/share/hadoop/mapreduce/lib/*:/opt/hadoop-2.8.0/share/hadoop/mapreduce/*:/opt/hadoop-2.8.0/share/hadoop/yarn:/opt/hadoop-2.8.0/share/hadoop/yarn/lib/*:/opt/hadoop-2.8.0/share/hadoop/yarn/*
</value>
</property>
保存退出。
2.7修改slaves文件
终端输入:
vim slaves
删掉localhost,写入:
hadoop2 hadoop3
保存退出。
三、配置Hadoop从节点hadoop2、hadoop3
在/opt/hadoop文件夹中使用终端打开

先升级权限,hadoop1、hadoop2、hadoop3依次执行:
chmod 777 /opt/hadoop-2.8.0
命令行输入:
rsync -rvl /opt/hadoop-2.8.0/etc/hadoop/ w@hadoop2:/opt/hadoop-2.8.0/etc/hadoop
以上就是从服务器配置。
同样的,也可以利用ftp工具复制,或者按照主服务器配置重新配置也可以。

浙公网安备 33010602011771号