You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 迎风浪子 <57...@qq.com.INVALID> on 2023/09/19 09:20:58 UTC

回复:flink1.17版本不支持hive 2.1版本了吗

我们还在使用hive1.1.0,怎么办?



---原始邮件---
发件人: "18579099920"<18579099920@163.com&gt;
发送时间: 2023年9月18日(周一) 中午11:26
收件人: "user-zh"<user-zh@flink.apache.org&gt;;
主题: flink1.17版本不支持hive 2.1版本了吗


我看了一下官方文档,flink1.16版本之后好像就不支持hive2.1版本了,如果我还想hive2.1版本,应该怎么办呢



18579099920@163.com

回复: Re:flink1.17版本不支持hive 2.1版本了吗

Posted by "junjie.miao@goupwith.com" <ju...@goupwith.com>.
回复问题经常遇到回复的邮件没能收到!



JunjieM
 
发件人: junjie.miao@goupwith.com
发送时间: 2023-09-20 16:17
收件人: user-zh
主题: Re: 回复:flink1.17版本不支持hive 2.1版本了吗
可以重载org.apache.flink.table.catalog.hive.client.HiveShimLoader将低版本的判断加进去。
package org.apache.flink.table.catalog.hive.client;

import org.apache.flink.table.catalog.exceptions.CatalogException;
import org.apache.hive.common.util.HiveVersionInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/** A loader to load HiveShim. */
public class HiveShimLoader {

    public static final String HIVE_VERSION_V1_0_0 = "1.0.0";
    public static final String HIVE_VERSION_V1_0_1 = "1.0.1";
    public static final String HIVE_VERSION_V1_1_0 = "1.1.0";
    public static final String HIVE_VERSION_V1_1_1 = "1.1.1";
    public static final String HIVE_VERSION_V1_2_0 = "1.2.0";
    public static final String HIVE_VERSION_V1_2_1 = "1.2.1";
    public static final String HIVE_VERSION_V1_2_2 = "1.2.2";
    public static final String HIVE_VERSION_V2_0_0 = "2.0.0";
    public static final String HIVE_VERSION_V2_0_1 = "2.0.1";
    public static final String HIVE_VERSION_V2_1_0 = "2.1.0";
    public static final String HIVE_VERSION_V2_1_1 = "2.1.1";
    public static final String HIVE_VERSION_V2_2_0 = "2.2.0";
    public static final String HIVE_VERSION_V2_3_0 = "2.3.0";
    public static final String HIVE_VERSION_V2_3_1 = "2.3.1";
    public static final String HIVE_VERSION_V2_3_2 = "2.3.2";
    public static final String HIVE_VERSION_V2_3_3 = "2.3.3";
    public static final String HIVE_VERSION_V2_3_4 = "2.3.4";
    public static final String HIVE_VERSION_V2_3_5 = "2.3.5";
    public static final String HIVE_VERSION_V2_3_6 = "2.3.6";
    public static final String HIVE_VERSION_V2_3_7 = "2.3.7";
    public static final String HIVE_VERSION_V2_3_8 = "2.3.8";
    public static final String HIVE_VERSION_V2_3_9 = "2.3.9";
    public static final String HIVE_VERSION_V3_1_0 = "3.1.0";
    public static final String HIVE_VERSION_V3_1_1 = "3.1.1";
    public static final String HIVE_VERSION_V3_1_2 = "3.1.2";
    public static final String HIVE_VERSION_V3_1_3 = "3.1.3";

    private static final Map<String, HiveShim> hiveShims = new ConcurrentHashMap<>(2);

    private static final Logger LOG = LoggerFactory.getLogger(HiveShimLoader.class);

    private HiveShimLoader() {}

    public static HiveShim loadHiveShim(String version) {
        return hiveShims.computeIfAbsent(
                version,
                (v) -> {
                    if (v.startsWith(HIVE_VERSION_V1_0_0)) {
                        return new HiveShimV100();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_0_1)) {
                        return new HiveShimV101();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_1_0)) {
                        return new HiveShimV110();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_1_1)) {
                        return new HiveShimV111();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_2_0)) {
                        return new HiveShimV120();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_2_1)) {
                        return new HiveShimV121();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_2_2)) {
                        return new HiveShimV122();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_0_0)) {
                        return new HiveShimV200();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_0_1)) {
                        return new HiveShimV201();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_1_0)) {
                        return new HiveShimV210();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_1_1)) {
                        return new HiveShimV211();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_2_0)) {
                        return new HiveShimV220();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_0)) {
                        return new HiveShimV230();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_1)) {
                        return new HiveShimV231();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_2)) {
                        return new HiveShimV232();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_3)) {
                        return new HiveShimV233();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_4)) {
                        return new HiveShimV234();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_5)) {
                        return new HiveShimV235();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_6)) {
                        return new HiveShimV236();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_7)) {
                        return new HiveShimV237();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_8)) {
                        return new HiveShimV238();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_9)) {
                        return new HiveShimV239();
                    }
                    if (v.startsWith(HIVE_VERSION_V3_1_0)) {
                        return new HiveShimV310();
                    }
                    if (v.startsWith(HIVE_VERSION_V3_1_1)) {
                        return new HiveShimV311();
                    }
                    if (v.startsWith(HIVE_VERSION_V3_1_2)) {
                        return new HiveShimV312();
                    }
                    if (v.startsWith(HIVE_VERSION_V3_1_3)) {
                        return new HiveShimV313();
                    }
                    throw new CatalogException("Unsupported Hive version " + v);
                });
    }

    public static String getHiveVersion() {
        return HiveVersionInfo.getVersion();
    }
}



JunjieM
 
发件人: 迎风浪子
发送时间: 2023-09-19 17:20
收件人: user-zh
主题: 回复:flink1.17版本不支持hive 2.1版本了吗
我们还在使用hive1.1.0,怎么办?
 
 
 
---原始邮件---
发件人: "18579099920"<18579099920@163.com&gt;
发送时间: 2023年9月18日(周一) 中午11:26
收件人: "user-zh"<user-zh@flink.apache.org&gt;;
主题: flink1.17版本不支持hive 2.1版本了吗
 
 
我看了一下官方文档,flink1.16版本之后好像就不支持hive2.1版本了,如果我还想hive2.1版本,应该怎么办呢
 
 
 
18579099920@163.com

Re: 回复:flink1.17版本不支持hive 2.1版本了吗

Posted by "junjie.miao@goupwith.com" <ju...@goupwith.com>.
可以重载org.apache.flink.table.catalog.hive.client.HiveShimLoader将低版本的判断加进去。
package org.apache.flink.table.catalog.hive.client;

import org.apache.flink.table.catalog.exceptions.CatalogException;
import org.apache.hive.common.util.HiveVersionInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/** A loader to load HiveShim. */
public class HiveShimLoader {

    public static final String HIVE_VERSION_V1_0_0 = "1.0.0";
    public static final String HIVE_VERSION_V1_0_1 = "1.0.1";
    public static final String HIVE_VERSION_V1_1_0 = "1.1.0";
    public static final String HIVE_VERSION_V1_1_1 = "1.1.1";
    public static final String HIVE_VERSION_V1_2_0 = "1.2.0";
    public static final String HIVE_VERSION_V1_2_1 = "1.2.1";
    public static final String HIVE_VERSION_V1_2_2 = "1.2.2";
    public static final String HIVE_VERSION_V2_0_0 = "2.0.0";
    public static final String HIVE_VERSION_V2_0_1 = "2.0.1";
    public static final String HIVE_VERSION_V2_1_0 = "2.1.0";
    public static final String HIVE_VERSION_V2_1_1 = "2.1.1";
    public static final String HIVE_VERSION_V2_2_0 = "2.2.0";
    public static final String HIVE_VERSION_V2_3_0 = "2.3.0";
    public static final String HIVE_VERSION_V2_3_1 = "2.3.1";
    public static final String HIVE_VERSION_V2_3_2 = "2.3.2";
    public static final String HIVE_VERSION_V2_3_3 = "2.3.3";
    public static final String HIVE_VERSION_V2_3_4 = "2.3.4";
    public static final String HIVE_VERSION_V2_3_5 = "2.3.5";
    public static final String HIVE_VERSION_V2_3_6 = "2.3.6";
    public static final String HIVE_VERSION_V2_3_7 = "2.3.7";
    public static final String HIVE_VERSION_V2_3_8 = "2.3.8";
    public static final String HIVE_VERSION_V2_3_9 = "2.3.9";
    public static final String HIVE_VERSION_V3_1_0 = "3.1.0";
    public static final String HIVE_VERSION_V3_1_1 = "3.1.1";
    public static final String HIVE_VERSION_V3_1_2 = "3.1.2";
    public static final String HIVE_VERSION_V3_1_3 = "3.1.3";

    private static final Map<String, HiveShim> hiveShims = new ConcurrentHashMap<>(2);

    private static final Logger LOG = LoggerFactory.getLogger(HiveShimLoader.class);

    private HiveShimLoader() {}

    public static HiveShim loadHiveShim(String version) {
        return hiveShims.computeIfAbsent(
                version,
                (v) -> {
                    if (v.startsWith(HIVE_VERSION_V1_0_0)) {
                        return new HiveShimV100();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_0_1)) {
                        return new HiveShimV101();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_1_0)) {
                        return new HiveShimV110();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_1_1)) {
                        return new HiveShimV111();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_2_0)) {
                        return new HiveShimV120();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_2_1)) {
                        return new HiveShimV121();
                    }
                    if (v.startsWith(HIVE_VERSION_V1_2_2)) {
                        return new HiveShimV122();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_0_0)) {
                        return new HiveShimV200();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_0_1)) {
                        return new HiveShimV201();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_1_0)) {
                        return new HiveShimV210();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_1_1)) {
                        return new HiveShimV211();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_2_0)) {
                        return new HiveShimV220();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_0)) {
                        return new HiveShimV230();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_1)) {
                        return new HiveShimV231();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_2)) {
                        return new HiveShimV232();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_3)) {
                        return new HiveShimV233();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_4)) {
                        return new HiveShimV234();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_5)) {
                        return new HiveShimV235();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_6)) {
                        return new HiveShimV236();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_7)) {
                        return new HiveShimV237();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_8)) {
                        return new HiveShimV238();
                    }
                    if (v.startsWith(HIVE_VERSION_V2_3_9)) {
                        return new HiveShimV239();
                    }
                    if (v.startsWith(HIVE_VERSION_V3_1_0)) {
                        return new HiveShimV310();
                    }
                    if (v.startsWith(HIVE_VERSION_V3_1_1)) {
                        return new HiveShimV311();
                    }
                    if (v.startsWith(HIVE_VERSION_V3_1_2)) {
                        return new HiveShimV312();
                    }
                    if (v.startsWith(HIVE_VERSION_V3_1_3)) {
                        return new HiveShimV313();
                    }
                    throw new CatalogException("Unsupported Hive version " + v);
                });
    }

    public static String getHiveVersion() {
        return HiveVersionInfo.getVersion();
    }
}



JunjieM
 
发件人: 迎风浪子
发送时间: 2023-09-19 17:20
收件人: user-zh
主题: 回复:flink1.17版本不支持hive 2.1版本了吗
我们还在使用hive1.1.0,怎么办?
 
 
 
---原始邮件---
发件人: "18579099920"<18579099920@163.com&gt;
发送时间: 2023年9月18日(周一) 中午11:26
收件人: "user-zh"<user-zh@flink.apache.org&gt;;
主题: flink1.17版本不支持hive 2.1版本了吗
 
 
我看了一下官方文档,flink1.16版本之后好像就不支持hive2.1版本了,如果我还想hive2.1版本,应该怎么办呢
 
 
 
18579099920@163.com

Re: 回复:flink1.17版本不支持hive 2.1版本了吗

Posted by yuxia <lu...@alumni.sjtu.edu.cn>.
把这个 pr https://github.com/apache/flink/pull/19352 revert 掉,然后重新打包 flink hive connector 就可以。

Best regards,
Yuxia

----- 原始邮件 -----
发件人: "迎风浪子" <57...@qq.com.INVALID>
收件人: "user-zh" <us...@flink.apache.org>
发送时间: 星期二, 2023年 9 月 19日 下午 5:20:58
主题: 回复:flink1.17版本不支持hive 2.1版本了吗

我们还在使用hive1.1.0,怎么办?



---原始邮件---
发件人: "18579099920"<18579099920@163.com&gt;
发送时间: 2023年9月18日(周一) 中午11:26
收件人: "user-zh"<user-zh@flink.apache.org&gt;;
主题: flink1.17版本不支持hive 2.1版本了吗


我看了一下官方文档,flink1.16版本之后好像就不支持hive2.1版本了,如果我还想hive2.1版本,应该怎么办呢



18579099920@163.com