Alta disponibilidad acumulación hadoop

estructuras de grupo HA pueden ser construidos en una base totalmente distribuida

objetivo:

Reducir la incidencia de puntos únicos de fallo

diagrama de configuración Planificación

NN1 NN2 DN zK ZKFC JNN RM
hadoop100 * * * * * *
hadoop101 * * * * * *
hadoop102 * * *

La Fig. NN, DN, ZK, ZKFC, JNN, RM se denominará en adelante como
NN: la NameNode
el DN: DataNodes
ZK: la Zookeeper
ZKFC: el cliente Zookeeper
JNN: Journalnode
RM: ResourceManager

preparativos:
1, servidor de configuración de tiempo de sincronización (opcional)
Todos los nodos realizan

yum  -y  install ntp
ntpdate ntp1.aliyun.com

2, configurar la asignación de cada host (no sé para resolver sus propios Baidu)

3, evitar el cierre de sesión
Todos los nodos realizan

ssh-keygen-t rsa   //生成密钥  中途停下询问的一直按回车到执行成功为止
ssh-copy-id hadoop101 //发送公钥到其他节点上

4, desactive la configuración del cortafuegos

systemctl stop firewalld.service //暂时关闭
systemctl disable firewalld.service //永久关闭

Comenzado a construir un cluster Hadoop alta disponibilidad

instalación de JDK (si se trata de una instalación mínima Centos JDK por defecto no está instalado directamente extraer el bien, la instalación gráfica requiere desinstalar el JDK original para instalar)

La extracción de la instalación de paquetes hadoop

tar xf hadoop2.7.7... -C /module/ha/

Hadoop archivo de configuración en el directorio

cd /module/ha/hadoop/etc/hadoop

Tres (hadoop, hilado, mapred) Archivo -env.sh, encontrar la ruta de instalación del conjunto JAVA_HOME JDK
Aquí Insertar imagen Descripción

Colocado núcleo-site.xml

vi core-site.xml
<!-- 设置hdfs的nameservice服务 名称自定义 -->
  <property>
     <name>fs.defaultFS</name>
     <value>hdfs://mycluster</value>
  </property>

<!-- 设置hadoop的元数据存放路径 -->
  <property>
     <name>hadoop.tmp.dir</name>
     <value>/moudle/ha/hadoop/data</value>
  </property>
  
<!-- 指定zookeeper地址 -->
  <property>
     <name>ha.zookeeper.quorum</name>
     <value>hadoop100:2181,hadoop101:2181,hadoop102:2181</value>
  </property>

vi hdfs-site.xml

	<!-- 完全分布式集群名称 -->
	<property>
		<name>dfs.nameservices</name>
		<value>mycluster</value>
	</property>

	<!-- 集群中NameNode节点都有哪些 -->
	<property>
		<name>dfs.ha.namenodes.mycluster</name>
		<value>nn1,nn2</value>
	</property>

	<!-- nn1的RPC通信地址 -->
	<property>
		<name>dfs.namenode.rpc-address.mycluster.nn1</name>
		<value>hadoop100:9000</value>
	</property>

	<!-- nn2的RPC通信地址 -->
	<property>
		<name>dfs.namenode.rpc-address.mycluster.nn2</name>
		<value>hadoop101:9000</value>
	</property>

	<!-- nn1的http通信地址 -->
	<property>
		<name>dfs.namenode.http-address.mycluster.nn1</name>
		<value>hadoop100:50070</value>
	</property>

	<!-- nn2的http通信地址 -->
	<property>
		<name>dfs.namenode.http-address.mycluster.nn2</name>
		<value>hadoop101:50070</value>
	</property>

	<!-- 指定NameNode元数据在JournalNode上的存放位置 -->
	<property>
		<name>dfs.namenode.shared.edits.dir</name>
	<value>qjournal://hadoop100:8485;hadoop101:8485;hadoop102:8485/mycluster</value>
	</property>

	<!-- 配置隔离机制,即同一时刻只能有一台服务器对外响应 -->
	<property>
		<name>dfs.ha.fencing.methods</name>
		<value>sshfence</value>
	</property>

	<!-- 使用隔离机制时需要ssh无秘钥登录-->
	<property>
		<name>dfs.ha.fencing.ssh.private-key-files</name>
		<value>/root/.ssh/id_rsa</value>
	</property>

	<!-- 声明journalnode服务器存储目录-->
	<property>
		<name>dfs.journalnode.edits.dir</name>
		<value>/module/ha/hadoop/data/jn</value>
	</property>

	<!-- 关闭权限检查-->
	<property>
		<name>dfs.permissions.enable</name>
		<value>false</value>
	</property>

	<!-- 访问代理类:client,mycluster,active配置失败自动切换实现方式-->
	<property>
  		<name>dfs.client.failover.proxy.provider.mycluster</name>
	<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>
    <!--设置开启HA故障自动转移-->
    <property>
	    <name>dfs.ha.automatic-failover.enabled</name>
	    <value>true</value>
    </property>

Colocado-site.xml mapred

vi mapred-site.xml

Añadir la siguiente configuración

<!-- 指定mr框架为yarn方式 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

Configuración de hilo site.xml (opcional)

vi yarn-site.xml

Añadir la siguiente configuración

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!--启用resourcemanager ha-->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
 
    <!--声明两台resourcemanager的地址-->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>cluster-yarn1</value>
    </property>

    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>

    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>hadoop100</value>
    </property>

    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>hadoop101</value>
    </property>
 
    <!--指定zookeeper集群的地址--> 
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>hadoop100:2181,hadoop101:2181,hadoop102:2181</value>
    </property>

    <!--启用自动恢复--> 
    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
    </property>
 
    <!--指定resourcemanager的状态信息存储在zookeeper集群--> 
    <property>
        <name>yarn.resourcemanager.store.class</name>               <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
    </property>

esclavos de configuración

vi slaves
hadoop100
hadoop101
hadoop102

Configuración terminó distribuye a todos los nodos

scp –r -p /usr/local/hadoop/ root@master2:/usr/local/

instalación Zookeeper

Descomprimir el archivo

tar xf 文件名  -C 存放路径

variable de entorno buena autoconfiguración

zoo_sample.cfg bajo el directorio conf modificado

mv  zoo_sample.cfg  zoo.cfg
vi  zoo.cfg

El almacenamiento de los metadatos almacenados en la configuración de la ruta ZK

dataDir=/module/zookeeper/zk  

En la parte inferior del archivo de añadir los datos siguientes

Server.1=hadoop100:2888:3888
Server.2=hadoop101:2888:3888
Server.3=hadoop102:2888:3888

La generación de registros de ubicación de zookeeper modificarno puede ser modificado

vi bin/zkEnv.sh

Aquí Insertar imagen Descripción
modificaciónSegundo flecha que señala el caminoPara hacer su propio desea almacenar

La creación de un archivo de metadatos almacenados en la ruta de almacenamiento de ZK

mkdir  /module/zookeeper/zk

Distribuir archivos de configuración zookeeper zookeeper a todos los nodos
escritos en diferentes nodos correspondientes a ID

echo  1 > /module/zookeeper/zk/myid   # hadoop100节点上:

ZooKeeper en cada nodo del clúster, realice los servicios de ZOOKEEPER Guión de inicio

zkServer.sh start 

detalles de implementación
1, debe iniciar journalnode

hadoop-daemons.sh start journalnode

2, en el que la selección se configura para realizar un formato de tabla en hadoop nodo NN

bin/hdfs namenode –format

3. Seleccione un NameNode inicio NN

sbin/hadoop-daemon.sh start namenode

4, la sincronización de datos se lleva a cabo en otro nodo NN

bin/hdfs namenode -bootstrapStandby

5, en un NN en el que el formateo zkfc realizado

bin/hdfs zkfc –formatZK

En el que el grupo NN empezar hadoop

sbin/start-dfs.sh

Uso de comandos para ver JPScada¿Hay un nodo nodo siguiente
Aquí Insertar imagen Descripción
punto del cluster Hadoop completa HA! ! ! !

RM se abre está dispuesto en el HA realiza nodo RM

sbin/start-yarn.sh

En otra configuración también se realiza en el nodo RM

sbin/yarn-daemon.sh start resourcemanager

Ver todos los nodos tienen el siguiente nodo de la RM configuración de clúster HA hasta ahora con éxito! ! ! ! ! !
Aquí Insertar imagen Descripción

comandos de uso frecuente NameNode proceso se inicia: Inicio hadoop-daemon.sh los NameNode
proceso se inicia DataNode: hadoop-daemon.sh DataNode inicio

HA entorno de alta disponibilidad, lo que necesita para iniciar el proceso: Zookeeper: zkServer.sh inicio zkServer.sh de arranque y parada parada
estado zkServer.sh para ver el estado de follwer líder

comandos de grupo journalnode journalnode inicio hadoop-daemon.sh empezar hadoop-daemon.sh
journalnode STOP Detener

ZKFC Formato: hdfs zkfc -formatZK comenzar zkfc proceso: zkfc inicio hadoop-daemon.sh
proceso de parada zkfc: zkfc parada hadoop-daemon.sh

NameNode nombre de la sincronización de datos: hdfs NameNode -bootstrapStandby

Iniciar el proceso de hilado:

yarn-daemon.sh comenzar ResourceManager

Interruptor análogo de estado de conmutación por error automática de espera NN

  1. Uso JPS Identificación del proceso Ver NameNode
jps
  1. NameNode proceso de parada
 kill -9 namenode的进程id

A continuación, ver si la página web dos NameNode para ver el estado de la conmutación
3. Proceso de NameNode Reiniciar:

  hadoop-daemon.sh start namenode
Publicado 39 artículos originales · alabanza ganado 13 · vistas 2314

Supongo que te gusta

Origin blog.csdn.net/qq_43205282/article/details/103433702
Recomendado
Clasificación