Flink

官网相关
<!--官网地址-->
https://flink.apache.org/

<!--jdbc 驱动官网,1.18版本开始才支持jdbc driver连接-->
https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/dev/table/jdbcdriver/

<!--jdbc SQL语法官网-->
https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/dev/table/sql/overview/

<!--下载安装包地址-->
https://flink.apache.org/downloads/
单机部署
解压后直接启动
bin/start-cluster.sh
bin/stop-cluster.sh

<!--启动sql网关以支持jdbc连接-->
./bin/sql-gateway.sh start -Dsql-gateway.endpoint.rest.address=localhost
集群部署步骤
|   node01   |   node02    |   node03    |   node04    |
| :--------: | :---------: | :---------: | :---------: |
| JobManager | TaskManager | TaskManager | TaskManager |
安装包上传到node01节点
解压、修改配置文件
解压:tar -zxf flink-1.9.2-bin-scala_2.11.tgz

修改flink-conf.yaml配置文件
jobmanager.rpc.address: node01            #JobManager地址
jobmanager.rpc.port: 6123                 #JobManagerRPC通信端口
jobmanager.heap.size: 1024m               #JobManager所能使用的堆内存大小
taskmanager.heap.size: 1024m              #TaskManager所能使用的堆内存大小
taskmanager.numberOfTaskSlots: 2          #TaskManager管理的TaskSlot个数,依据当前物理机的核心数来配置,一般预留出一部分核心(25%)给系统及其他进程使用,一个slot对应一个core。如果core支持超线程,那么slot个数*2
rest.port: 8081                           #指定WebUI的访问端口

修改slaves配置文件
node02
node03
node04
同步安装包到其他的节点
同步到node02  scp -r flink-1.9.2 node02:`pwd`
同步到node03  scp -r flink-1.9.2 node03:`pwd`
同步到node04  scp -r flink-1.9.2 node04:`pwd`
node01配置环境变量
vim ~/.bashrc
export FLINK_HOME=/opt/software/flink/flink-1.9.2
export PATH=$PATH:$FLINK_HOME/bin
source ~/.bashrc
standalone集群启动、停止
bin/start-cluster.sh
bin/stop-cluster.sh

<!--启动sql网关以支持jdbc连接-->
./bin/sql-gateway.sh start -Dsql-gateway.endpoint.rest.address=localhost
http://node01:8081/                             #可通过rest.port参数自定义端口
界面提交jar
配置jar参数
1main方法全路径
2、参数:--host localhost --port 7777
命令提交jar
bin/flink run -m jobManagerIP:8081 -c main方法全路径 jar包地址路径 -p 并行度 参数:--host localhost --port 7777
命令
查询提交的jobId集合
bin/flink list

取消提交的job
bin/flink cancel jobId

查询所有的jobId集合,包含已取消的job
bin/flink list -a
sql语法相关
<!--查询表结构-->
{ DESCRIBE | DESC } [catalog_name.][db_name.]table_name

<!--查询创建表语句-->
SHOW CREATE TABLE

SHOW CATALOGS
SHOW CURRENT CATALOG
SHOW DATABASES
SHOW CURRENT DATABASE
SHOW TABLES
SHOW CREATE TABLE
SHOW COLUMNS
SHOW PARTITIONS
SHOW PROCEDURES
SHOW VIEWS
SHOW CREATE VIEW
SHOW FUNCTIONS
SHOW MODULES
SHOW JARS
SHOW JOBS
beeline> !connect jdbc:flink://localhost:8083 -n 用户名 -p 密码

beeline -u jdbc:flink://localhost:8083 -n 用户名 -p 密码
表操作
<!--创建文件表时,需在服务器手动创建一个目录/tmp/T.csv-->
create table flink_t1(id int, name string) with ('connector' = 'filesystem', 'path' = 'file:///tmp/T.csv', 'format' = 'csv');

insert into flink_t1 values (1, 'hi'), (2, 'hello');

select * from flink_t1;
<!--jdbc 驱动官网,1.18版本开始才支持jdbc driver连接-->
https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/dev/table/jdbcdriver/

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-sql-jdbc-driver-bundle</artifactId>
  <version>1.18.1</version>
</dependency>

<!--JDBC连接URL,Flink SQL JobManager的IP和端口-->
<!--第一种创建连接方式-->
Connection connection = DriverManager.getConnection("jdbc:flink://localhost:8083","username","password");
Statement statement = connection.createStatement()
statement.execute("create table sql");
statement.execute("insert into sql");
statement.execute("select * from t")
statement.execute("show databases");
rs = statement.getResultSet();
while (rs.next()) {
    String databaseName = rs.getString(1);
}

<!--第二种创建连接方式-->
DataSource dataSource = new FlinkDataSource("jdbc:flink://localhost:8083", new Properties());
Connection connection = dataSource.getConnection()
错误解答
出现此类错误,主要的原因是Current usage: 75.1 MB of 1 GB physical memory used; 2.1 GB of 2.1 GB virtual memor
y used. Killing container.

字面原因是容器内存不够,实际上是flink on yarn启动时检查虚拟内存造成的

所以修改配置文件,让它不检查就没事了

修改etc/hadoop/yarn-site.xml

<property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
</property>
<property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>
posted @   rbcd  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示