Hadoop3.x完全分布式运行模式配置

前期准备

三台虚拟机,配置好java,hadoop-3.1.3解压到三台虚拟机指定目录下

hadoop102,hadoop103,hadoop104

集群部署规划

注意:NameNode和SecondaryNameNode不要安装在同一台服务器
注意:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。

hadoop102 hadoop103 hadoop104
HDFS NameNode DataNode DataNode SecondaryNameNode DataNode
YARN NodeManager ResourceManager NodeManager NodeManager

常用端口号说明

Daemon App Hadoop2 Hadoop3
NameNode Port Hadoop HDFS NameNode 8020 / 9000 9820
Hadoop HDFS NameNode HTTP UI 50070 9870
Secondary NameNode Port Secondary NameNode 50091 9869
Secondary NameNode HTTP UI 50090 9868
DataNode Port Hadoop HDFS DataNode IPC 50020 9867
Hadoop HDFS DataNode 50010 9866
Hadoop HDFS DataNode HTTP UI 50075 9864

SSH无密登录配置

ssh-keygen -t rsa

敲三个回车

ssh-copy-id hadoop102
ssh-copy-id hadoop102
ssh-copy-id hadoop102

三台主机互相登录一下

ssh hadoop10x

配置环境变量

[xwk@hadoop102 ~]$ cd /etc/profile.d/
[xwk@hadoop102 profile.d]$ vim my_env.sh 
#java
export JAVA_HOME=/opt/software/jdk
export PATH=$PATH:$JAVA_HOME/bin
#hadoop
export HADOOP_HOME=/opt/software/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[xwk@hadoop102 profile.d]$ source /etc/profile

给普通用户xwk root权限

我的用户名是xwk,你们根据自己的用户名设置

sudo vim /etc/sudoers
找到这行,在root那行下面插入xwk那行
## Allow root to run any commands anywhere 
root	ALL=(ALL) 	ALL
xwk     ALL=(ALL)       NOPASSWD:ALL

强制保存退出:wq!

配置集群

[xwk@hadoop102 profile.d]$ cd /opt/software/hadoop-3.1.3/etc/hadoop/

core-site.xml

将xwk改为你自己的用户名。还有文件路径改成你自己的

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/software/hadoop-3.1.3/data</value>
</property>

<!-- 配置HDFS网页登录使用的静态用户为xwk -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>xwk</value>
</property>

<!-- 配置该xwk(superUser)允许通过代理访问的主机节点 -->
    <property>
        <name>hadoop.proxyuser.xwk.hosts</name>
        <value>*</value>
</property>
<!-- 配置该xwk(superUser)允许通过代理用户所属组 -->
    <property>
        <name>hadoop.proxyuser.xwk.groups</name>
        <value>*</value>
</property>
<!-- 配置该xwk(superUser)允许通过代理的用户-->
    <property>
        <name>hadoop.proxyuser.xwk.groups</name>
        <value>*</value>
</property>
<!--支持LZO压缩 -->
     <property>
        <name>io.compression.codecs</name>
        <value>
            org.apache.hadoop.io.compress.GzipCodec,
            org.apache.hadoop.io.compress.DefaultCodec,
            org.apache.hadoop.io.compress.BZip2Codec,
            org.apache.hadoop.io.compress.SnappyCodec,
            com.hadoop.compression.lzo.LzoCodec,
            com.hadoop.compression.lzo.LzopCodec
        </value>
    </property>

    <property>
        <name>io.compression.codec.lzo.class</name>
        <value>com.hadoop.compression.lzo.LzoCodec</value>
    </property>
</configuration>

hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- nn web端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop102:9870</value>
    </property>
	<!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>
</configuration>

yarn-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</value>
</property>
<!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- yarn容器允许分配的最大最小内存 -->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
</property>
<!-- yarn容器允许管理的物理内存大小 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
</property>
<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
<!-- 开启日志聚集功能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>  
    <name>yarn.log.server.url</name>  
    <value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>

</configuration>

mapred-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop102:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102:19888</value>
</property>

</configuration>

配置workers

vim /hadoop-3.1.3/etc/hadoop/workers
hadoop102
hadoop103
hadoop104

将hadoop目录复制到其他主机相同目录下

格式化

如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)

扫描二维码关注公众号,回复: 14796289 查看本文章
hdfs namenode -format

启动

启动HDFS(hadoop102)上面

cd /opt/software/hadoop-3.1.3/sbin/
./start-dfs.sh

启动YARN(hadoop103)上面

sbin/start-yarn.sh

Web端查看HDFS的NameNode
浏览器中输入:http://hadoop102:9870

Web端查看YARN的ResourceManager
浏览器中输入:http://hadoop103:8088

猜你喜欢

转载自blog.csdn.net/weixin_46322367/article/details/124778422