1.YARN 运行模式 

YARN 上部署的过程是:客户端把Flink 应用提交给 yarn 的 ResourceManager ,Yarn 的 ResourceManager 
会向 Yarn 的 NodeManager 申请容器。在这些容器上,Flink 会部署 JobManager 和 TaskManager 的实例, 
从而启动集群。Flink 会根据运行在 JobManager 上作业所需要的 Slot 数量动态分配 TaskManager 资源。 

在将 FLINK 任务部署到 YARN 集群之前,需要确认集群是否安装有 Hadoop,保证Hadoop 版本至少在2.2以上,
并且集群中安装有 HDFS 服务。 
 

#配置环境变量,增加环境变量配置如下:
vim /etc/profile.d/my_env.sh 
HADOOP_HOME=/opt/module/hadoop-3.3.6 
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 

#Flink需要
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop 
export HADOOP_CLASSPATH=`hadoop classpath`

source /etc/profile.d/my_env.sh 

#hadoop环境准备  

#java11 的参数和java8有所不同。

vim zookeeper-env.sh 
#!/bin/bash
JAVA_HOME=/opt/module/jdk-11.0.30
ZOO_LOG_DIR=/opt/module/zookeeper-3.6.4/logs
ZOO_LOG4_PROP="WARN,ROLLINGFILE"
JVMFLAGS="-server -Xms1G -Xmx1G -Xmn400m -Xss228k -XX:+UseG1GC 
-XX:G1ReservePercent=25 
-XX:InitiatingHeapOccupancyPercent=30 
-XX:+DisableExplicitGC 
-XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=/opt/module/zookeeper-3.6.4/logs 
-XX:ErrorFile=/opt/module/zookeeper-3.6.4/logs/hs_err_pid%p.log 
-XX:+PrintGCDetails  
-Xloggc:/opt/module/zookeeper-3.6.4/logs/gc.lo


vim ~/.bash_profile
export JAVA_HOME=/opt/module/jdk-11.0.30
PATH=$PATH:$HOME/.local/bin:$HOME/bin:${JAVA_HOME}/bin
export PATH

vim zoo.cfg 
tickTime=2000 
initLimit=30000  
syncLimit=10     
maxClientCnxns=2000  
maxSessionTimeout=60000000 
autopurge.snapRetainCount=10 
autopurge.purgeInterval=1  
globalOutstandingLimit=200 
preAlloSize=131072 
snapCount=3000000  
leaderServes=yes  
dataDir=/opt/module/zookeeper-3.6.4/data/
dataLogDir=/opt/module/zookeeper-3.6.4/log 
clientPort=2181
4lw.commands.whitelist=*   
server.11=hadoop001:2888:3888
server.12=hadoop002:2888:3888
server.13=hadoop003:2888:3888

echo "11">/opt/module/zookeeper-3.6.4/data/myid
echo "12">/opt/module/zookeeper-3.6.4/data/myid
echo "13">/opt/module/zookeeper-3.6.4/data/myid



#vim hadoop-env.sh
cd /opt/module/hadoop-3.3.6/etc/hadoop
vi /opt/module/hadoop-3.3.6/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/module/jdk-11.0.30
export HADOOP_HOME=/opt/module/hadoop-3.3.6
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HDFS_NAMENODE_USER=flink
export HDFS_DATANODE_USER=flink
export HDFS_SECONDARYNAMENODE_USER=flink
export HDFS_JOURNALNODE_USER=flink
export HDFS_ZKFC_USER=flink
export HADOOP_SHELL_EXECNAME=flink
export YARN_RESOURCEMANAGER_USER=flink
export YARN_NODEMANAGER_USER=flink
export YARN_SECURE_DN_USER=flink
export FLINK_NAMENODE_OPTS="-server -Xms1G -Xmx1G -Xmn400m -Xss228k -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/module/hadoop-3.3.6/logs/hadoop -XX:ErrorFile=/opt/module/hadoop-3.3.6/logs/hadoop/hs_err_pid%p.log -XX:+PrintGCDetails  -Xloggc:/opt/module/hadoop-3.3.6/logs/hadoop/gc.log ${HADOOP_NAMENODE_OPTS}"
export FLINK_DATANODE_OPTS="-server -Xms1G -Xmx1G -Xmn400m -Xss228k -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/module/hadoop-3.3.6/logs/hadoop -XX:ErrorFile=/opt/module/hadoop-3.3.6/logs/hadoop/hs_err_pid%p.log -XX:+PrintGCDetails  -Xloggc:/opt/module/hadoop-3.3.6/logs/hadoop/gc.log ${HADOOP_DATANODE_OPTS}"
export FLINK_NAMENODE_OPTS="-Dhdfs.audit.logger=WARN,DRFAAUDIT -Dhadoop.security.logger=WARN,DRFAS $FLINK_NAMENODE_OPTS"
export FLINK_DATANODE_OPTS="-Dhadoop.security.logger=WARN,DRFAS $FLINK_DATANODE_OPTS"

mkdir -p /opt/module/hadoop-3.3.6/logs/hadoop


###################
stop-dfs.sh
Stopping namenodes on [hadoop001 hadoop002]
hadoop001: WARNING: HADOOP_NAMENODE_OPTS has been replaced by FLINK_NAMENODE_OPTS. Using value of HADOOP_NAMENODE_OPTS.
hadoop002: WARNING: HADOOP_NAMENODE_OPTS has been replaced by FLINK_NAMENODE_OPTS. Using value of HADOOP_NAMENODE_OPTS.
Stopping datanodes
hadoop001: WARNING: HADOOP_DATANODE_OPTS has been replaced by FLINK_DATANODE_OPTS. Using value of HADOOP_DATANODE_OPTS.
hadoop002: WARNING: HADOOP_DATANODE_OPTS has been replaced by FLINK_DATANODE_OPTS. Using value of HADOOP_DATANODE_OPTS.
hadoop003: WARNING: HADOOP_DATANODE_OPTS has been replaced by FLINK_DATANODE_OPTS. Using value of HADOOP_DATANODE_OPTS.
Stopping journal nodes [hadoop003 hadoop002 hadoop001]




vi /opt/module/hadoop-3.3.6/etc/hadoop/core-site.xml
<configuration>
<!--指定hdfs的nameservice为hadoopns,用来指定hdfs的老大,ns为固定属性名,此值可以自己设置-但是后面的值要和此值对应,表示两个namenode-->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://hadoopns</value>
	</property>
	<!--用来指定hadoop运行时产生文件的存放目录-->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/oracle/hadoop/tmp</value>
	</property>
	<!-- 指定zookeeper 地址-->
	<property>
		<name>ha.zookeeper.quorum</name>
		<value>hadoop001:2181,hadoop002:2181,hadoop003:2181</value>
	</property>
	<!--开启hadoop的回收站机制,当删除HDFS中的文件时,文件将会被移到回收站-/usr/<username>/.Trash,这个是hdfs上的目录,在指定的时间过后再对其进行删除 -->
	<property>
		<name>fs.trash.interval</name>
		<!-- 单位是分钟-->
		<value>1440</value>
	</property>
</configuration>



#namenode 的数据目录 和 datanode 的数据目录应该设置不同的目录。
vi hdfs-site.xml
<configuration>
	<!--指定hdfs的nameservice为ns,需要和core-site.xml中的保持一致-->
	<property>
		<name>dfs.nameservices</name>
		<value>hadoopns</value>
	</property>
	<!--ns下面有两个NameNode,分别是nn1,nn2-->
	<property>
		<name>dfs.ha.namenodes.hadoopns</name>
		<value>hdfsnn1,hdfsnn2</value>
	</property>
	<!--nn1的RPC通信地址-->
	<property>
		<name>dfs.namenode.rpc-address.hadoopns.hdfsnn1</name>
		<value>hadoop001:9000</value>
	</property>
	<!-- nn1 的http 通信地址-->
	<property>
		<name>dfs.namenode.http-address.hadoopns.hdfsnn1</name>
		<value>hadoop001:50070</value>
	</property>
	<!-- nn2 的RPC 通信地址-->
	<property>
		<name>dfs.namenode.rpc-address.hadoopns.hdfsnn2</name>
		<value>hadoop002:9000</value>
	</property>
	<!-- nn2 的http 通信地址-->
	<property>
		<name>dfs.namenode.http-address.hadoopns.hdfsnn2</name>
		<value>hadoop002:50070</value>
	</property>
	<!-- 指定NameNode 的edits 元数据在JournalNode 上的存放位置-->
	<property>
		<name>dfs.namenode.shared.edits.dir</name>
		<value>qjournal://hadoop001:8485;hadoop002:8485;hadoop003:8485/hadoopns</value>
	</property>
	<!-- 指定JournalNode 在本地磁盘存放数据的位置-->
	<property>
		<name>dfs.journalnode.edits.dir</name>
		<value>/oracle/hadoop/jdata</value>
	</property>
	<!-- 开启NameNode 失败自动切换-->
	<property>
		<name>dfs.ha.automatic-failover.enabled.hadoopns</name>
		<value>true</value>
	</property>
	<!-- 配置失败自动切换实现方式-->
	<property>
		<name>dfs.client.failover.proxy.provider.hadoopns</name>
		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>
	<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
	<property>
		<name>dfs.ha.fencing.methods</name>
		<value>sshfence</value>
	</property>
	<!-- 使用sshfence 隔离机制时需要ssh 免登陆,涉及到主备主机的,都要去生成ssh-keygen -t rsa-->
	<property>
		<name>dfs.ha.fencing.ssh.private-key-files</name>
		<value>/home/flink/.ssh/id_rsa</value>
	</property>
	<!-- 配置sshfence 隔离机制超时时间30s-->
	<property>
		<name>dfs.ha.fencing.ssh.connect-timeout</name>
		<value>30000</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:///oracle/hadoop/data</value>
	</property>
	<!--配置datanode数据存放的位置,可以不配置,如果不配置,默认用的是core-site.xml里配置的hadoop.tmp.dir的路径-->
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:///oracle/hadoop/data</value>
	</property>
	<!--HDFS 副本数量-->
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
	<!--此参数控制是否为集群启用了diskbalancer,磁盘空间数据平衡。如果未启用,则datanode将-拒绝任何执行命令。默认值为false-->
	<property>
		<name>dfs.disk.balancer.enabled</name>
		<value>true</value>
	</property>
	<!--指定一个配置文件,使NameNode过滤配置文件中指定的host-->
	<property>
		<name>dfs.hosts.exclude</name>
		<value>/opt/module/hadoop-3.3.6/etc/hadoop/dfs.hosts.exclude</value>
	</property>
</configuration>

	


--4)修改mapred-site.xml    
	
vim mapred-site.xml
<configuration>
	<!--指定mapreduce 运行在yarn 上-->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<!--设置JobHistory的服务地址,JobHistory记录了已经完成的mapreduce任务信息并存放在HDFS-指定的目录下,默认未开启,Jobhistory用于查询每个job运行完以后的历史日志信息,是作为-一台单独的服务器运行的,可以在namenode或者datanode的任意一台 启动即可-->
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>hadoop001:10020</value>
	</property>
	<!-- 指定JobHistory 的Web 访问地址-->
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>hadoop001:19888</value>
	</property>
	<!--开启Uber运行模式,Uber运行模式对小作业进行优化,不会给每个任务分别申请Container资源	这些小任务将统一在一个Container中按先执行map任务后执行reduce任务的顺序串行执行-->
	<property>
		<name>mapreduce.job.ubertask.enable</name>
		<value>true</value>
	</property>
	<!--通过 hadoop classpath 得到classpath写到下面,解决在服务器中运行hadoop自带的jar包中的实例报错,可以在后期集群运行后配置,如果不需要再服务器运行,可以不配置下面3个参数$HADOOP_MAPRED_HOME 就是hadoop实际安装路径,必须填写完整的路径,即必须是绝对路径,不能包含变量-->
	<property>
		<name>mapreduce.map.env</name>
		<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.6/etc/hadoop:
		/opt/module/hadoop-3.3.6/share/hadoop/common/lib/*:/opt/module/hadoop-3.3.6/share/hadoop/common/*
		:/opt/module/hadoop-3.3.6/share/hadoop/hdfs:/opt/module/hadoop-3.3.6/share/hadoop/hdfs/lib/*
		:/opt/module/hadoop-3.3.6/share/hadoop/hdfs/*:/opt/module/hadoop-3.3.6/share/hadoop/mapreduce/lib/*
		:/opt/module/hadoop-3.3.6/share/hadoop/mapreduce/*:/opt/module/hadoop-3.3.6/share/hadoop/yarn
		:/opt/module/hadoop-3.3.6/share/hadoop/yarn/lib/*:/opt/module/hadoop-3.3.6/share/hadoop/yarn/*</value>
	</property>
	<property>
		<name>mapreduce.reduce.env</name>
		<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.6/etc/hadoop
		:/opt/module/hadoop-3.3.6/share/hadoop/common/lib/*:/opt/module/hadoop-3.3.6/share/hadoop/common/*
		:/opt/module/hadoop-3.3.6/share/hadoop/hdfs:/opt/module/hadoop-3.3.6/share/hadoop/hdfs/lib/*
		:/opt/module/hadoop-3.3.6/share/hadoop/hdfs/*:/opt/module/hadoop-3.3.6/share/hadoop/mapreduce/lib/*
		:/opt/module/hadoop-3.3.6/share/hadoop/mapreduce/*:/opt/module/hadoop-3.3.6/share/hadoop/yarn
		:/opt/module/hadoop-3.3.6/share/hadoop/yarn/lib/*:/opt/module/hadoop-3.3.6/share/hadoop/yarn/*</value>
	</property>
	<property>
		<name>mapreduce.application.classpath</name>
		<value>/opt/module/hadoop-3.3.6/etc/hadoop:/opt/module/hadoop-3.3.6/share/hadoop/common/lib/*
		:/opt/module/hadoop-3.3.6/share/hadoop/common/*:/opt/module/hadoop-3.3.6/share/hadoop/hdfs
		:/opt/module/hadoop-3.3.6/share/hadoop/hdfs/lib/*:/opt/module/hadoop-3.3.6/share/hadoop/hdfs/*
		:/opt/module/hadoop-3.3.6/share/hadoop/mapreduce/lib/*:/opt/module/hadoop-3.3.6/share/hadoop/mapreduce/*
		:/opt/module/hadoop-3.3.6/share/hadoop/yarn:/opt/module/hadoop-3.3.6/share/hadoop/yarn/lib/*
		:/opt/module/hadoop-3.3.6/share/hadoop/yarn/*</value>
	</property>
</configuration>


*/


--5)yarn-site.xml
vim yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
	<!-- Site specific YARN configuration properties -->
	<!-- 开启RM YARN HA -->
	<property>
		<name>yarn.resourcemanager.ha.enabled</name>
		<value>true</value>
	</property>
		<!-- 指定RM HA 的cluster id -->
	<property>
		<name>yarn.resourcemanager.cluster-id</name>
		<value>yarncluster</value>
	</property>
	<!--指定yarn 的老大resoucemanager 的地址-->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop001</value>
	</property>
	<!-- 指定RM 的名字-->
	<property>
		<name>yarn.resourcemanager.ha.rm-ids</name>
		<value>yarnrm1,yarnrm2</value>
	</property>
	<!-- 分别指定RM 的地址-->
	<property>
		<name>yarn.resourcemanager.hostname.yarnrm1</name>
		<value>hadoop001</value>
	</property>
	<property>
		<name>yarn.resourcemanager.hostname.yarnrm2</name>
		<value>hadoop002</value>
	</property>
	<!--开启yarn 恢复机制-->
	<property>
		<name>yarn.resourcemanager.recovery.enabled</name>
		<value>true</value>
	</property>
	<!--执行rm恢复机制实现类-->
	<property>
		<name>yarn.resourcemanager.store.class</name>
		<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
	</property>
	<!--指定zk集群地址-->
	<property>
		<name>hadoop.zk.address</name>
		<value>hadoop001:2181,hadoop002:2181,hadoop003:2181</value>
	</property>
	<!--NodeManager 获取数据的方式-->
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<!--开启日志聚合-->
	<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
	</property>
	<!--日志在HDFS上最多保存24小时,这里改成60小时了。-->
	<property>
		<name>yarn.log-aggregation.retain-seconds</name>
		<value>86400</value>
	</property>
	<!--指定RM 的Web 端访问地址-->
	<property>
		<name>yarn.resourcemanager.webapp.address.yarnrm1</name>
		<value>hadoop001:8088</value>
	</property>
	<property>
		<name>yarn.resourcemanager.webapp.address.yarnrm2</name>
		<value>hadoop002:8088</value>
	</property>
	<!--指定一个配置文件,使 Resourcemanager 过滤配置文件中指定的host-->
	<property>
		<name>yarn.resourcemanager.nodes.exclude-path</name>
		<value>/opt/module/hadoop-3.3.6/etc/hadoop/yarn.hosts.exclude</value>
	</property>
	<!--通过hadoop classpath 得到classpath 写到下面,解决在服务器中运行hadoop 自带的
	     	jar 包中的实例报错,可以在后期集群运行后配置,如果不需要在服务器运行,可以不配置下面3
	个参数$HADOOP_MAPRED_HOME 就是hadoop 实际安装路径,必须填写完整的路径,即必须是绝对路径,
	不能包含变量。-->
	<property>
		<name>yarn.application.classpath</name>
		<value>/opt/module/hadoop-3.3.6/etc/hadoop:/opt/module/hadoop-3.3.6/share/hadoop/common/lib/*
		:/opt/module/hadoop-3.3.6/share/hadoop/common/*:/opt/module/hadoop-3.3.6/share/hadoop/hdfs
		:/opt/module/hadoop-3.3.6/share/hadoop/hdfs/lib/*:/opt/module/hadoop-3.3.6/share/hadoop/hdfs/*
		:/opt/module/hadoop-3.3.6/share/hadoop/mapreduce/lib/*:/opt/module/hadoop-3.3.6/share/hadoop/mapreduce/*
		:/opt/module/hadoop-3.3.6/share/hadoop/yarn:/opt/module/hadoop-3.3.6/share/hadoop/yarn/lib/*
		:/opt/module/hadoop-3.3.6/share/hadoop/yarn/*</value>
	</property>
	<!--设置yarn的内存大小,单位是MB,表示该节点上YARN可使用的物理内存总量-->
	<property>
		<name>yarn.nodemanager.resource.memory-mb</name>
		<value>2048</value>
	</property>
	<!--单个任务可申请的最多物理内存量,最小1024-->
	<property>
		<name>yarn.scheduler.maximum-allocation-mb</name>
		<value>512</value>
	</property>
	<!--设置yarn的CPU核数-->
	<property>
		<name>yarn.nodemanager.source.cpu-vcores</name>
		<value>2</value>
	</property>
</configuration>

*/

echo "" > /opt/module/hadoop-3.3.6/etc/hadoop/yarn.hosts.exclude 
echo "" > /opt/module/hadoop-3.3.6/etc/hadoop/dfs.hosts.exclude 

vi yarn-site.xml 
YARN内存利用优化。物理机可以设置,自己的实验就不要设置了。
设置:
<!--设置yarn的内存大小,单位是MB,表示该节点上YARN可使用的物理内存总量-->
<property>
	<name>yarn.nodemanager.resource.memory-mb</name>
	<value>8192</value>
</property>
<!--单个任务可申请的最多物理内存量-->
<property>
	<name>yarn.scheduler.maximum-allocation-mb</name>
	<value>1024</value>
</property>
<!--设置yarn的CPU核数-->
<property>
	<name>yarn.nodemanager.source.cpu-vcores</name>
	<value>8</value>
</property>
修改works文件。
在hadoop3.0之前的版本中,这个文件叫做slaves;

vim workers
hadoop001
hadoop002
hadoop003

--7)修改log4j.properties日志文件。

vi /opt/module/hadoop-3.3.6/etc/hadoop/log4j.properties
hdfs.audit.logger=WARN,console
hdfs.audit.log.maxfilesize=256MB
hdfs.audit.log.maxbackupindex=20
log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=${hdfs.audit.logger}
log4j.additivity.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=false

#log4j.appender.DRFAAUDIT=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DRFAAUDIT=org.apache.log4j.RollingFileAppender
log4j.appender.DRFAAUDIT.File=${hadoop.log.dir}/hdfs-audit.log
log4j.appender.DRFAAUDIT.layout=org.apache.log4j.PatternLayout
log4j.appender.DRFAAUDIT.layout.ConversionPattern=%d{ISO8601} %p %c{2}: %m%n
log4j.appender.DRFAAUDIT.DatePattern=.yyyy-MM-dd

############各个资源分布情况展示;
hadoop的名称服务:hadoopns 
hadoop:的NameNode: hadoop001:hdfsnn1,hadoop001:hdfsnn2 
namenode元数据存放位置:hadoop001,hadoop002,hadoop003 
journalnode数据存放位置:/oracle/hadoop/jdata
namenode数据存放位置:/oracle/hadoop/data
datanode数据存放位置:/oracle/hadoop/data
mapreduce.jobhistory:hadoop001 
yarn的resourcemanager:hadoop001 
hadoop001:yarnrm1,hadoop002:yarnrm2 :8088
zkfc:hadoop001,hadoop002

#启动 hadoop集群,包括  HDFS 和 YARN  
start-dfs.sh 
start-yarn.sh 

#启动 netcat 
nc -l -s 192.168.3.11 7777 

#hdfs启动失败 #原因是 namenode 还没有进行初始化。
[flink@hadoop001 module]$ start-dfs.sh
Starting namenodes on [hadoop001 hadoop002]
hadoop001: ERROR: Cannot set priority of namenode process 42004
hadoop002: ERROR: Cannot set priority of namenode process 39207
Starting datanodes
hadoop001: ERROR: Cannot set priority of datanode process 42149
hadoop002: ERROR: Cannot set priority of datanode process 39314
hadoop003: ERROR: Cannot set priority of datanode process 38585
Starting journal nodes [hadoop003 hadoop002 hadoop001]


#vi /opt/module/hadoop-3.3.6/etc/hadoop/hadoop-env.sh
原因:文件中某些目录不存在,所以导致无法启动。
[flink@hadoop001 ~]$ hdfs --daemon start datanode
ERROR: Cannot set priority of datanode process 54579


[flink@hadoop003 hadoop]$ hdfs haadmin -getAllServiceState
hadoop001:9000                                     active
hadoop002:9000                                     standby

[flink@hadoop003 hadoop]$ hdfs haadmin -getServiceState hdfsnn1
active
[flink@hadoop003 hadoop]$ hdfs haadmin -getServiceState hdfsnn2
standby

[flink@hadoop001 logs]$ yarn rmadmin -getAllServiceState
hadoop001:8033                                     standby
hadoop002:8033                                     active

[flink@hadoop001 logs]$ yarn rmadmin -getServiceState yarnrm1
standby
[flink@hadoop001 logs]$ yarn rmadmin -getServiceState yarnrm2
active


#namenode;
http://192.168.3.11:50070 
http://192.168.3.12:50070 

#historyserver;
mapred --daemon start historyserver 
http://192.168.3.11:19888/jobhistory 

#查看yarn的管理地址:active 
http://192.168.3.11:8088 


http://192.168.3.11:19888/jobhistory


#停止hadoop 集群
#1.停止hdfs 集群
ssh flink@hadoop001 stop-dfs.sh

#2.停止zkfc;
ssh flink@hadoop001 hdfs --daemon stop zkfc
ssh flink@hadoop002 hdfs --daemon stop zkfc

#3.停止yarn
ssh flink@hadoop001 stop-yarn.sh
#4.JobHistory 停止
ssh flink@hadoop001 mapred --daemon stop historyserver

#5.停止zookeeper
ssh flink@hadoop001 source ~/.bash_profile;zkServer.sh stop
ssh flink@hadoop002 source ~/.bash_profile;zkServer.sh stop
ssh flink@hadoop003 source ~/.bash_profile;zkServer.sh stop

Hadoop环境准备。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐