Construction d'une plateforme Big Data | Construction d'un cluster Hadoop

1. Description environnementale

2. Architecture Hadoop

  • Hadoop sens étroit est constitué de trois composants principaux 分布式存储HDFS, 分布式计算MapReduce,分布式资源管理和调度YARN

2.1 Architecture HDFS

  • Principalement responsable du stockage des données
    Insérez la description de l'image ici

  • NameNode: Gérez les espaces de noms, stockez les informations de mappage des blocs de données (métadonnées) et gérez l'accès client à HDFS.

  • SecondaryNameNode: La mise en veille rapide de NameNode fusionnera périodiquement le miroir d'espace de noms fsimage et le journal de modification du miroir d'espace de noms fsedits. Lorsque le NameNode principal échoue, il peut rapidement basculer vers le nouvel Active NameNode

  • DataNode: Responsable du stockage des données de fichier réelles, le fichier sera divisé en plusieurs blocs et stocké dans différents DataNodes en plusieurs copies

2.2 Architecture du fil

  • Principalement responsable de la planification des travaux et de la gestion des ressources
    Insérez la description de l'image ici
  • ResourceManager(RM):
    • Traiter les demandes de travail soumises et les demandes de demande de ressources.
    • Surveiller l'état de NodeManager
    • Démarrez et surveillez ApplicationMaster
  • NodeManager(NM):
    • Gérer les ressources s'exécutant sur chaque nœud
    • Rapportez régulièrement l'utilisation des ressources sur ce nœud et l'état d'exécution de chaque conteneur à RM
    • Gérer les demandes de AM pour démarrer / arrêter chaque conteneur
  • Container:
    • Autrement dit, le conteneur dans lequel la tâche s'exécute est également l'abstraction des ressources de Yarn, qui encapsule les ressources multidimensionnelles sur un certain nœud, comme la mémoire, le processeur, le disque, le réseau, etc. La ressource retournée par RM pour AM est représentée par Container. YARN attribuera un conteneur à chaque tâche et la tâche ne pourra utiliser que les ressources décrites dans le conteneur
  • ApplicationMaster(AM):
    • Chaque travail démarrera un AM dans le NM, puis l'AM sera chargé d'envoyer la demande de démarrage des tâches MapTask et ReduceTask au NM, et de demander les ressources nécessaires à l'exécution de la tâche au RM.
    • Interagir avec RM pour postuler au conteneur de ressources (telles que les ressources pour l'exécution des travaux, les ressources pour l'exécution des tâches)
    • Responsable du démarrage et de l'arrêt des tâches et de la surveillance de l'état d'exécution de toutes les tâches. En cas d'échec de la tâche, réappliquez des ressources pour la tâche et redémarrez la tâche.

3. Planification des clusters

Sauf indication contraire, chaque serveur doit conserver la même configuration

Hadoop300 Hadoop301 Hadoop302
NomNœud V
DataNode V V V
SecondaryNameNode V
ResourceManger V
NodeManger V V V

4. Téléchargez et décompressez

4.1 Placement du package d'installation

  • hadoop3.1.3Décompressez le fichier téléchargé et créez un raccourci vers le ~/apprépertoire, le même pour hadoop301, hadoop302
[hadoop@hadoop300 app]$ pwd
/home/hadoop/app
[hadoop@hadoop300 app]$ ll
lrwxrwxrwx   1 hadoop hadoop  47 2月  21 12:33 hadoop -> /home/hadoop/app/manager/hadoop_mg/hadoop-3.1.3

4.2 Configurer les variables d'environnement Hadoop

  • vim ~/.bash_profile
# ============ java =========================
export JAVA_HOME=/home/hadoop/app/jdk
export PATH=$PATH:$JAVA_HOME/bin

# ======================= Hadoop ============================
export HADOOP_HOME=/home/hadoop/app/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

5. Configuration Hadoop

5.1 fichier env

  • Les modifications ${HADOOP_HOME}/etc/hadoop下hadoop-env.sh, mapred-env.sh, yarn-env.sh ajoutent toutes des variables d'environnement JDK
export JAVA_HOME=/home/hadoop/app/jdk

5.2 core-site.xml

  • Modifier le ${HADOOP_HOME}/etc/hadoop/core-site.xmlfichier
  • Pour la configuration des utilisateurs proxy, voir le site officiel Utilisateur proxy
<!-- 指定HDFS中NameNode的地址, -->
<property>
	<name>fs.defaultFS</name>
    <value>hdfs://hadoop300:8020</value>
</property>

<!-- 指定Hdfs的NameNode、DataNode数据存储路径, 默认在/tmp/hadoop-${user.name}下 -->
<!--
	 <property>
		<name>hadoop.tmp.dir</name>
		<value>/tmp/hadoop-${user.name}</value>
	</property>
 -->

	 <!-- 配置HDFS管理页面登陆的静态用户为 hadoop -->
	 <property>
			<name>hadoop.http.staticuser.user</name>
			<value>hadoop</value>
	 </property>

	<!-- 配置该hadoop用户允许通过代理访问的主机节点-->
	<property>
		<name>hadoop.proxyuser.hadoop.hosts</name>
		<value>*</value>
	</property>
	<!-- 配置该hadoop用户允许代理的用户所属组-->
	<property>
		<name>hadoop.proxyuser.hadoop.groups</name>
	 	<value>*</value>
	</property>
	<!-- 配置该hadoop用户允许代理的用户, *代表所有-->
	<property>
		<name>hadoop.proxyuser.hadoop.users</name>
	 	<value>*</value>
	</property>

5.3 Fichier hdfs-site.xml (configuration hdfs)

  • Configurer les attributs liés à HDFS
<!-- 指定HDFS副本的数量-->
<property>
	<name>dfs.replication</name>
	<value>2</value>
</property>

<!-- SecondaryNameNode启动地址 -->
<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>hadoop302:9868</value>
</property>

5.4 yarn-site.xml (placement de fil)

  • Configurer les propriétés liées au fil
<!-- Reducer获取数据的方式, 使用shuffle -->
<property>
 		<name>yarn.nodemanager.aux-services</name>
 		<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的主机地址 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
  <value>hadoop301</value>
</property>

<!-- 容器向RM的内存申请请求允许的最小值, 即最小分配为该内存大小-->
<property>
  <name>yarn.scheduler.minimum-allocation-mb</name>
  <value>200</value>
</property>
<!-- 容器向RM的内存申请请求允许的最大值, 超出将会抛出 InvalidResourceRequestException异常-->
<property>
	<name>yarn.scheduler.maximum-allocation-mb</name>
  <value>2048</value>
</property>

<!-- 设置Yarn可使用的内存大小, 即可分配给容器的物理内存量(以MB为单位)。如果设置为-1并且yarn.nodemanager.resource.detect-hardware-capabilities为true,则会自动计算(在Windows和Linux中)。在其他情况下,默认值为8192MB。-->
<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>4096</value>
</property>

<!--  关闭Yarn对物理内存和虚拟内存的限制检查
	  因为内存计算方式不一样, 可能会误认为内存不够然后把作业kill掉
 -->
<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.server.url</name>
        <value>http://hadoop300:19888/jobhistory/logs/</value> 
</property>

<!-- 开启日志聚集功能使能 
		 日志聚集就是应用运行完成以后,将容器本地运行的日志信息收集上传到HDFS系统上。方便查看
-->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

5.5 mapred-site.xml (placement MapReduce)

  • Configurer les paramètres associés à MapReduce
<!-- 指定MR运行在YARN上, 默认运行在local本地 -->
<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>
	
	<!-- 指定jobhistory地址 -->
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop300:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop300:19888</value>
  </property>

<!-- 指定hadoop环境变量 -->
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

5.6 Configuration du fichier de travail

  • Modifier les ${HADOOP_HOME}/etc/hadoop/workersfichiers, les paramètres, la liste des nœuds du cluster Hadoop
    • tip: 注意不要出现空行和空格
hadoop300
hadoop301
hadoop302

6. Démarrez le test

6.1 Format NameNode

  • Exécuter dans hadoop300
[hadoop@hadoop300 app]$ hdfs namenode -format

6.2 Démarrer HDFS

  • Commencer dans hadoop300
[hadoop@hadoop300 ~]$ start-dfs.sh
Starting namenodes on [hadoop300]
Starting datanodes
Starting secondary namenodes [hadoop302]

6.3 Lancer le fil

  • Commencer dans hadoop301
[hadoop@hadoop301 ~]$ start-yarn.sh
Starting resourcemanager
Starting nodemanagers

6.4 Démarrer JobHistory

[hadoop@hadoop300 hadoop]$ mapred --daemon start historyserver

6.5 Effet

  • Processus d'affichage JPS après un démarrage réussi
  • À ce moment, les nn, dn et sn de hdfs sont tous démarrés.
  • Et les RM et NM du fil sont également activés
  • JobHistory de mr est également activé
[hadoop@hadoop300 hadoop]$ xcall jps
--------- hadoop300 ----------
16276 JobHistoryServer
30597 DataNode
19641 Jps
30378 NameNode
3242 NodeManager
--------- hadoop301 ----------
24596 DataNode
19976 Jps
27133 ResourceManager
27343 NodeManager
--------- hadoop302 ----------
24786 SecondaryNameNode
27160 NodeManager
24554 DataNode
19676 Jps

L'interface NameNode pour accéder à HDFS se trouve àhadoop300:9870
Insérez la description de l'image ici

Accédez à l'interface SecondaryNameNode de HDFS à l'adressehadoop300:9868
Insérez la description de l'image ici

Accédez à l'interface de gestion du fil: danshadoop301:8088
Insérez la description de l'image ici

Visitez l'interface de JobHistory, danshadoop300:19888
Insérez la description de l'image ici

7. Script de démarrage unifié du cluster Hadoop

  • vim hadoop.sh
#!/bin/bash

case $1 in
"start"){
    
    
		echo ---------- Hadoop 集群启动 ------------
		echo "启动Hdfs"
        ssh hadoop300 "source ~/.bash_profile;start-dfs.sh"
        echo "启动Yarn"
        ssh hadoop300 "source ~/.bash_profile;mapred --daemon start historyserver"
        echo "启动JobHistory"
        ssh hadoop301 "source ~/.bash_profile;start-yarn.sh"
};;
"stop"){
    
    
		echo ---------- Hadoop 集群停止 ------------
		echo "关闭Hdfs"
        ssh hadoop300 "source ~/.bash_profile;stop-dfs.sh"
        echo "关闭Yarn"
        ssh hadoop300 "source ~/.bash_profile;mapred --daemon stop historyserver"
        echo "关闭JobHistory"
        ssh hadoop301 "source ~/.bash_profile;stop-yarn.sh"
};;
esac

10. Récompense

Si vous trouvez l'article utile, vous pouvez encourager l'auteur (Alipay)

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_41347419/article/details/113916436
conseillé
Classement