0


Hadoop分布式集群配置

Hadoop分布式集群配置

在Hadoop的集群中,有一个NameNode,一个ResourceManager。在高可靠的集群环境中,可以拥有两个NameNode和两个ResourceManager;在Hadoop 3版本以后,同一个NameService可以拥有3个NameNode。由于NameNode和ResourceManager是两个主要的服务,建议将它们部署到不同的服务器上。

步骤01 准备工作。

以三台服务器为集群环境,做以下准备工作。

(1) 所有主机安装JDK1.8+。建议将JDK安装到不同的主机的相同目录下,这样可以减少修改配置文件的次数。

(2) 在主节点(即执行start-dfs.sh和start-yarn.sh的主机)上向所有其他主机做SSH免密码登录。

(3) 修改所有主机的主机名称。

(4) 配置所有主机的hosts文件,添加主机名和IP的映射如下:

192.168.56.101 server101

192.168.56.102 server102

192.168.56.103 server103

(5) 关闭所有主机上的防火墙,使用以下命令:

systemctl stop firewalld

systemctl disable firewalld

(6) 完整的配置如表所示。

从表中可以看出,server101运行的进程比较多,且NameNode运行在上面,所以这台主机需要更多的内存。

特别说明,ZooKeeper集群安装,HBase的集群安装与此集群主机配置表相同,都采用表中所示的三台主机,具体配置内容详见各实验的具体描述。

步骤02 在server101上安装Hadoop。可以将Hadoop安装到任意的目录下,如在根目录下创建/app然后授予hadoop用户即可。将hadoop-3.4.0.tar.gz解压到/app目录下,并配置/app目录属hadoop用户。

$ sudo tar -zxvf hadoop3.4.0.tag.gz -C /app/

将/app目录及子目录,授权给hadoop用户和hadoop组:

$sudo chown hadoop:hadoop -R /app

配置hadoop-env.sh文件:

export JAVA_HOME=/usr/java/jdk1.8.0_281

配置文件core-site.xml:

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://server101:8020</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/app/datas/hadoop</value>
        </property>
    </configuration>

配置文件hdfs-site.xml:

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
        <property>
            <name>dfs.permissions.enabled</name>
            <value>false</value>
        </property>
    </configuration>

配置文件mapred-site.xml:

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>

配置文件yarn-site.xml:

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>server101</value>
        </property>
        <property>
            <name>yarn.application.classpath</name>
            <value>请自行执行hadoop classpath命令并将结果填入</value>
        </property>
    </configuration>

配置workers配置文件:workers配置文件用于配置执行DataNode和NodeManager的节点。

server101

server102

server103

步骤03 使用scp将Hadoop分发到其他主机。

由于scp会在网络上传递文件,而hadoop/share/doc目录下都是文档,没有必要进行复制,所以可以删除这个目录。删除doc目录:

$ rm -rf /app/hadoop-3.4.0/share/doc

然后复制server101的文件到其他两台主机的相同目录下:

$scp -r /app/hadoop-3.4.0 server102:/app/

$scp -r /app/hadoop-3.4.0 server103:/app/

步骤04 在server101上格式化NameNode。

首先需要在server101上配置Hadoop的环境变量。

$ sudo vim /etc/profile

在文件最后追加:

export HADOOP_HOME=/app/hadoop-3.4.0

export PATH=$PATH:$HADOOP_HOME/bin

在server101上执行namenode初始化命令:

$ hdfs namenode -format

步骤05 启动HDFS和YARN。

在server101上执行启动工作,由于配置了集群,此启动过程会以SSH方式登录其他两台主机,并分别启动DataNode和NodeManager。

$ /app/hadoop-3.4.0/sbin/start-dfs.sh

$ /app/hadoop-3.4.0/sbin/start-yarn.sh

启动完成后,通过宿主机的浏览器,查看9870端口,会显示集群情况,如图6-1所示。

访问地址http://server101:9870/,会发现三个DataNode节点同时存在。

查看8088端口,会发现三个NodeManager同时存在,如图所示。

http://192.168.1.10:8088

最后,建议执行MapReduce测试一下集群,比如执行以下wordcount示例,如果可以顺序执行完成,则说明整个集群的配置都是正确的。

$ yarn jar hadoop-mapreduce-examples-3.2.2.jar wordcount /test/ /out002

标签: eclipse java ide

本文转载自: https://blog.csdn.net/qq_53877854/article/details/142580256
版权归原作者 qq_53877854 所有, 如有侵权,请联系我们删除。

“Hadoop分布式集群配置”的评论:

还没有评论