工信部网站icp备案号,学校网站建设报价单,顺企网官网下载安装,上海三大设计院程序员圣经
为什么刚刚能运行#xff0c;现在就不行
为什么刚刚不运行#xff0c;现在就可以
为什么他的可以跑#xff0c;我的不能跑
为什么我的可以跑#xff0c;他的就不行
为什么这台电脑能#xff0c;那台就不行
为什么这台电脑不行#xff0c;那台就行
神州员工现在就不行
为什么刚刚不运行现在就可以
为什么他的可以跑我的不能跑
为什么我的可以跑他的就不行
为什么这台电脑能那台就不行
为什么这台电脑不行那台就行
神州员工一闪最近我有些感悟和你分享一下
一闪中国有句古话叫做有句古话说得好.....
---------
老员工一闪来帮我看看这个问题我Flink有个任务内存资源已经拉满了为什么还是跑不动
一闪卧槽15C60G这么豪华的配置还跑不动让我康康.....
CREATE TEMPORARY TABLE xxx(tid varchar ,oid varchar ,num_iid varchar ,talent_flag varchar ,talent_id varchar ,talent_name varchar ,comb_goods_type BIGINT
) WITH (connector odps,endPoint xxx,project xxx,tableName xxx,accessId xxx ,accessKey xxx,partition max_pt(),cache ALL,cacheSize 30000000 -- 缓存大小,cacheTTLMs 3600000 -- 缓存重新加载的间隔时间);
一闪不对哇你咋把一张事实表作为维表来用了而且这个数据量有两千多万条
老员工没办法啊我现在要的维度数据只在这张事实表里面才有所以我只能用它做维表。引用odps阿里存储类似于hdfs的表作为维表的时候一定要全量缓存一次即cacheSize参数一定要大于表内数据条数所以我就这样配置了.....
一闪这个维表一定会广播到所有的并发上所以这个维表会占用大量内存目前看下来就是这个大维表的问题思路就是不能让全量维表分发到每个并发上。直接掏出我的秘籍浏览器输入flink.apache.org
----经过一番搜索在官网上找到了如下信息
Hints | Apache Flink
SHUFFLE_HASH suggests that Flink uses Shuffle Hash join. The join side with the hint will be the join build side, it performs well when the data volume of the hint side of table is not too large.
Note: SHUFFLE_HASH only supports join with equivalence join condition. --Example↓
CREATE TABLE t1 (id BIGINT, name STRING, age INT) WITH (...);
CREATE TABLE t2 (id BIGINT, name STRING, age INT) WITH (...);
CREATE TABLE t3 (id BIGINT, name STRING, age INT) WITH (...);-- Flink will use hash join and t1 will be the build side.
SELECT /* SHUFFLE_HASH(t1) */ * FROM t1 JOIN t2 ON t1.id t2.id;-- Flink will use hash join for both joins and t1, t3 will be the join build side.
SELECT /* SHUFFLE_HASH(t1, t3) */ * FROM t1 JOIN t2 ON t1.id t2.id JOIN t3 ON t1.id t3.id;-- SHUFFLE_HASH dont support non-equivalent join conditions.
-- For this case, Join Hint will not work, and only nested loop join can be applied.
SELECT /* SHUFFLE_HASH(t1) */ * FROM t1 join t2 ON t1.id t2.id;
-----
一闪所以我们只要把这张大维表加一下shuffle_hash的join hint就可以了直接就完美了。堆内存就可以省下来一部分。
老员工卧槽还给我扯内存模型有点装X那我问你理论上Flink中TM托管内存的大小应该是TM内存的40%那么为什么我从FlinkUI上看实际上分配给托管内存的大小不到40% 一闪因为Flink会保留一部分内存用于JVM运行时、本地代码和一些基础操作系统功能。这部分内存不会用于Flink的直接作业内存分配。所以6.7GB并不是简单通过TM总内存乘40%直接算出来的。 老员工这年轻人卧槽