Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
doujutun3207
flink
提交
3d19332f
F
flink
项目概览
doujutun3207
/
flink
与 Fork 源项目一致
从无法访问的项目Fork
通知
24
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
flink
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3d19332f
编写于
7月 14, 2014
作者:
Y
Yingjun Wu
提交者:
Stephan Ewen
8月 18, 2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[streaming] initiate windowing
上级
f660d058
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
11422 addition
and
0 deletion
+11422
-0
flink-addons/flink-streaming/hamlet.txt
flink-addons/flink-streaming/hamlet.txt
+5593
-0
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCount.java
...here/streaming/test/window/wordcount/WindowWordCount.java
+41
-0
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCountCounter.java
...reaming/test/window/wordcount/WindowWordCountCounter.java
+58
-0
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCountSink.java
.../streaming/test/window/wordcount/WindowWordCountSink.java
+37
-0
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCountSource.java
...treaming/test/window/wordcount/WindowWordCountSource.java
+61
-0
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCountSplitter.java
...eaming/test/window/wordcount/WindowWordCountSplitter.java
+39
-0
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/hamlet.txt
...u/stratosphere/streaming/test/window/wordcount/hamlet.txt
+5593
-0
未找到文件。
flink-addons/flink-streaming/hamlet.txt
0 → 100644
浏览文件 @
3d19332f
此差异已折叠。
点击以展开。
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCount.java
0 → 100644
浏览文件 @
3d19332f
/***********************************************************************************************************************
*
* Copyright (C) 2010-2014 by the Stratosphere project (http://stratosphere.eu)
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
**********************************************************************************************************************/
package
eu.stratosphere.streaming.test.window.wordcount
;
import
eu.stratosphere.nephele.jobgraph.JobGraph
;
import
eu.stratosphere.streaming.api.JobGraphBuilder
;
import
eu.stratosphere.test.util.TestBase2
;
import
eu.stratosphere.types.StringValue
;
public
class
WindowWordCount
extends
TestBase2
{
@Override
public
JobGraph
getJobGraph
()
{
JobGraphBuilder
graphBuilder
=
new
JobGraphBuilder
(
"testGraph"
);
graphBuilder
.
setSource
(
"WordCountSource"
,
WindowWordCountSource
.
class
);
graphBuilder
.
setTask
(
"WordCountSplitter"
,
WindowWordCountSplitter
.
class
,
1
);
graphBuilder
.
setTask
(
"WordCountCounter"
,
WindowWordCountCounter
.
class
,
1
);
graphBuilder
.
setSink
(
"WordCountSink"
,
WindowWordCountSink
.
class
);
graphBuilder
.
broadcastConnect
(
"WordCountSource"
,
"WordCountSplitter"
);
graphBuilder
.
fieldsConnect
(
"WordCountSplitter"
,
"WordCountCounter"
,
0
,
StringValue
.
class
);
graphBuilder
.
broadcastConnect
(
"WordCountCounter"
,
"WordCountSink"
);
return
graphBuilder
.
getJobGraph
();
}
}
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCountCounter.java
0 → 100644
浏览文件 @
3d19332f
/***********************************************************************************************************************
*
* Copyright (C) 2010-2014 by the Stratosphere project (http://stratosphere.eu)
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
**********************************************************************************************************************/
package
eu.stratosphere.streaming.test.window.wordcount
;
import
java.util.HashMap
;
import
java.util.Map
;
import
eu.stratosphere.streaming.api.invokable.UserTaskInvokable
;
import
eu.stratosphere.types.IntValue
;
import
eu.stratosphere.types.Record
;
import
eu.stratosphere.types.StringValue
;
public
class
WindowWordCountCounter
extends
UserTaskInvokable
{
private
Map
<
String
,
Integer
>
wordCounts
=
new
HashMap
<
String
,
Integer
>();
private
StringValue
wordValue
=
new
StringValue
(
""
);
private
IntValue
countValue
=
new
IntValue
(
1
);
private
String
word
=
""
;
private
Record
outputRecord
=
new
Record
(
wordValue
,
countValue
);
private
int
count
=
1
;
@Override
public
void
invoke
(
Record
record
)
throws
Exception
{
record
.
getFieldInto
(
0
,
wordValue
);
word
=
wordValue
.
getValue
();
if
(
wordCounts
.
containsKey
(
word
))
{
count
=
wordCounts
.
get
(
word
)
+
1
;
wordCounts
.
put
(
word
,
count
);
countValue
.
setValue
(
count
);
outputRecord
.
setField
(
0
,
wordValue
);
outputRecord
.
setField
(
1
,
countValue
);
emit
(
outputRecord
);
}
else
{
wordCounts
.
put
(
word
,
1
);
countValue
.
setValue
(
1
);
Record
outputRecord
=
new
Record
(
wordValue
,
countValue
);
emit
(
outputRecord
);
}
}
}
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCountSink.java
0 → 100644
浏览文件 @
3d19332f
/***********************************************************************************************************************
*
* Copyright (C) 2010-2014 by the Stratosphere project (http://stratosphere.eu)
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
**********************************************************************************************************************/
package
eu.stratosphere.streaming.test.window.wordcount
;
import
eu.stratosphere.streaming.api.invokable.UserSinkInvokable
;
import
eu.stratosphere.types.IntValue
;
import
eu.stratosphere.types.Record
;
import
eu.stratosphere.types.StringValue
;
public
class
WindowWordCountSink
implements
UserSinkInvokable
{
private
StringValue
word
=
new
StringValue
(
""
);
private
IntValue
count
=
new
IntValue
(
1
);
@Override
public
void
invoke
(
Record
record
)
throws
Exception
{
record
.
getFieldInto
(
0
,
word
);
record
.
getFieldInto
(
1
,
count
);
System
.
out
.
println
(
word
.
getValue
()
+
" "
+
count
.
getValue
());
}
}
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCountSource.java
0 → 100644
浏览文件 @
3d19332f
/***********************************************************************************************************************
*
* Copyright (C) 2010-2014 by the Stratosphere project (http://stratosphere.eu)
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
**********************************************************************************************************************/
package
eu.stratosphere.streaming.test.window.wordcount
;
import
java.io.BufferedReader
;
import
java.io.FileNotFoundException
;
import
java.io.FileReader
;
import
eu.stratosphere.streaming.api.invokable.UserSourceInvokable
;
import
eu.stratosphere.types.LongValue
;
import
eu.stratosphere.types.Record
;
import
eu.stratosphere.types.StringValue
;
public
class
WindowWordCountSource
extends
UserSourceInvokable
{
private
BufferedReader
br
=
null
;
private
String
line
;
// the system should support long int.
private
long
timestamp
;
private
Record
hamletRecord
=
null
;
public
WindowWordCountSource
()
{
try
{
br
=
new
BufferedReader
(
new
FileReader
(
"src/main/java/eu/stratosphere/streaming/test/window/wordcount/hamlet.txt"
));
}
catch
(
FileNotFoundException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
}
@Override
public
void
invoke
()
throws
Exception
{
line
=
br
.
readLine
();
line
=
line
.
replaceAll
(
"[\\-\\+\\.\\^:,]"
,
""
);
timestamp
=
0
;
//while (line != null) {
for
(
int
i
=
0
;
i
<
1000
;
++
i
){
if
(
line
==
""
){
continue
;
}
hamletRecord
=
new
Record
(
new
StringValue
(
"You do not understand yourself so clearly"
));
System
.
out
.
println
(
"========line number: "
+
timestamp
+
", "
+
line
+
"=========="
);
emit
(
hamletRecord
);
line
=
br
.
readLine
();
++
timestamp
;
}
}
}
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/WindowWordCountSplitter.java
0 → 100644
浏览文件 @
3d19332f
/***********************************************************************************************************************
*
* Copyright (C) 2010-2014 by the Stratosphere project (http://stratosphere.eu)
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
**********************************************************************************************************************/
package
eu.stratosphere.streaming.test.window.wordcount
;
import
eu.stratosphere.streaming.api.invokable.UserTaskInvokable
;
import
eu.stratosphere.types.Record
;
import
eu.stratosphere.types.StringValue
;
public
class
WindowWordCountSplitter
extends
UserTaskInvokable
{
private
StringValue
sentence
=
new
StringValue
(
""
);
private
String
[]
words
=
new
String
[
0
];
private
StringValue
wordValue
=
new
StringValue
(
""
);
private
Record
outputRecord
=
new
Record
(
wordValue
);
@Override
public
void
invoke
(
Record
record
)
throws
Exception
{
record
.
getFieldInto
(
0
,
sentence
);
words
=
sentence
.
getValue
().
split
(
" "
);
for
(
CharSequence
word
:
words
)
{
wordValue
.
setValue
(
word
);
outputRecord
.
setField
(
0
,
wordValue
);
emit
(
outputRecord
);
}
}
}
\ No newline at end of file
flink-addons/flink-streaming/src/main/java/eu/stratosphere/streaming/test/window/wordcount/hamlet.txt
0 → 100644
浏览文件 @
3d19332f
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录