前言

该文档主要是apache hop 2.5的 Windows 10和Linux docker环境部署和客户端发布工作流和管道的相关内容

不使用Docker直接使用应用程序包,下载压缩包文件后,需要解压缩文件并使用以下命令启动 Hop GUI:

在 Linux 上:

./hop-gui.sh

在 Windows 上(需要JDK11):

Hop-gui.bat

一、Windows 10系统部署

1.1、官网下载apache hop 2.5压缩包

下载地址:https://hop.apache.org/download/ 选择 apache-hop-client-2.5.0.zip

1.2、解压文件,把里面的hop文件夹剪切或复制到系统其他文件夹下比如 C:\Program Files (x86)\hop

1.3、下载java 11 JDK,并设置环境变量(多个java版本SDK)

1)jdk下载地址

OpenJDK下载地址:http://jdk.java.net/

OracleJDK下载地址:https://www.oracle.com/java/technol

2)Java安装的地址

3)删除 C:\Windows\System32 下三个文件

在第一次安装jdk时,自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录,由于这个目录在Windows环境变量中的优先级高于JAVA_HOME设置的环境变量优先级。所以将C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个可执行文件 删除即可。

4)设置系统环境变量,新增如红色框中的四个环境变量

5)设置环境变量path

6)删除系统环境变量Path上面两个Oracle\Java\javapath变量

参考文章:

https://zhuanlan.zhihu.com/p/442291304

https://blog.csdn.net/m0_38090004/article/details/90610525(推荐)

1.4、Hop Server添加数据库连接驱动包

添加数据库连接驱动包,在hop安装的根目录下的plugins\databases下选择对应版本的数据库比如mysql,进入mysql文件夹选择lib文件夹,把数据库连接驱动包上传到这个文件夹(数据库驱动包已经在hop-web2.5安装入门那里已经下载过了,拷贝过来即可)

1.5、运行 hop-gui、hop-run、hop-server

Hop Web ,Hop Gui fat client 是帮助数据工程师通过可视化方式设计数据清洗流程的。

Hop run是本地命令行,来执行设计好的数据清洗流程的。

Hop server是管理和执行本地或远程的数据清洗流程的

1)双击运行hop-gui.bat,弹出hop-gui客户端界面,这里可以设计建模管道和工作流,和hop-web的功能基本是一样的(重点)

2)运行hop-run,在hop根目录下打开cmd命令行,执行下面命令,其中samples是项目,${PROJECT_HOME}/transforms/switch-case-basic.hpl是管道的路径

hop-run.bat -j samples -r local -f ${PROJECT_HOME}/transforms/switch-case-basic.hpl

官方文档:Hop Run :: Apache Hop

3)运行hop-server,在hop根目录下打开cmd命令行,执行下面命令 比如ip地址:192.168.1.102 端口8080 (重点)

hop-server.bat 192.168.1.102 8080

设置用户名和密码,不设置用户名和密码默认都是cluster

hop-server.bat 192.168.1.102 8080 -u admin -p 123456(设置密码不成功)

使用浏览器访问 http://192.168.1.102:8080 ,输入用户名cluster,密码:cluster

最后展示:

官方文档:Hop Server :: Apache Hop

二、Linux CentOS 7环境下 docker部署

2.1 下载镜像,截至目前是latest是2.5.0,也可以指定tag的版本

docker pull apache/hop:latest
#指定版本
docker pull apache/hop:2.5.0

2.2、运行容器

推荐使用第二种,第三种也能用

1)第一种:最简单的运行hop-server容器,默认用户名密码都是cluster,它还需要在/opt/hop/plugins/databases安装数据库驱动包参考第二种

docker run -d \
  -p 8080:8080 \
  -e HOP_SERVER_PORT=8080 \
  apache/hop

2)第二种:设置用户名密码

在Linux系统的home目录下建hop文件夹,在hop文件夹里建三个文件夹,分别是config,audit,plugins

docker run -d -p 8080:8080 \
-e HOP_SERVER_PORT=8080 \
-e HOP_SERVER_USER=admin \
-e HOP_SERVER_PASS=admin \
-e HOP_SERVER_MAX_OBJECT_TIMEOUT=14400000 \
--name my-hop-server \
apache/hop:latest	

使用docker ps 查看my-hop-server的容器id,比如是c728f91ee95d,通过下图可以看出,文件路径主要在/opt/hop/plugins上

a、把容器里的文件复制到宿主机上

docker cp c728f91ee95d:/opt/hop/plugins /home/hop

b、参考windows 10系统部署,添加数据库连接驱动包在 /home/hop/plugins/databases里添加对应的数据库连接驱动包,它相当于上文中Windows 10环境安装下的plugins\databases文件夹

c、把宿主机上的文件复制到容器里去

docker cp /home/hop/plugins c728f91ee95d:/opt/hop 

d、重启该容器

docker restart c728f91ee95d

3)第三种:设置用户名密码,并把容器里的文件挂载到宿主机中,日志默认存储在内存中

在Linux系统的home目录下建hop文件夹,在hop文件夹里建三个文件夹,分别是config,audit,plugins,

这个容器是运行不成功的
~~docker run -d --privileged=true -p 18182:8080 ~~
~~-v /home/hop/config:/opt/hop/config/ ~~
~~-v /home/hop/audit:/opt/hop/audit/ ~~
~~-v /home/hop/plugins:/opt/hop/plugins/ ~~
~~-e HOP_SERVER_PORT=8080 ~~
~~-e HOP_SERVER_USER=admin ~~
~~-e HOP_SERVER_PASS=admin ~~
~~-e HOP_SERVER_MAX_OBJECT_TIMEOUT=14400000 ~~
~~--name my-hop-server ~~
apache/hop:latest

采用下面的代码在Linux系统的home目录下建hop文件夹,在hop文件夹下创建hop.err.log文件,再创建files文件夹,在files文件夹下分别创建

jdbc、metadata、demoProject三个文件夹

/home/hop/files/jdbc/
/home/hop/files/demoProject/
/home/hop/files/metadata/
/home/hop/hop.err.log

其中 jdbc文件夹里装的是数据库连接驱动包,它相当于上文中Windows 10环境安装下的hop\plugins\databases这个databases文件夹,metadata文件夹相当于hop\config\metadata文件夹,

把Windows10环境中的databases和metadata文件夹里的所有文件分别拷贝到Linux系统对应的/home/hop/files/jdbc/ 和/home/hop/files/metadata/两个文件夹中

-d 可以改-it都可以

docker run -d --privileged=true -p 18183:8080 \
-v /home/hop/hop.err.log:/opt/hop/hop.err.log/ \
-v /home/hop/files:/files/ \
-e HOP_SERVER_PORT=8080 \
-e HOP_SERVER_USER=admin \
-e HOP_SERVER_PASS=admin \
-e HOP_PROJECT_FOLDER=/files \
-e HOP_SERVER_METADATA_FOLDER=/files/metadata \
-e HOP_SHARED_JDBC_FOLDER=/files/jdbc \
-e HOP_PROJECT_NAME=demoProject \
-e HOP_ENVIRONMENT_NAME=Local \
-e HOP_SERVER_MAX_OBJECT_TIMEOUT=14400000 \
--name  my-hop-server3 \
apache/hop:latest

官方介绍文档:

Web Services in Apache Hop :: Apache Hop

Docker container :: Apache Hop

三、把在客户端上设计的工作流和管道发布到hop-server中

参考:https://blog.csdn.net/liuxianwen1990/article/details/122980028

3.1、在该项目的元数据里Hop Server创建一个服务

3.2、在该项目的元数据里Pipeline Run Configuration创建一个管道配置,配置如下图所示

官方文档:

Pipeline Run Configuration :: Apache Hop

Pipeline Run Configurations :: Apache Hop

3.3、在该项目的元数据里Workflow Run Configuration创建一个工作流配置,配置如下图所示

官方文档:

Workflow Run Config :: Apache Hop

Workflow Run Configurations :: Apache Hop

3.4、打开要发布到Hop Server的管道和工作流

3.5、打开hop server 的地址如http://192.168.1.102:8080/hop/status/ ,运行的示意图

详情页面

3.6、调用Hop Server接口

接口调用官方文档:Hop Server Web Services Overview :: Apache Hop

1)调用getPipelineStatus 接口获取管道状态 比如:http://192.168.1.102:8080/hop/pipelineStatus/?name=>&id=

PostMan调用接口示意图,授权这边的用户名和密码就是Hop Server上设置的用户名密码

2)调用startPipeline 接口启动管道 比如:http://192.168.1.102:8080/hop/startPipeline?name=

接口调用成功

posted on 2023-08-28 08:48  青春似雨后霓虹  阅读(1833)  评论(1编辑  收藏  举报