开发者学堂课程【Scala 核心编程 - 进阶:将 Akka 项目打包分布式部署】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9136
将 Akka 项目打包分布式部署
master worker 进行分布式部署(Linux 系统)->如何给 maven 项目打包->上传 linux
之前在讲 spark master worker进程通讯项目的时候,第五个功能要求是要对master worker进行分布式部署,进行分布式部署,有一个前提,就是要对项目进行打包,部署到Linux系统,这就涉及到如何给maven项目进行打包,打包完成之后再上传到相应的linux,使用JAVA-jar进行运行就可以了
步骤一:先给SparkMaster打包
切换到Akka项目,open AKK0705,点击 pom.xml,修改 pom.xml 文件<mainClass=xxx</mainClass>,指定程序的主类,先给 sparkmaster打包
修改成如下:
(具体如何需改根据实际情况)<mainClass>com.atguigu.akka.sparkmasterworker.master.SparkMaster</mainClass>
如何显示 Maven projects 的右侧菜单?
通过 File->settings->Appearance->show tool windows bars(如果没有勾选就会没有显示)
Lifecycle 是 maven 项目的生命周期,package就是进行打包的地方。
双击 Lifestyle 中的 package 开始自动打包,第一次打包需要下载内容和插件,会有点慢。bulidsuccess 代表成功。
<! --指定main方法-->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainc
l
ass>com.atguigu.akka. sparkmasterworker.master.SparkMaster</ mainclass>
</ transformer>
</transformers>
</ configuration>
</ execution>
</ executions>
</ plugin>
</plugins>
</ build>
成功就代表打了一个包,那么如何去找这个包呢?首先找到target,点击show in explorer,点进去之后找到target,找到 akk a0705-1.0-snapshot.jar,它把项目中所需要的jar都放进去了,original.Akka0705是项目的源文件,配置文件是在a0705-1.0-snapshot.jar里面的Manifest.mf,可以看到项目运行的主类。
复制a0705-1.0-snapshot.jar到桌面。再给worker项目进行打包,有时候发现如果正在使用这个文件,运行会失败。
到target去找内容比较大的文件
找到target->单击鼠标右键点击show in
Explorer->targe->Akka0705-1.0-SNAPSHOT.jar(包含内容较多)->找到MANIFEST.MF,用记事本打开,打开内容如下:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Administrator
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_131
Main-Class: com.atguigu.akka.sparkmasterworker.master.SparkMaster
接下来给worker打包
<!--指定main方法-->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainclass>com.atguigu.akka2. sparkmasterworker. worker.sparkworker</ mainclass>
</ transformer>
</transformers>
</ configuration>
</ execution>
</ executions>
运行成功之后,找到 target 再次进行打包,发现里面又来了一个文件,虽然名字一样,但是和之前的是不一样的,把它复制到桌面取名 worker,现在就可以使用了,得到这个文件以后就上传到 linux
将打包的.jar 上传到 linux,实现分布式
运行测试
把这两个文件拷贝到 E 盘,输入 cmd,先运行 master,回车之后,系统提醒请输入参数。
再来运行一下 worker,系统提示要输入六个信息
分布和其最主要的区别就是上传到 linux 这一步
>java -jar worker-jar
请输入参数 workerHost workerPort(端口) workerName(端口名字) masterHost(连接的master主机) masterPort(端口:7777) masterName(名字为master01)
: \>java -jar worker.jar 127.0.0.1 ?778 workerB1 12?.0.0.1 ???? masterB1
运行worker
Java-jar worker.jar参数