Hadoop para construir un clúster de alta disponibilidad

La alta disponibilidad de configuración de clúster Hadoop

Construir clústeres de alta disponibilidad, la necesidad de involucrar a ocho perfiles

1.zookepper MyID el directorio de archivos del nodo zkdata
zoo.cfg bajo el directorio de archivos del nodo 2.zookepper zkdata
etc / Hadoop hadoop-env.sh en un directorio de instalación de directorios bajo / 3.hadoop
bajo el directorio de instalación 4.hadoop core-site.xml bajo etc / hadoop directorio /
etc / hadoop en el directorio de instalación 5.hadoop hdfs-site.xml bajo / directorio de
esclavos en el directorio etc / instalación 6.hadoop hadoop bajo el directorio /
7.hadoop instalar directorio etc / hadoop en el hilo site.xml / directorio
directorio de instalación etc / hadoop en 8.hadoop mapred-site.xml bajo / directorio

`集群策略:
zk 1 、2  、3为 zookapper 
hadoop4、5为 namenode
hadoop6、7为``resourcemanager 
hadoop 8910为 namdnode 、journalnode 以及 nodemanager 

Ideas configuración del clúster y detalles de perfil

La creación de un clúster zookepper

Objetivo: Para asegurarse de conmutación automática por error en un entorno de clúster (al menos 3, un número impar)

①myid

1

Crear un sistema de zkdata directorio de archivos, a la que toque un archivo llamado myid
fin de garantizar ZK cada uno tiene su propia identidad única.

②zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zkdata
clientPort=3001
server.1=主机名:3002:3003
server.2=主机名:4002:4003
server.3=主机名:5002:5003

Crear un zoológico en el directorio de archivos zkdata, como se muestra en el archivo cfg, el contenido anterior.
DataDir directorio de archivos
clientport 3001 ZK servidor de puerto (puerto proceso cliente)
3002: Emisión Atómica puerto interno para los datos de
3003: interior de los puertos tolerantes electorales
Átomos transmisiones desde el sitio web oficial de zookepper explicación
átomos transmitido: la de cualquiera de los demás servidores de escribir petición del cliente, en toda la sincronización entre servidores.

Hasta el momento, racimo zookepper trabajo preparatorio se ha completado.

ZK grupo de comandos :

Ejecutado en el directorio bin bajo el directorio de instalación de ZK

./zkServer.sh comenzar /root/zkdata/zoo.cfg (iniciar)
./zkServer.sh estado /root/zkdata1/zoo.cfg (Ver estado)

2. Configurar una hdfs racimo

Trabajo previo:

Modificar una dirección IP estática: vim /etc/sysconfig/network-script/ifcfg-ens37
nombre de host: vim /etc/hostname
asignación de IP: vim /etc/hosts
configurar sin ssh densa ingreso: ssh-keygen -t rsa(clave secreta generada), ssh-copy-id 主机名(distribuido clave secreta)

③hadoop-env.sh

Modificar las variables de entorno JDK propósito: el acceso remoto, la variable de entorno no es válido, puede funcionar adecuadamente para garantizar el acceso remoto.

export JAVA_HOME=/自己的安装目录

④core-site.xml

archivo de configuración de núcleo hadoop

<!-- 高可用集群的配置 -->
<!-- 文件系统的入口 -->	
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://ns</value>
</property>
<!-- 文件系统的目录 -->	
<property>
  <name>hadoop.tmp.dir</name>
  <value>/root/hadoop-2.9.2/data</value>
</property>
<!-- ZK系统的IP及Port -->	
<property>
	<name>ha.zookeeper.quorum</name>
  <value>zk1:3001,zk2:4001,zk3:5001</value>
</property>

Debido a que es un clúster, por lo que no hay ninguna entrada especifica los sistemas de archivos de nombre personalizado *** *** ns lugar.

⑤hdfs-site.xml

<!--指定hdfs的nameservice为ns,需要和core-site.xml中的保持一致 -->
	  <property>
		  <name>dfs.nameservices</name>
		  <value>ns</value>
	  </property>
	  
	  <!-- ns下面有两个NameNode,分别是nn1,nn2 -->
	  <property>
		  <name>dfs.ha.namenodes.ns</name>
		  <value>nn1,nn2</value>
	  </property>
	  
 		<!-- nn1的RPC通信地址 -->
	  <property>
		  <name>dfs.namenode.rpc-address.ns.nn1</name>
		  <value>hadoop4:9000</value>
	  </property>
	  <!-- nn1的http通信地址 -->
	  <property>
		  <name>dfs.namenode.http-address.ns.nn1</name>
		  <value>hadoop4:50070</value>
	  </property>
  	<!-- nn2的RPC通信地址 -->
	  <property>
		  <name>dfs.namenode.rpc-address.ns.nn2</name>
		  <value>hadoop5:9000</value>
	  </property>
	  <!-- nn2的http通信地址 -->
	  <property>
		  <name>dfs.namenode.http-address.ns.nn2</name>
		  <value>hadoop5:50070</value>
	  </property>

<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
	<property>
		<name>dfs.namenode.shared.edits.dir</name>
		<value>qjournal://hadoop8:8485;hadoop9:8485;hadoop10:8485/ns</value>
	</property>
	
	<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
	<property>
		<name>dfs.journalnode.edits.dir</name>
		<value>/root/journal</value>
	</property>
	
<!-- 开启NameNode故障时自动切换 -->
	<property>
		<name>dfs.ha.automatic-failover.enabled</name>
		<value>true</value>
	</property>
	
    <!-- 配置失败自动切换实现方式 -->
	<property>
		<name>dfs.client.failover.proxy.provider.ns</name>
		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>
	
	<!-- 配置隔离机制,如果ssh是默认22端口,value直接写sshfence即可 -->
	<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>
	<!-- 可视化界面可写操作 -->	
	<property>
	  <name>dfs.permissions.enabled</name>
	  <value>false</value>
	</property>

⑥slaves

hadoop8
hadoop9
hadoop10

La configuración de tres anfitriones, tanto como DataNode y como NodeManager.

⑦yarn-site.xml

<!-- 开启RM高可用 -->
<property>
  <name>yarn.resourcemanager.ha.enabled</name>
  <value>true</value>
</property>
<!-- 指定RM的cluster id -->
<property>
  <name>yarn.resourcemanager.cluster-id</name>
  <value>yrc</value>
</property>
<!-- 指定RM的名字 -->
<property>
  <name>yarn.resourcemanager.ha.rm-ids</name>
  <value>rm1,rm2</value>
</property>
<!-- 分别指定RM的地址 -->
<property>
  <name>yarn.resourcemanager.hostname.rm1</name>
  <value>hadoop24</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname.rm2</name>
  <value>hadoop25</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm1</name>
  <value>hadoop6:8088</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm2</name>
  <value>hadoop7:8088</value>
</property>
<!-- 指定zk集群地址 -->
<property>
  <name>yarn.resourcemanager.zk-address</name>
  <value>zk:3001,zk:4001,zk:5001</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>

⑧mapred-site.xml

<!--配置计算框架-->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
<!--配置历史服务器的TCP端口-->
<property>
   <name>mapreduce.jobhistory.address</name>
   <value>hadoop10:10020</value>
</property>
<!--配置历史服务器的web端口-->
<property>
   <name>mapreduce.jobhistory.webapp.address</name>
   <value>hadoop10:19888</value>
</property> 

Nota: Debido a que el hadoop directorio predeterminado bajo ningún archivo-site.xml mapred. Por lo tanto la necesidad de copiar manualmente, ejecute el siguiente comando:

cp hadoop-2.9.2/etc/hadoop/mapred-site.xml.template hadoop-2.9.2/etc/hadoop/mapred-site.xml

Mapred puede crear un documento
hasta ahora, para construir una configuración de clúster se ha completado

3. Iniciar la alta disponibilidad del clúster Hadoop

Comando (secuencial)

☆☆☆☆ yum install psmisc -y(Todos los nodos instalados estructuras de grupo centos7.x dependiente)
☆☆☆☆ hdfs zkfc -formatZK(realizada en cualquier NameNode, ZK formateo)
☆☆☆☆ hadoop-daemon.sh start journalnode(ejecución comenzó en todos los nodos journalNode)

En primer lugar se inicia journalNode es asegurar que el formato NameNode (propios datos) antes, para asegurar la sincronización de datos.

☆☆☆☆ hdfs namenode -format ns(inicio de la ejecución en el activo [opción] de NameNode)
☆☆☆☆ start-dfs.sh(iniciar hdfs File System)
☆☆☆☆ hdfs namenode -bootstrapStandby(formateo en el modo de espera NameNode)
☆☆☆☆ hadoop-daemon.sh start namenode(inicio del nodo NameNode espera)
☆☆☆☆ start-yarn.sh(el nodo activo en la ejecución iniciar Jahn [elección] de resourcesNode)
☆☆☆☆ yarn-daemon.sh start resourcemanager(inicio del nodo resourcesManager espera)

4. clúster de prueba

El acceso a la
ip:50070interfaz web HDFS del sistema de archivos
ip:8088Jahn interfaz de banda de hilos resourcesManager

Otros comandos:

☆☆☆☆ mr-jobhistory-daemon.sh start histroyserver(iniciar el servidor de la historia)
☆☆☆☆ hadoop jar 包名(que se ejecuta el paquete frasco, realizar el trabajo de trabajo)

ip:19888 Historia interfaz web del servidor

Publicado 32 artículos originales · ganado elogios 1 · vistas 1181

Supongo que te gusta

Origin blog.csdn.net/ASYMUXUE/article/details/103820917
Recomendado
Clasificación