flink standolone 模式配置
在 conf/flink-conf.yaml 中 jobmanager.rpc.address: 10.0.0.1
slave中 添加 从节点的ip start-cluster.sh
一些调优的参数
- the amount of available memory per JobManager (
jobmanager.heap.mb
), - the amount of available memory per TaskManager (
taskmanager.heap.mb
), - the number of available CPUs per machine (
taskmanager.numberOfTaskSlots
), - the total number of CPUs in the cluster (
parallelism.default
) and - the temporary directories (
taskmanager.tmp.dirs
)
recommend to set the number of slots to the number of processors per machine.
flink on yarn 有两种方式一种是 提前在yarn中申请一个固定资源的session 此session中包含了一个flink cluster
另一种是提交flink job 的形式来实现flink on yarn ,大体流程 jobmanager将配置 jar包等提交到hdfs上,然后向 yarn resourcemanager请求资源,yarn resourcemanager返回其 appmaster
checkpoint用于恢复taskmanager失败的恢复,默认cancel job就会消失
savepoint用于集群的升级,暂停,恢复使用,主要由两部分组成一些二进制文件存储在hdfs上等,一些元数据
flink 为java提供了Tuple类型 说白了就是scala的元组 只是写法不大一样 其他差不多 Java的Tuple可以更改值
Tuple 一个括号扩起来 里面可以放多个不同类型的数据 不像 List Set那种类型必须一致
Tuple类型 最多25个字段 Tuple25(1,2,3,....)
scala Tuple例子
// DataStream of Tuple2[String, Integer] for Person(name,age) val persons: DataStream[(String, Integer)] = env.fromElements(("Adam", 17),("Sarah", 23)) // filter for persons of age > 18 persons.filter(p => p._2 > 18)
Java Tuple重写上面例子
// DataStream of Tuple2<String, Integer> for Person(name,age) DataStream<Tuple2<String, Integer>> persons =env.fromElements(Tuple2.of("Adam", 17),Tuple2.of("Sarah",23)); // filter for persons of age > 18 persons.filter(p -> p.f1 > 18);
Tuple字段可以通过f0 f1 f2的形式访问 也可以通过getField(int pos ) 访问 索引起始值为0
flink支持的数据类型
1 基本的数据类型
2 Java scala的Tuple
3 Scala 的case 类 case class Person(name: String, age: Int)
4 Java 的 pojo
pojo 必须满足
public 类
无参的共有构造方法
所有字段都是public 可以通过getter setter访问
所有字段类型必须是flink支持的
public class Person { // both fields are public public String name; public int age; // default constructor is present public Person() {} public Person(String name, int age) { this.name = name; this.age = age; } } DataStream<Person> persons = env.fromElements( new Person("Alex", 42), new Person("Wendy", 23));