跳到主要内容

平台安装介绍

目的和范围

本文档旨在帮助用户完成 Apache StreamPark 的安装和初步配置

目标受众

面向需要在其系统中部署 Apache StreamPark 的系统开发和运维人员

系统要求

参考:https://streampark.apache.org/docs/user-guide/deployment#environmental-requirements

硬件要求

  • 本文档使用Linux:3.10.0-957.el7.x86_6

1_hardware_requirement

软件要求

Notes:

  1. 单纯安装StreamPark,可忽略hadoop
  2. 若采用 yarn application 模式 执行flink作业,需要hadoop
    • JDK : 1.8+
    • MySQL : 5.6+
    • Flink : 1.12.0+
    • Hadoop : 2.7.0+
    • StreamPark : 2.0.0+

本文档采用的软件版本信息

  • JDK:1.8.0_181
  • MySQL: 5.7.26
  • Flink : 1.14.3-scala_2.12
  • Hadoop : 3.2.1

主要组件依赖关系: 2_main_components_dep

安装前准备

JDK、MYSQL、HADOOP需用户自行查阅资料安装。

下载flink

cd /usr/local
wget https://archive.apache.org/dist/flink/flink-1.14.3/flink-1.14.3-bin-scala_2.12.tgz

解压

tar -zxvf flink-1.14.3-bin-scala_2.12.tgz

重命名

mv flink-1.14.3 flink

配置flink环境变量

# 配置环境变量(vim ~/.bashrc),加入以下内容
export FLINK_HOME=/usr/local/flink
export PATH=$FLINK_HOME/bin:$PATH

# 生效环境变量配置
source ~/.bashrc

# 测试(出现:'Version: 1.14.3, Commit ID: 98997ea',则说明配置成功)
flink -v

3_flink_home

引入MySQL依赖包

原因:由于Apache 2.0许可与Mysql Jdbc驱动许可的不兼容,用户需要自行下载驱动jar包并放在 $STREAMPARK_HOME/lib 中,推荐使用8.x版本。 驱动包版本:mysql-connector-java-8.0.28.jar

cp mysql-connector-java-8.0.28.jar /usr/local/streampark/lib

4_mysql_dep

下载Apache StreamPark™

下载URL:https://dlcdn.apache.org/incubator/streampark/2.0.0/apache-streampark_2.12-2.0.0-incubating-bin.tar.gz

上传 apache-streampark_2.12-2.0.0-incubating-bin.tar.gz 至 服务器 /usr/local 路径

5_streampark_install_pkg

解压

tar -zxvf apache-streampark_2.12-2.0.0-incubating-bin.tar.gz

6_unpkg

安装

初始化系统数据

目的:创建StreamPark组件部署依赖的数据库(表),同时将其运行需要的数据提前初始化(比如:web页面的菜单、用户等信息),便于后续操作。

查看执行SteamPark元数据SQL文件

说明:

  • StreamPark支持MySQL、PostgreSQL、H2
  • 本次以MySQL为例,PostgreSQL流程基本一致

数据库创建脚本: /usr/local/apache-streampark_2.12-2.0.0-incubating-bin/script/schema/mysql-schema.sql

7_mysql_schema_file

数据库创建脚本: /usr/local/apache-streampark_2.12-2.0.0-incubating-bin/script/data/mysql-data.sql

8_mysql_data_file

连接MySQL数据库 && 执行初始化脚本

source /usr/local/apache-streampark_2.12-2.0.0-incubating-bin/script/schema/mysql-schema.sql

9_import_streampark_schema_file

source source /usr/local/apache-streampark_2.12-2.0.0-incubating-bin/script/data/mysql-data.sql

10_import_streampark_data_file

source source /usr/local/apache-streampark_2.12-2.0.0-incubating-bin/script/data/mysql-data.sql

10_import_streampark_data_file

查看执行结果

show databases;

11_show_streampark_database

use streampark;

12_use_streampark_db

show tables; 

13_show_streampark_db_tables

Apache StreamPark™配置

目的:配置启动需要的数据源。 配置文件所在路径:/usr/local/streampark/conf

14_streampark_conf_files

配置mysql数据源

vim application-mysql.yml

username、password、url中的数据库IP/端口号 需要改成用户自己环境的信息

spring:
datasource:
username: 数据库用户名
password: 数据库用户密码
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://数据库IP地址:数据库端口号/streampark?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8

配置应用端口、hdfs存储、应用访问密码等

vim application.yml

主要的配置项:

  1. server.port # 【重要】默认的web访问端口号10000,如果有冲突(如: hive服务)可以更改
  2. knife4j.basic.enable # true表示允许访问页面 Swagger API
  3. knife4j.basic.password # 访问页面 Swagger API 时需要密码,这样可以提高接口安全性
  4. spring.profiles.activemysql # 【重要】表示系统采用何种数据源,本文档采用mysql
  5. workspace.remote # 配置工作空间信息
  6. hadoop-user-name # 如果使用hadoop,该处用户需要保证有操作hdfs的权限,否则会报“org.apache.hadoop.security.AccessControlException: Permission denied”异常
  7. ldap.password # 系统登陆页面提供了2种登录模式: 用户密码 和 ldap。这里可以配置ldap密码

主要配置示例:

15_application_yml_server_port

上传flink job jar 如果过大,可能会导致上传失败,因此可以考虑修改(max-file-size和max-request-size)这两个参数;当然,实际环境还要考虑其他因素:nginx限制等。

16_application_yml_spring_profile_active

支持knox配置,有些用户环境私有部署hadoop,可通过knox访问yarn web workspace: 配置工作空间信息(比如:savepoint和checkpoint存储路径等)

17_application_yml_streampark_workspace

ldap

18_application_yml_ldap

【可选】配置kerberos

背景:企业级hadoop集群环境都有设置安全访问机制,比如kerberos。StreamPark也可配置kerberos,使得flink可通过kerberos认证,向hadoop集群提交作业。

修改项如下:

  1. security.kerberos.login.enable=true
  2. security.kerberos.login.principal=实际的principal
  3. security.kerberos.login.krb5=/etc/krb5.conf
  4. security.kerberos.login.keytab=实际的keytab文件
  5. java.security.krb5.conf=/etc/krb5.conf

19_kerberos_yml_config

启动Apache StreamPark™

进入服务器Apache StreamPark™安装路径

cd /usr/local/streampark/

20_enter_streampark_dir

启动Apache StreamPark™服务

./bin/startup.sh

21_start_streampark_service

查看启动日志 目的:确认无报错信息

tail -100f log/streampark.out

22_check_service_starting_log

验证安装

# 页面正常打开,则说明部署成功。
http://部署streampark服务IP或域名:10000/
admin/streampark

页面正常访问

23_visit_streampark_web

系统正常登录

24_streampark_web_index_page

常见问题

Cannot load driver class: com.mysql.cj.jdbc.Driver

原因:缺少mysql驱动包,参见 “3.2. 引入MySQL依赖包”

25_lack_mysql_driver_err

参考资源

https://streampark.apache.org/docs/user-guide/deployment/