Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
ZHHT-IRN-BD-ANALYSIS
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李凯旋
ZHHT-IRN-BD-ANALYSIS
Commits
24b01b53
Commit
24b01b53
authored
Jan 05, 2023
by
芮蒙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
行车情况提交最新代码,读取配置文件方式
parent
e89e767b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
40 additions
and
16 deletions
+40
-16
TravelCarInfoCoProcessFunction.java
...om/zhht/irn/functions/TravelCarInfoCoProcessFunction.java
+17
-6
TravelSituationAnalysisJob.java
...ain/java/com/zhht/irn/job/TravelSituationAnalysisJob.java
+18
-8
TravelLaneInfoSink.java
...g/src/main/java/com/zhht/irn/sink/TravelLaneInfoSink.java
+5
-2
No files found.
realtime/hologram-streaming/src/main/java/com/zhht/irn/functions/TravelCarInfoCoProcessFunction.java
View file @
24b01b53
...
@@ -5,6 +5,7 @@ import com.alibaba.druid.pool.DruidPooledConnection;
...
@@ -5,6 +5,7 @@ import com.alibaba.druid.pool.DruidPooledConnection;
import
com.zhht.irn.entity.dto.*
;
import
com.zhht.irn.entity.dto.*
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DruidConnectPoolUtils
;
import
com.zhht.irn.utils.DruidConnectPoolUtils
;
import
org.apache.flink.api.common.state.*
;
import
org.apache.flink.api.common.state.*
;
import
org.apache.flink.api.common.time.Time
;
import
org.apache.flink.api.common.time.Time
;
...
@@ -14,6 +15,7 @@ import org.apache.flink.streaming.api.functions.co.CoProcessFunction;
...
@@ -14,6 +15,7 @@ import org.apache.flink.streaming.api.functions.co.CoProcessFunction;
import
org.apache.flink.util.Collector
;
import
org.apache.flink.util.Collector
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.Logger
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.SQLException
;
...
@@ -45,6 +47,8 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
...
@@ -45,6 +47,8 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Connection
connection
;
@Override
@Override
public
void
open
(
Configuration
parameters
)
throws
Exception
{
public
void
open
(
Configuration
parameters
)
throws
Exception
{
...
@@ -84,11 +88,18 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
...
@@ -84,11 +88,18 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
dim_cnt_cross_lane_position
=
getLaneDimData
();
dim_cnt_cross_lane_position
=
getLaneDimData
();
connection
=
DorisUtils
.
getConnection
();
}
}
@Override
@Override
public
void
close
()
throws
Exception
{
public
void
close
()
throws
Exception
{
super
.
close
();
super
.
close
();
if
(
connection
!=
null
){
connection
.
close
();
}
}
}
//把每个路口的数据 车辆旅行信息数据,存储在状态中,当周期数据进来的时候,再进行触发计算
//把每个路口的数据 车辆旅行信息数据,存储在状态中,当周期数据进来的时候,再进行触发计算
...
@@ -223,7 +234,7 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
...
@@ -223,7 +234,7 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
long
currentProcessingTime
=
ctx
.
timerService
().
currentProcessingTime
();
long
currentProcessingTime
=
ctx
.
timerService
().
currentProcessingTime
();
// 只在某个时间段注册定时器
// 只在某个时间段注册定时器
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH"
);
if
(
sdf
.
format
(
currentProcessingTime
).
equals
(
"1
1
"
))
{
if
(
sdf
.
format
(
currentProcessingTime
).
equals
(
"1
4
"
))
{
ctx
.
timerService
().
registerProcessingTimeTimer
(
currentProcessingTime
+
30
*
60
*
1000
);
ctx
.
timerService
().
registerProcessingTimeTimer
(
currentProcessingTime
+
30
*
60
*
1000
);
}
}
...
@@ -467,12 +478,12 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
...
@@ -467,12 +478,12 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
* @return
* @return
* @throws SQLException
* @throws SQLException
*/
*/
private
Map
<
String
,
Map
<
String
,
String
>>
getLaneDimData
()
throws
SQL
Exception
{
private
Map
<
String
,
Map
<
String
,
String
>>
getLaneDimData
()
throws
Exception
{
DruidPooledConnection
connection1
=
DruidConnectPool
Utils
.
getConnection
();
connection
=
Doris
Utils
.
getConnection
();
String
sql
=
"select cross_id, lane_id,position,turn_direction as flow_direction from dim_cnt_cross_lane_position "
;
String
sql
=
"select cross_id, lane_id,position,turn_direction as flow_direction from dim_cnt_cross_lane_position "
;
PreparedStatement
ps
=
connection
1
.
prepareStatement
(
sql
);
PreparedStatement
ps
=
connection
.
prepareStatement
(
sql
);
ResultSet
resultSet
=
ps
.
executeQuery
();
ResultSet
resultSet
=
ps
.
executeQuery
();
Map
<
String
,
Map
<
String
,
String
>>
dimData
=
new
HashMap
<>();
Map
<
String
,
Map
<
String
,
String
>>
dimData
=
new
HashMap
<>();
...
@@ -491,8 +502,8 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
...
@@ -491,8 +502,8 @@ public class TravelCarInfoCoProcessFunction extends CoProcessFunction<TravelInfo
}
}
}
}
if
(
connection
1
!=
null
){
if
(
connection
!=
null
){
connection
1
.
close
();
connection
.
close
();
}
}
return
dimData
;
return
dimData
;
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/job/TravelSituationAnalysisJob.java
View file @
24b01b53
...
@@ -10,10 +10,12 @@ import com.zhht.irn.schema.CycleSignalKafkaSchema;
...
@@ -10,10 +10,12 @@ import com.zhht.irn.schema.CycleSignalKafkaSchema;
import
com.zhht.irn.schema.TravelEventKafkaSchema
;
import
com.zhht.irn.schema.TravelEventKafkaSchema
;
import
com.zhht.irn.schema.TravelInfoKafkaSchema
;
import
com.zhht.irn.schema.TravelInfoKafkaSchema
;
import
com.zhht.irn.sink.TravelLaneInfoSink
;
import
com.zhht.irn.sink.TravelLaneInfoSink
;
import
com.zhht.irn.utils.DorisUtils
;
import
org.apache.flink.api.common.restartstrategy.RestartStrategies
;
import
org.apache.flink.api.common.restartstrategy.RestartStrategies
;
import
org.apache.flink.api.common.serialization.SimpleStringSchema
;
import
org.apache.flink.api.common.serialization.SimpleStringSchema
;
import
org.apache.flink.api.common.time.Time
;
import
org.apache.flink.api.common.time.Time
;
import
org.apache.flink.api.java.functions.KeySelector
;
import
org.apache.flink.api.java.functions.KeySelector
;
import
org.apache.flink.api.java.utils.ParameterTool
;
import
org.apache.flink.runtime.state.filesystem.FsStateBackend
;
import
org.apache.flink.runtime.state.filesystem.FsStateBackend
;
import
org.apache.flink.streaming.api.CheckpointingMode
;
import
org.apache.flink.streaming.api.CheckpointingMode
;
import
org.apache.flink.streaming.api.datastream.ConnectedStreams
;
import
org.apache.flink.streaming.api.datastream.ConnectedStreams
;
...
@@ -25,6 +27,7 @@ import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer;
...
@@ -25,6 +27,7 @@ import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer;
import
org.apache.kafka.clients.consumer.ConsumerConfig
;
import
org.apache.kafka.clients.consumer.ConsumerConfig
;
import
java.io.InputStream
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Properties
;
import
java.util.Properties
;
...
@@ -39,22 +42,27 @@ public class TravelSituationAnalysisJob {
...
@@ -39,22 +42,27 @@ public class TravelSituationAnalysisJob {
try
{
try
{
InputStream
inputStream
=
DorisUtils
.
class
.
getClassLoader
().
getResourceAsStream
(
"kafka.properties"
);
ParameterTool
tool
=
ParameterTool
.
fromPropertiesFile
(
inputStream
);
//1、创建环境
//1、创建环境
StreamExecutionEnvironment
env
=
StreamExecutionEnvironment
.
getExecutionEnvironment
();
StreamExecutionEnvironment
env
=
StreamExecutionEnvironment
.
getExecutionEnvironment
();
// checkpoint配置
// checkpoint配置
CheckpointConfig
checkpointConfig
=
env
.
getCheckpointConfig
();
CheckpointConfig
checkpointConfig
=
env
.
getCheckpointConfig
();
// checkpoint时间间隔3分钟
// checkpoint时间间隔3分钟
checkpointConfig
.
setCheckpointInterval
(
3
*
60
*
1000
);
checkpointConfig
.
setCheckpointInterval
(
60
*
1000
);
// 两次checkpoint中最短时间间隔1分钟
// 两次checkpoint中最短时间间隔1分钟
checkpointConfig
.
setMinPauseBetweenCheckpoints
(
60
*
1000
);
checkpointConfig
.
setMinPauseBetweenCheckpoints
(
60
*
1000
);
// 同时同时允许1个checkpoint进行
// 同时同时允许1个checkpoint进行
checkpointConfig
.
setMaxConcurrentCheckpoints
(
1
);
checkpointConfig
.
setMaxConcurrentCheckpoints
(
1
);
env
.
getCheckpointConfig
().
setCheckpointingMode
(
CheckpointingMode
.
EXACTLY_ONCE
);
//这如果不指定使用FsStateBackend 则默认使用flink集群中的配置,rocksDB
//这如果不指定使用FsStateBackend 则默认使用flink集群中的配置,rocksDB
env
.
setStateBackend
(
new
FsStateBackend
(
"file:///data/flink/state"
));
// env.setStateBackend(new FsStateBackend("file:///data/flink/state"));
env
.
setStateBackend
(
new
FsStateBackend
(
tool
.
getRequired
(
"checkpoint.path"
)));
env
.
getCheckpointConfig
().
setCheckpointingMode
(
CheckpointingMode
.
EXACTLY_ONCE
);
env
.
getCheckpointConfig
().
setExternalizedCheckpointCleanup
(
CheckpointConfig
.
ExternalizedCheckpointCleanup
.
RETAIN_ON_CANCELLATION
);
//设置重启策略 这里不设置重启策略,由平台统一拉起任务
//设置重启策略 这里不设置重启策略,由平台统一拉起任务
// env.setRestartStrategy(RestartStrategies.fixedDelayRestart(10, Time.seconds(30)));
// env.setRestartStrategy(RestartStrategies.fixedDelayRestart(10, Time.seconds(30)));
...
@@ -63,8 +71,9 @@ public class TravelSituationAnalysisJob {
...
@@ -63,8 +71,9 @@ public class TravelSituationAnalysisJob {
Properties
kafkaProperties
=
new
Properties
();
Properties
kafkaProperties
=
new
Properties
();
kafkaProperties
.
setProperty
(
"bootstrap.servers"
,
"dn3.zhht:9092"
);
// kafkaProperties.setProperty("bootstrap.servers", "dn3.zhht:9092");
// kafkaProperties.setProperty("bootstrap.servers", "139.9.157.176:9092");
kafkaProperties
.
setProperty
(
"bootstrap.servers"
,
tool
.
getRequired
(
"bootstrap.servers"
));
// kafkaProperties.setProperty("bootstrap.servers", "139.9.157.176:9092");
// kafkaProperties.setProperty("group.id", "travel_event");
// kafkaProperties.setProperty("group.id", "travel_event");
kafkaProperties
.
setProperty
(
"group.id"
,
"trips_info2"
);
kafkaProperties
.
setProperty
(
"group.id"
,
"trips_info2"
);
kafkaProperties
.
setProperty
(
ConsumerConfig
.
ENABLE_AUTO_COMMIT_CONFIG
,
"true"
);
kafkaProperties
.
setProperty
(
ConsumerConfig
.
ENABLE_AUTO_COMMIT_CONFIG
,
"true"
);
...
@@ -72,8 +81,9 @@ public class TravelSituationAnalysisJob {
...
@@ -72,8 +81,9 @@ public class TravelSituationAnalysisJob {
Properties
kafkaProperties2
=
new
Properties
();
Properties
kafkaProperties2
=
new
Properties
();
kafkaProperties2
.
setProperty
(
"bootstrap.servers"
,
"dn3.zhht:9092"
);
// kafkaProperties2.setProperty("bootstrap.servers", "dn3.zhht:9092");
// kafkaProperties2.setProperty("bootstrap.servers", "139.9.157.176:9092");
kafkaProperties2
.
setProperty
(
"bootstrap.servers"
,
tool
.
getRequired
(
"bootstrap.servers"
));
// kafkaProperties2.setProperty("bootstrap.servers", "139.9.157.176:9092");
kafkaProperties2
.
setProperty
(
"group.id"
,
"cycle_signal2"
);
kafkaProperties2
.
setProperty
(
"group.id"
,
"cycle_signal2"
);
kafkaProperties2
.
setProperty
(
ConsumerConfig
.
ENABLE_AUTO_COMMIT_CONFIG
,
"true"
);
kafkaProperties2
.
setProperty
(
ConsumerConfig
.
ENABLE_AUTO_COMMIT_CONFIG
,
"true"
);
kafkaProperties2
.
setProperty
(
ConsumerConfig
.
AUTO_OFFSET_RESET_CONFIG
,
"latest"
);
kafkaProperties2
.
setProperty
(
ConsumerConfig
.
AUTO_OFFSET_RESET_CONFIG
,
"latest"
);
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/TravelLaneInfoSink.java
View file @
24b01b53
...
@@ -3,6 +3,7 @@ package com.zhht.irn.sink;
...
@@ -3,6 +3,7 @@ package com.zhht.irn.sink;
import
com.alibaba.druid.pool.DruidPooledConnection
;
import
com.alibaba.druid.pool.DruidPooledConnection
;
import
com.zhht.irn.entity.dto.TravelLineSinkInfo
;
import
com.zhht.irn.entity.dto.TravelLineSinkInfo
;
import
com.zhht.irn.functions.TravelCarInfoCoProcessFunction
;
import
com.zhht.irn.functions.TravelCarInfoCoProcessFunction
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DruidConnectPoolUtils
;
import
com.zhht.irn.utils.DruidConnectPoolUtils
;
import
org.apache.flink.configuration.Configuration
;
import
org.apache.flink.configuration.Configuration
;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
...
@@ -31,7 +32,7 @@ public class TravelLaneInfoSink extends RichSinkFunction<List<TravelLineSinkInfo
...
@@ -31,7 +32,7 @@ public class TravelLaneInfoSink extends RichSinkFunction<List<TravelLineSinkInfo
@Override
@Override
public
void
open
(
Configuration
parameters
)
throws
Exception
{
public
void
open
(
Configuration
parameters
)
throws
Exception
{
super
.
open
(
parameters
);
super
.
open
(
parameters
);
connection
=
D
ruidConnectPool
Utils
.
getConnection
();
connection
=
D
oris
Utils
.
getConnection
();
logger
.
info
(
"建立数据库连接成功。。。。。。。"
);
logger
.
info
(
"建立数据库连接成功。。。。。。。"
);
}
}
...
@@ -43,6 +44,7 @@ public class TravelLaneInfoSink extends RichSinkFunction<List<TravelLineSinkInfo
...
@@ -43,6 +44,7 @@ public class TravelLaneInfoSink extends RichSinkFunction<List<TravelLineSinkInfo
connection
.
close
();
connection
.
close
();
}
}
}
}
@Override
@Override
...
@@ -50,7 +52,7 @@ public class TravelLaneInfoSink extends RichSinkFunction<List<TravelLineSinkInfo
...
@@ -50,7 +52,7 @@ public class TravelLaneInfoSink extends RichSinkFunction<List<TravelLineSinkInfo
super
.
invoke
(
value
,
context
);
super
.
invoke
(
value
,
context
);
//重新获取连接,避免超时的问题
//重新获取连接,避免超时的问题
connection
=
D
ruidConnectPool
Utils
.
getConnection
();
connection
=
D
oris
Utils
.
getConnection
();
String
sql
=
"INSERT INTO app_cross_line_travel_car_info"
+
String
sql
=
"INSERT INTO app_cross_line_travel_car_info"
+
"(record_date,cross_id,statistic_time,cycle_begin_time,cycle_end_time, lane_id, cycle_order, direction,"
+
"(record_date,cross_id,statistic_time,cycle_begin_time,cycle_end_time, lane_id, cycle_order, direction,"
+
" flow_direction, pass_numbers,"
+
" flow_direction, pass_numbers,"
+
...
@@ -93,6 +95,7 @@ public class TravelLaneInfoSink extends RichSinkFunction<List<TravelLineSinkInfo
...
@@ -93,6 +95,7 @@ public class TravelLaneInfoSink extends RichSinkFunction<List<TravelLineSinkInfo
int
[]
ints
=
preparedStatement
.
executeBatch
();
int
[]
ints
=
preparedStatement
.
executeBatch
();
logger
.
info
(
"写入数据成功。。。。。"
+
ints
.
length
+
"..."
);
logger
.
info
(
"写入数据成功。。。。。"
+
ints
.
length
+
"..."
);
preparedStatement
.
close
();
connection
.
close
();
connection
.
close
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment