Flink集群安装:Flink的scala程序打包和部署运行

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


 

flink下载
	https://archive.apache.org/dist/flink/
	flink-flink版本号-bin-scala_版本号.tgz:只能在flink集群执行
	flink-flink版本号-bin-hadoop版本号-scala_版本号.tgz:可以打包flink的jar程序到yarn执行

1.安装 flink
	tar zxvf flink-1.10.1-bin-scala_2.11.tgz -C /root/
	mv flink-1.10.1 flink

2.vim /root/flink/conf/flink-conf.yaml

3.vim /root/flink/conf/masters
	把 localhost:8081 改成 node1:8081

4.vim /root/flink/conf/slaves
	把 localhost 改成 node2 和 node3

5.配置Hadoop相关的 环境变量 
	1.编辑环境变量的profile配置文件: vim /etc/profile 
	2.profile配置文件末尾添加如下配置信息:
		JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
		CLASSPATH=.:$JAVA_HOME/lib/tools.jar
		HADOOP_HOME=/root/hadoop
		FLNK_HOME=/root/flink
		PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$FLINK_HOME/bin
		export JAVA_HOME CLASSPATH PATH
	3.保存配置文件,重新加载配置文件:source /etc/profile

6.把 /root目录下的 hadoop文件夹  推送给第二台、第三台linux:
		scp -r /root/flink root@node2:/root
		scp -r /root/flink root@node3:/root

  把 /etc目录下的 profile文件 推送给第二台、第三台linux的/etc目录下:
		scp -r /etc/profile root@node2:/etc	重新加载配置文件:source /etc/profile
		scp -r /etc/profile root@node3:/etc	重新加载配置文件:source /etc/profile

7.启动、停止 flink集群
	cd /root/flink/bin
	./start-cluster.sh
	./stop-cluster.sh
	jpsall

Flink集群安装:Flink的scala程序打包和部署运行_第1张图片

8.http://node1:8081 可以对 flink 集群和任务进行监控管理

Flink集群安装:Flink的scala程序打包和部署运行_第2张图片

    
        
            
            
                net.alchim31.maven
                scala-maven-plugin
                3.4.6
                
                    
                        
                        
                            testCompile
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-assembly-plugin
                3.0.0
                
                    
                        jar-with-dependencies
                    
                
                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
            
        
    

 Flink集群安装:Flink的scala程序打包和部署运行_第3张图片

Flink集群安装:Flink的scala程序打包和部署运行_第4张图片

Flink集群安装:Flink的scala程序打包和部署运行_第5张图片

Flink集群安装:Flink的scala程序打包和部署运行_第6张图片

运行flink程序前准备数据:flink程序所读取的本地文件必须放到每台taskmanage机器和jobmanage机器中。

执行命令:
	参数:-m 集群模式 -c 入口类 -p 并行度 jar包 --传入参数名 传入参数值
	1.(standalone模式)不带依赖包只有编译好的class代码(142KB):/root/flink/bin/flink run -c com.atguigu.wc.WordCount -p 2 FlinkTutorial-1.0-SNAPSHOT.jar
	2.(standalone模式)带依赖包和编译好的class代码(103MB):/root/flink/bin/flink run -c com.atguigu.wc.WordCount -p 2 FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar	
	3.(yarn模式)yarn集群执行flink:
		1.启动hadoop 集群
		2.启动hadoop 集群:/root/flink/bin/yarn-session.sh
			./yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d 
			参数解释:: 
				-n(--container):TaskManager 的数量。 
				-s(--slots):每个 TaskManager 的 slot 数量,默认一个 slot 一个 core,默认每个 taskmanager 的 slot 的个数为 1,
					    有时可以多一些 taskmanager,做冗余。 
				-jm:JobManager 的内存(单位 MB)。 
				-tm:每个 taskmanager 的内存(单位 MB)。 
				-nm:yarn 的 appName(现在 yarn 的 ui 上的名字)。  
				-d:后台执行。
		3.不带依赖包只有编译好的class代码(142KB)
		  /root/flink/bin/flink run -m yarn-cluster -c com.atguigu.wc.WordCount FlinkTutorial-1.0-SNAPSHOT.jar
		
报错解决:
	1.实际任务会被分发到 taskmanage 的机器中,计算结果根据会保存到 taskmanage 的机器下,不会在 jobmanage 的机器下。
	  因此需要把所读取的本地文件发送到每台taskmanage机器和jobmanage机器中,否则会报错FileNotFoundException和IOException,
	  比如 does not exist or the user running Flink ('root') has insufficient permissions to access it。
	2.flink安装包的scala版本和项目中pom依赖的各个jar包相关的scala版本不一致导致的报错:NoSuchMethodError: scala.Predef$.refArrayOps

Flink集群安装:Flink的scala程序打包和部署运行_第7张图片

Flink集群安装:Flink的scala程序打包和部署运行_第8张图片

Flink集群安装:Flink的scala程序打包和部署运行_第9张图片

 

你可能感兴趣的:(大数据,大数据,flink)