首页 > 编程语言 >【Alink-KMeans】基于Alink算法平台的聚类【Java实现】

【Alink-KMeans】基于Alink算法平台的聚类【Java实现】

时间:2022-10-27 11:34:00浏览次数:58  
标签:Java Alink double flink KMeans sepal width length petal


一、介绍

Alink是基于Flink的通用算法平台。

【Alink-KMeans】基于Alink算法平台的聚类【Java实现】_maven

1.1 数据聚类介绍

【Alink-KMeans】基于Alink算法平台的聚类【Java实现】_maven_02


1.可以定义为5组数据类型的特征字段名称:

sepal_length double, sepal_width double, petal_length double, petal_width double,

2.控制特征字段为petal_width
3.聚合类型为category
3.主要特征控制为:

sepal_length double, sepal_width double, petal_length double, petal_width double

二、Java API

2.1 Alink-KMeans.java

public class AlinkDemo {
public static void main(String[] args) throws Exception {
String URL = "https://alink-release.oss-cn-beijing.aliyuncs.com/data-files/iris.csv";
String SCHEMA_STR = "sepal_length double, sepal_width double, petal_length double, petal_width double, category string";

BatchOperator data = new CsvSourceBatchOp()
.setFilePath(URL)
.setSchemaStr(SCHEMA_STR);

VectorAssembler va = new VectorAssembler()
.setSelectedCols(new String[]{"sepal_length", "sepal_width", "petal_length", "petal_width"})
.setOutputCol("features");

KMeans kMeans = new KMeans().setVectorCol("features").setK(3)
.setPredictionCol("prediction_result")
.setPredictionDetailCol("prediction_detail")
.setReservedCols("category")
.setMaxIter(100);

Pipeline pipeline = new Pipeline().add(va).add(kMeans);
pipeline.fit(data).transform(data).print();
}
}

2.2 pom

<dependency>
<groupId>com.alibaba.alink</groupId>
<artifactId>alink_core_flink-1.9_2.11</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_2.11</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner_2.11</artifactId>
<version>1.9.0</version>
</dependency>

2.3 打包插件

<build>
<plugins>
<!-- 编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- scala编译插件 -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.1.6</version>
<configuration>
<scalaCompatVersion>2.11</scalaCompatVersion>
<scalaVersion>2.11.12</scalaVersion>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>compile-scala</id>
<phase>compile</phase>
<goals>
<goal>add-source</goal>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile-scala</id>
<phase>test-compile</phase>
<goals>
<goal>add-source</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 打jar包插件(会包含所有依赖) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<!-- 可以设置jar包的入口类(可选) -->
<mainClass>com.wang.flink.alink.AlinkDemo</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

三、 本地执行聚类结果

【Alink-KMeans】基于Alink算法平台的聚类【Java实现】_scala_03

四、上传Flink集群

4.1 执行 打包 mvn -package

【Alink-KMeans】基于Alink算法平台的聚类【Java实现】_scala_04

4.2 上传至Linux

sftp> put D:/APP/IDEA/workplace/FlinkTurbineFaultDiagnosis/target/Flink-TurbineFaultDiagnosis-1.0-SNAPSHOT-jar-with-dependencies.jar

4.3 运行FLink执行

bin/flink run -p 1 -c com.wang.flink.alink.AlinkDemo /root/Flink-TurbineFaultDiagnosis-1.0-SNAPSHOT-jar-with-dependencies.jar

【Alink-KMeans】基于Alink算法平台的聚类【Java实现】_flink_05

4.4 Flink集群概览

访问集群节点:​​http://202.206.212.189:8081/​

【Alink-KMeans】基于Alink算法平台的聚类【Java实现】_flink_06

【Alink-KMeans】基于Alink算法平台的聚类【Java实现】_maven_07


【Alink-KMeans】基于Alink算法平台的聚类【Java实现】_scala_08


标签:Java,Alink,double,flink,KMeans,sepal,width,length,petal
From: https://blog.51cto.com/u_15848894/5800576

相关文章

  • intellij IDEA+JAVA 做一个登陆界面,用到了mysql数据库
      今天打算学习一下IDEA+JAVA的框架搞点事情。网上发现个例子。发现有很多BUG。因为用到了mysql。还需要去装SQL安装包。以前有点经验。所以就弄了一下。首先下载MYSQL......
  • Java/JDK下载安装与环境配置(Windows 10 超详细的图文版教程 )
    前言:对于很多初学者来说,我想可能很多人都会遇到JDK环境变量的配置问题。明明就是按照度娘上的教程去一步步配置的,但还是会有很多的人出现配置不成功的问题。所以今天在......
  • Java零基础入门---JDK的安装及环境变量配置教程
    ?在官方网站?(http://www.oracle.com)下载JDK安装包,针对不同的操作系统,下载不同的版本。?1、双击JDK安装包,进行安装?2、点击“下一步”?3、更改安......
  • 力扣455(java&python)-分发饼干(简单)
    题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;......
  • 大数据基础之java异常处理
    (异常)1.概述观察如下的代码,看有无问题:@Testpublicvoidexception_demo(){inta=10;intb=0;System.out.println(a/b);}运行结果:我们发......
  • java的方法
    java的方法值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递是指在调用函数时将实际参数的地址直......
  • JavaScript
    JavaScriptJavaScript是一门跨平台、面向对象的脚本语言,来控制网页行为的,它能使网页可交互W3C标准:网页主要由三部分组成结构:HTML表现:CSS行为:JavaScriptJavaScript和J......
  • 最新的java(jdk+jre)完整安装教程——附详细步骤
    承接上文,本文将介绍java的安装与配置,也就是jdk+jre的详细安装过程,以供大家参考、学习。Java/jdk/jre安装教程安装包的获取注意两点:jdk+jre的安装包命名......
  • 最新eclipse java安装教程
    博主曾经一开始装eclipsejava时,看了好多安装eclipsejava以及创建第一个java程序的博客,发现基本都已过时,或者有这样那样的问题,或讲得不是很详细,为此,特地写了此篇博客帮......
  • 如何安装和打开java虚拟机(步骤详细)
    右击“我的电脑”->属性->高级->环境变量,在“系统变量”中设置变量名为JAVA_HOME,值为JDK安装路径,一般为C:\ProgramFiles\Java\jdk***;然后在path变量中添加%JAVA_HOME......