最近比较少有精力更新博客,热情锐减可能是一部份原因。 https://archsummit.infoq.cn/2022/shenzhen/schedule 2022架构师峰会 2021的资料ppt https://www.modb.pro/topic/67021 2021年ppt 2022 data summit ppt https://www.modb.pro/topic/411230
https://xie.infoq.cn/article/fad821a83e19c6478458e0b03 https://cloud.tencent.com/developer/article/1791911 https://aws.amazon.com/cn/blogs/china/application-and-actual-combat-of-new-features-of-apache-spark-3-0-in-freewheels-core-business-data-team/ trino cbo https://trino.io/blog/2019/07/04/cbo-introduction.html spark cbo https://docs.databricks.com/spark/latest/spark-sql/cbo.html spark cbo http://www.jasongj.com/spark/cbo/ 升级的成本考量:每个公司的大数据架构不一,统一的架构管控更能够适应这种计算引擎的升级。参考上文freewheel的数据平台,它做spark升级较为容易。 有没有必要升级,是基于公司成本和迁移难度的考量。spark 3.0提供的很多优秀特性,可以提高集群的资源利用率,同时提高数据处理效率。如果是云上的集群,确实可以节约可观的成本。 AQE解决了历史性难题。所以Flink和Spark哪个好,老生常谈。做流式做了4年多,总结到,批量还是看spark,spark streaming基本上大多数业务场景spark完全cover了,没必要上技术要求比较高的flink,flink对开发人员的水平要求目前还是太高了。flink checkpoint用的好不好,决定着lambda是否还是需要建设,可以肯定的是基本上二线城市或二线公司没有这个能力完全流批一体。
windows环境,开发桌面应用有强大的QT。熟悉Java、Scala不熟悉C++的同学该怎么办,入门QT? 除了这个办法,可以看一下SWT, IBM提供的eclipse ui库。对标ORACLE的AWT。 Standard Widget ToolKit。 基于它开发的,有Eclipase IDE,也有最近火爆的数据库管理工具,Dbeaver,开源、基本上纯Java开发。浏览代码,记得github打开主页,点一下键盘的“.”。
why schema? 引用Jay kreps的话,关于topic的schema。原文见《Why Avro for Kafka Data?》。 one thing you’ll need to do is pick a data format. The most important thing to do is be consistent across your usage。 json虽然表达能力强,但冗余,尤其对于kafka这类数据存储。 引入序列化协议及schema注册中心,可以优化数据存储、支持schema evolve,保证生产消费对同个字段的相同解析,简化etl处理。 但也有折衷,引入注册中心无于多了组件,如果registry宕机,kafka 不可用。所以很多公司不会使用json,而是使用自已约定的消息格式,除非像一些传统公司技术能力欠缺或者kafka消息体量很小还不考虑吞吐和性能问题,当然也有可能公司不差钱。 confluent官方提供了schema registry,用于schema的注册等级,生产消费都会从它那里登记或获取消息序列反序列化schema。 官方支持的schema类型有avro,json,protobuf,推荐avro,原因见上面的链接,摘要如下 We chose Avro as a schema representation language after evaluating all the common options—JSON, XML, Thrift, […]
折腾吧,它几乎没有人在用,none sense,只有acl授权,没有用户认证。 原理? 原理很简单,hbase namespace中存放了acl表,in memory 类型,存了具体的acl规则。收到请求时,获取请求对应的用户名,检查acl中该用户名相关的资源权限。 粒度? hbase的model有多个维度,这边acl是用到前面4维。name space, table, column family, column。对这几个资源定义了一些operation,如read write create等。 如何管理? 可以使用shell 或 java api管理acl。 最后一个问题,用户名怎么取? 用户名是遵从一定的顺序,从kerberos到hadoop user name,再到运行进程的用户名,优先取最先找到的这个。hbase不开启acl时,默认也会取到shell用户名。例如我用allen这个用户起了java服务访问hbase, client用的名称就是allen。 如何调整? 和hadoop user name一样,shell中export HADOOP_USER_NAME或者System.getProperties().setProperty(“HADOOP_USER_NAME”, xxx)。所以本质上,不做用户认证,acl是能够绕过的,只是一层简单的安全管控,没太多应用场景,除非自定义。