Hadoop3.x 完全分散動作モード構成

準備

3 つの仮想マシン、java を構成し、hadoop-3.1.3 を 3 つの仮想マシンの指定されたディレクトリに解凍します。

hadoop102,hadoop103,hadoop104

クラスタ展開の計画

注: NameNode と SecondaryNameNode を同じサーバーにインストールしないでください
注: ResourceManager もメモリを消費するため、NameNode と SecondaryNameNode と同じマシンに構成しないでください。

hadoop102 hadoop103 hadoop104
HDFS NameNode DataNode データノード SecondaryNameNode DataNode
ノードマネージャー ResourceManager NodeManager ノードマネージャー

共通ポート番号の説明

デーモン アプリ Hadoop2 Hadoop3
NameNode ポート Hadoop HDFS NameNode 8020/9000 9820
Hadoop HDFS NameNode HTTP UI 50070 9870
セカンダリ NameNode ポート セカンダリ NameNode 50091 9869
セカンダリ NameNode HTTP UI 50090 9868
DataNode ポート Hadoop HDFS DataNode IPC 50020 9867
Hadoop HDFS データノード 50010 9866
Hadoop HDFS DataNode HTTP UI 50075 9864

SSH パスワードなしのログイン構成

ssh-keygen -t rsa

改行を 3 回打つ

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

3 つのホストが相互にログインする

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>

ヤーンサイト.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>

ワーカーを構成する

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

hadoop ディレクトリを他のホストの同じディレクトリにコピーします。

フォーマット

クラスターを初めて開始する場合は、hadoop102 ノードで NameNode をフォーマットする必要があります (NameNode をフォーマットすると新しいクラスター ID が生成されるため、NameNode と DataNode の間でクラスター ID の一貫性が失われ、クラスターは過去のノードを見つけることができないことに注意してください)。エラーが報告され、NameNode を再フォーマットする必要がある場合は、最初に namenode および datanode プロセスを停止し、すべてのマシンのデータおよびログ ディレクトリをフォーマット前に削除する必要があります。)

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