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

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

    <build>
        <plugins>
            <!-- 该插件用于将Scala代码编译成class文件 -->
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>3.4.6</version>
                <executions>
                    <execution>
                        <!-- 声明绑定到maven的compile阶段 -->
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 

运行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

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

あずにゃん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值