学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
预定义的 source 和 sink
Flink
里预定义了一部分source
和sink
。在这里分了几类。
基于文件的 source 和 sink
如果要从文本文件中读取数据,可以直接使用:
env.readTextFile(path)
就可以以文本的形式读取该文件中的内容。当然也可以使用:根据指定的fileInputFormat
格式读取文件中的内容。
env.readFile(fileInputFormat, path)
如果数据在Flink
内进行了一系列的计算,想把结果写出到文件里,也可以直接使用内部预定义的一些sink
,比如将结果已文本或csv
格式写出到文件中,可以使用DataStream
的writeAsText(path)
和DataSet
的writeAsCsv(path)
。
基于 Socket 的 Source 和 Sink
提供 Socket
的host name
及port
,可以直接用StreamExecutionEnvironment
预定的接口socketTextStream
创建基于Socket
的source
,从该 socket
中以文本的形式读取数据。当然如果想把结果写出到另外一个Socket
,也可以直接调用DataStream writeToSocket
。
//从 socket 中读取数据流
env.socketTextStream("localhost",777);
//输出至 socket
resultDataStream.writeToSocket("hadoop1",6666,new SimpleStringSchema())
基于内存 Collections、Iterators 的 Source
可以直接基于内存中的集合或者迭代器,调用StreamExecutionEnvironment fromCollection
、fromElements
构建相应的source
。结果数据也可以直接print
、printToError
的方式写出到标准输出或标准错误。详细也可以参考Flink
源码中提供的一些相对应的Examples
来查看异常预定义 source
和sink
的使用方法,例如WordCount
、SocketWindowWordCount
。
//从Java.util.Collection集合中读取数据作为数据源
ArrayList<String> list = new ArrayList<>(5);
list.add("flink");
list.add("scala");
list.add("spark");
list.add("hadoop");
list.add("hive");
env.fromCollection(list).print();
//从Java.util.Collection集合中读取数据作为数据源
env.fromElements("flink", "scala", "spark", "hadoop", "hive").print();
Bundled Connectors
Flink
里已经提供了一些绑定的Connector
,例如kafka source
和sink
,Es sink
等。读写kafka
、es
、rabbitMQ
时可以直接使用相应 connector
的api
即可。
虽然该部分是Flink
项目源代码里的一部分,但是真正意义上不算作Flink
引擎相关逻辑,并且该部分没有打包在二进制的发布包里面。所以在提交Job
时候需要注意,job
代码jar
包中一定要将相应的connetor
相关类打包进去,否则在提交作业时就会失败,提示找不到相应的类,或初始化某些类异常。
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!