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工具复制,或者按照主服务器配置重新配置也可以。

 

posted @ 2022-07-22 10:55  wangtay  阅读(222)  评论(0)    收藏  举报