Configuração do modo operacional totalmente distribuído do Hadoop3.x

Preparação

Três máquinas virtuais, configure java e descompacte hadoop-3.1.3 para o diretório especificado das três máquinas virtuais

hadoop102,hadoop103,hadoop104

Planejamento de implantação de cluster

Observação: Não instale NameNode e SecondaryNameNode no mesmo servidor
Observação: ResourceManager também consome memória, portanto, não o configure na mesma máquina que NameNode e SecondaryNameNode.

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

Descrição dos números de porta comuns

demônio Aplicativo Hadoop2GenericName Hadoop3Name
Porta NameNode Hadoop HDFS NameNode 8020 / 9000 9820
Hadoop HDFS NameNode HTTP UI 50070 9870
Nome SecundárioNodePorta Nó de Nome Secundário 50091 9869
Interface de usuário HTTP do NameNode secundário 50090 9868
Porta DataNode Hadoop HDFS DataNode IPC 50020 9867
Hadoop HDFS DataNode 50010 9866
Interface do usuário HTTP DataNode do Hadoop HDFS 50075 9864

Configuração de login sem senha SSH

ssh-keygen -t rsa

Acerte três retornos de carro

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

Os três hosts se conectam

ssh hadoop10x

Configurar variáveis ​​de ambiente

[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

Dê privilégios de root xwk ao usuário normal

Meu nome de usuário é xwk, você define de acordo com seu próprio nome de usuário

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

Forçar salvar e sair:wq!

Configurar o cluster

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

core-site.xml

Altere xwk para seu próprio nome de usuário. E mude o caminho do arquivo para o seu próprio

<?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>

fio-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>

configurar trabalhadores

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

Copie o diretório hadoop para o mesmo diretório em outros hosts

formatar

Se o cluster for iniciado pela primeira vez, será necessário formatar o NameNode no nó hadoop102 (observe que a formatação do NameNode gerará um novo ID de cluster, resultando em IDs de cluster inconsistentes entre NameNode e DataNode, e o cluster não pode encontrar passado dados. Se o cluster estiver em execução Se um erro for relatado e o NameNode precisar ser reformatado, os processos namenode e datanode deverão ser interrompidos primeiro e os diretórios de dados e logs de todas as máquinas deverão ser excluídos antes da formatação.)

hdfs namenode -format

comece

Iniciar HDFS (hadoop102) acima

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

Inicie o YARN (hadoop103) acima

sbin/start-yarn.sh


Entre no navegador NameNode do HDFS no lado da web :http://hadoop102:9870

Visualize o navegador ResourceManager do YARN
no lado da web e digite:http://hadoop103:8088

Acho que você gosta

Origin blog.csdn.net/weixin_46322367/article/details/124778422
Recomendado
Clasificación