Hadoop

集群部署规划

注意:NameNode 和 SecondaryNameNode不要安装在同一台服务器

注意:ResourceManager 也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上

hadoop101 hadoop102 hadoop103
HDFS NameNode DataNode DataNode SecondaryNameNode DataNode
YARN NodeManager ResourceManager NodeManager NodeManager

配置文件

核心配置文件

$HADOOP_HOME/etc/hadoop/core-site.xml

<configuration>
    <!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop101:8020</value>
    </property>
    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
    </property>
    <!-- 配置HDFS网页登录使用的静态用户为atguigu -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>atguigu</value>
    </property>
    <!-- 配置该atguigu(superUser)允许通过代理访问的主机节点 -->
    <property>
        <name>hadoop.proxyuser.atguigu.hosts</name>
        <value>*</value>
    </property>
    <!-- 配置该atguigu(superUser)允许通过代理用户所属组 -->
    <property>
        <name>hadoop.proxyuser.atguigu.groups</name>
        <value>*</value>
    </property>
</configuration>

HDFS配置文件

$HADOOP_HOME/etc/hadoop/hdfs-site.xml

<configuration>
    <!-- nn web端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop101:9870</value>
    </property>
	<!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop103:9868</value>
    </property>
</configuration>

YARN配置文件

$HADOOP_HOME/etc/hadoop/yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
    <!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop102</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>
	<!-- 开启日志聚集功能 -->
	<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
	</property>
	<!-- 设置日志聚集服务器地址 -->
	<property>  
		<name>yarn.log.server.url</name>  
		<value>http://hadoop101:19888/jobhistory/logs</value>
	</property>
	

	<!-- 关闭yarn内存检查 -->
	<!-- 是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认为 true -->
	<!-- 因为对于 flink 使用 yarn 模式下,很容易内存超标,这个时候 yarn 会自动杀掉 job,因此需要关掉-->
	<property>
	   <name>yarn.nodemanager.pmem-check-enabled</name>
	   <value>false</value>
	</property>
	<property>
	   <name>yarn.scheduler.maximum-allocation-vcores</name>
	   <value>6</value>
	</property>

	<property>
	   <name>yarn.nodemanager.vmem-check-enabled</name>
	   <value>false</value>
	</property>

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

MapReduce配置文件

<configuration>
    <!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop101:10020</value>
    </property>

    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop101:19888</value>
    </property>
</configuration>

常用端口

hadoop2.x

HDFSNamenode内部端口:8020/9000
HDFS Namenode对用户的查询端口:50070

Yarn查看任务运行情况的:8088
历史服务器:19888

hadoop3.x

HDFS Namenode内部端口:8020/9000/9820
HDFS Namenode对用户的査询端口:9870,具体为http://hadoop101:9870

Yarn查看任务运行情况的:8088,具体为http://hadoop102:8088
历史服务器:19888,具体为http://hadoop101:19888


群起集群

1)配置workers

vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
# 注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行
hadoop101
hadoop102
hadoop103

记住同步所有节点配置文件


2)启动集群

  • 如果集群是第一次启动

    需要在hadoop101节点格式化NameNode(注意格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化)

    hdfs namenode -format
    
  • 启动HDFS

    sbin/start-dfs.sh
    
  • 在配置了ResourceManager的节点(hadoop102)启动YARN

    sbin/start-yarn.sh
    
  • Web端查看HDFS的NameNode

    http://hadoop101:9870

  • Web端查看YARN的ResourceManager

    http://hadoop102:8088


集群启动/停止方式

1)逐一启动/停止

(1)分别启动/停止HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

(2)分别启动/停止YARN组件

yarn --daemon start/stop resourcemanager/nodemanager

2)整体启动/停止

(1)整体启动/停止HDFS

start-dfs.sh/stop-dfs.sh

(2)整体启动/停止YARN

start-yarn.sh/stop-yarn.sh
posted @ 2022-11-17 20:30  黄一洋  阅读(15)  评论(0)    收藏  举报