首页 » Latest Post

最近工作上用到flink,需要对flink学习和研究

1. 流处理的历史

第一代:lamda

  • 在批处理基础上加了流式处理,如图

图片1

  • 缺点1:同样的逻辑要在离线和实时处理引擎写一遍
  • 缺点2:实时处理是近似值,不是精确值
  • 缺点3:管理维护麻烦

第二代2013:提供了---运行一次(exactly once)保证

  • 从低级api提供高级api
  • 为了失败保证,延迟从毫秒到秒级别
  • 结果仍然依赖事件的时间(timing)和顺序(Order)

第三代2015:解决了对时间和顺序的依赖

  • 利用exactly once,第一次提供了,精确和一致性结果
  • 可以像实时Live Data那样处理历史数据。
  • 不再是高并发和低延迟权衡(trade off),而是两者都要保证

除了以上点,流处理还逐渐加入了下面特性:

  • 高可用
  • 和资源管理器(Resource Manager) 高度集成,yarn,k8s
  • 无缝迁移job到另一个流处理引擎,不丢失现有状态

2. Flink

Flink就是第三代流处理器的一中

  • 加入了:事件时间(event time) 和处理时间(processing time) 语义,event-time语义提供精确性和一致性结果(即使是乱序事件);Processing time 用来延迟要求非常低的场景
  • 仅一次(Exactly once)保证
  • 百万/千万数据,毫秒级别延迟
  • 提供分层的API。如DataStream API和Processing functions(windows函数,异步操做和精确时间和状态函数),关系API,linq式的table api
  • 连接器(Connectors)---涵盖大部分存储系统---kafka,es,jdbc,hdfs,s3等
  • 没有单点失败:高可用,7*24小时,非常低的downtime, 紧密集成yarn,k8s,mesos,可以快速从失败恢复,动态扩展job的运行环境
  • 可以更改job的code,或者迁移job到不同的集群,而不丢失状态
  • 详细,且可以自定义系统运行指标metrics,提前发现问题
  • flink也可以是一个完整功能的离线处理引擎
  • 开发人员友好,可以用ide调试(可以把flink所有模块运行到一个jvm里面)

创建flutter项目卡在create project

是因为网络不通,在windows环境下,我的电脑---系统属性---环境配置

加入两个环境变量:

FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn 

PUB_HOSTED_URL=https://pub.flutter-io.cn

脚本地址:https://github.com/oneinstack/lnmp
  1. Media change: please insert the disc labeled

编辑/etc/apt/sources.list 删除cdrom那行

  1. There are problems and -y was used without --force-yes

方法1 apt-get update
方法2 Add to /etc/apt/apt.conf:
APT::Get::AllowUnauthenticated 1 ;

3.最重要的,更改中国源

vim /etc/apt/sources.list

 

deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib

windows下调用git pull,注意代码仓库必须在php根目录下面的文件夹。中文路径的处理

1.这里做了中文路径的处理

<?php
    $pro_dir = $_SERVER['DOCUMENT_ROOT']."/data/User/admin/home/我的文档/code/lcloud_ark_dd";
    $pro_dir  = iconv('utf-8', 'gb2312', $pro_dir);
    echo $pro_dir;
    echo "<br/>";
    chdir($pro_dir);
    echo getcwd();
    $shell = "git pull 2>&1";
    exec($shell,$out);
    echo "<br/>";
    print_r($out);
?>