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
315034c9
Commit
315034c9
authored
Jan 30, 2023
by
吴延飞
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
17d775b1
a9f4b7a4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
9 additions
and
6 deletions
+9
-6
LaneNormJob.java
...streaming/src/main/java/com/zhht/irn/job/LaneNormJob.java
+3
-3
FlinkUtils.java
...treaming/src/main/java/com/zhht/irn/utils/FlinkUtils.java
+3
-0
doris.properties
...me/hologram-streaming/src/main/resources/doris.properties
+2
-2
kafka.properties
...me/hologram-streaming/src/main/resources/kafka.properties
+1
-1
No files found.
realtime/hologram-streaming/src/main/java/com/zhht/irn/job/LaneNormJob.java
View file @
315034c9
...
@@ -49,7 +49,7 @@ public class LaneNormJob {
...
@@ -49,7 +49,7 @@ public class LaneNormJob {
KeySelector
<
TravelEvent
,
String
>
carKeySelector
=
new
KeySelector
<
TravelEvent
,
String
>()
{
KeySelector
<
TravelEvent
,
String
>
carKeySelector
=
new
KeySelector
<
TravelEvent
,
String
>()
{
@Override
@Override
public
String
getKey
(
TravelEvent
car
)
throws
Exception
{
public
String
getKey
(
TravelEvent
car
)
throws
Exception
{
return
car
.
toString
();
return
car
.
getCrossId
();
}
}
};
};
MapFunction
<
String
,
Cycle
>
getCycleFunction
=
new
MapFunction
<
String
,
Cycle
>()
{
MapFunction
<
String
,
Cycle
>
getCycleFunction
=
new
MapFunction
<
String
,
Cycle
>()
{
...
@@ -82,8 +82,8 @@ public class LaneNormJob {
...
@@ -82,8 +82,8 @@ public class LaneNormJob {
WatermarkStrategy
<
TravelEvent
>
travelEventWatermarkStrategy
=
WatermarkStrategy
.<
TravelEvent
>
forBoundedOutOfOrderness
((
Duration
.
ofSeconds
(
3
))).
withTimestampAssigner
((
car
,
timestamp
)
->
Long
.
parseLong
(
car
.
getEventTime
()));
WatermarkStrategy
<
TravelEvent
>
travelEventWatermarkStrategy
=
WatermarkStrategy
.<
TravelEvent
>
forBoundedOutOfOrderness
((
Duration
.
ofSeconds
(
3
))).
withTimestampAssigner
((
car
,
timestamp
)
->
Long
.
parseLong
(
car
.
getEventTime
()));
WatermarkStrategy
<
Cycle
>
cycleWatermarkStrategy
=
WatermarkStrategy
.<
Cycle
>
forBoundedOutOfOrderness
((
Duration
.
ofSeconds
(
3
))).
withTimestampAssigner
((
cycle
,
timestamp
)
->
Long
.
parseLong
(
cycle
.
getEndDateTime
()));
WatermarkStrategy
<
Cycle
>
cycleWatermarkStrategy
=
WatermarkStrategy
.<
Cycle
>
forBoundedOutOfOrderness
((
Duration
.
ofSeconds
(
3
))).
withTimestampAssigner
((
cycle
,
timestamp
)
->
Long
.
parseLong
(
cycle
.
getEndDateTime
()));
//根据corssid 分组 保证同一路口的数据进行一个进程
//根据corssid 分组 保证同一路口的数据进行一个进程
DataStream
<
Cycle
>
cycleDataStreamSource
=
cycleStringStream
.
map
(
getCycleFunction
).
assignTimestampsAndWatermarks
(
cycleWatermarkStrategy
)
.
keyBy
(
cycleKeySelect
)
;
DataStream
<
Cycle
>
cycleDataStreamSource
=
cycleStringStream
.
map
(
getCycleFunction
).
assignTimestampsAndWatermarks
(
cycleWatermarkStrategy
);
DataStream
<
TravelEvent
>
carStream
=
carStringStream
.
map
(
getTravelEventFunction
).
assignTimestampsAndWatermarks
(
travelEventWatermarkStrategy
).
keyBy
(
carKeySelector
).
filter
(
filterFunction
);
DataStream
<
TravelEvent
>
carStream
=
carStringStream
.
map
(
getTravelEventFunction
).
assignTimestampsAndWatermarks
(
travelEventWatermarkStrategy
).
filter
(
filterFunction
);
ConnectedStreams
<
Cycle
,
TravelEvent
>
cycleTravelEventConnectedStreams
=
cycleDataStreamSource
.
connect
(
carStream
).
keyBy
(
cycle
->
cycle
.
getCrossCode
(),
travelEvent
->
travelEvent
.
getCrossId
());
ConnectedStreams
<
Cycle
,
TravelEvent
>
cycleTravelEventConnectedStreams
=
cycleDataStreamSource
.
connect
(
carStream
).
keyBy
(
cycle
->
cycle
.
getCrossCode
(),
travelEvent
->
travelEvent
.
getCrossId
());
DorisSink
.
Builder
<
String
>
builder
=
DorisUtils
.
getBuilder
(
"doris.properties"
,
args
,
"app_cross_dimension_norm"
);
DorisSink
.
Builder
<
String
>
builder
=
DorisUtils
.
getBuilder
(
"doris.properties"
,
args
,
"app_cross_dimension_norm"
);
cycleTravelEventConnectedStreams
.
process
(
new
LaneNormProcessFunction
()).
setParallelism
(
4
)
cycleTravelEventConnectedStreams
.
process
(
new
LaneNormProcessFunction
()).
setParallelism
(
4
)
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/utils/FlinkUtils.java
View file @
315034c9
...
@@ -6,6 +6,7 @@ import org.apache.flink.api.common.serialization.SimpleStringSchema;
...
@@ -6,6 +6,7 @@ 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.utils.ParameterTool
;
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.datastream.DataStream
;
import
org.apache.flink.streaming.api.datastream.DataStream
;
import
org.apache.flink.streaming.api.environment.CheckpointConfig
;
import
org.apache.flink.streaming.api.environment.CheckpointConfig
;
import
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
;
import
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
;
...
@@ -188,6 +189,8 @@ public class FlinkUtils {
...
@@ -188,6 +189,8 @@ public class FlinkUtils {
env
.
setStateBackend
(
new
FsStateBackend
(
checkpointPath
));
env
.
setStateBackend
(
new
FsStateBackend
(
checkpointPath
));
env
.
getCheckpointConfig
().
enableExternalizedCheckpoints
(
CheckpointConfig
.
ExternalizedCheckpointCleanup
.
RETAIN_ON_CANCELLATION
);
env
.
getCheckpointConfig
().
enableExternalizedCheckpoints
(
CheckpointConfig
.
ExternalizedCheckpointCleanup
.
RETAIN_ON_CANCELLATION
);
env
.
setRestartStrategy
(
RestartStrategies
.
noRestart
());
env
.
setRestartStrategy
(
RestartStrategies
.
noRestart
());
//修改Checkpoint的模式 时廷和吞吐量要求非常高但对数据的一致性要求不高的场景。flink内部无须exactly-once检查
env
.
getCheckpointConfig
().
setCheckpointingMode
(
CheckpointingMode
.
AT_LEAST_ONCE
);
// 基于Kafka 原始JSON格式的字符串,获取消息流
// 基于Kafka 原始JSON格式的字符串,获取消息流
FlinkKafkaConsumer
<
String
>
kafkaConsumer
=
new
FlinkKafkaConsumer
<>(
topicList
,
new
SimpleStringSchema
(),
properties
);
FlinkKafkaConsumer
<
String
>
kafkaConsumer
=
new
FlinkKafkaConsumer
<>(
topicList
,
new
SimpleStringSchema
(),
properties
);
kafkaConsumer
.
setStartFromLatest
();
kafkaConsumer
.
setStartFromLatest
();
...
...
realtime/hologram-streaming/src/main/resources/doris.properties
View file @
315034c9
driver
=
com.mysql.jdbc.Driver
driver
=
com.mysql.jdbc.Driver
host
=
1
3.145.183.136
host
=
1
0.243.0.22
query.port
=
9030
query.port
=
9030
http.port
=
8030
http.port
=
8030
username
=
root
username
=
root
password
=
Zhht2023!
password
=
mima
database
=
qxlk
database
=
qxlk
realtime/hologram-streaming/src/main/resources/kafka.properties
View file @
315034c9
...
@@ -2,6 +2,6 @@ bootstrap.servers=139.9.157.176:9092
...
@@ -2,6 +2,6 @@ bootstrap.servers=139.9.157.176:9092
kafka.input.topics
=
trips_info
kafka.input.topics
=
trips_info
auto.offset.reset
=
latest
auto.offset.reset
=
latest
group.id
=
TravelInfoJob
group.id
=
TravelInfoJob
checkpoint.path
=
file://
/data/flink/state
checkpoint.path
=
hdfs://10.243.0.24:9000
/data/flink/state
checkpoint.interval
=
60000
checkpoint.interval
=
60000
enable.auto.commit
=
true
enable.auto.commit
=
true
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