flink 的一些概念二

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));

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值