flink1.11.2写hive分区表,hive识别不到分区

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

flink1.11.2写hive分区表,hive识别不到分区

kingdomad
flink1.11.2写hive3.12的分区表,flink新创建的分区数据hive无法识别,在hdfs上能看到写入了文件,但是hive读取不了分区。
需要执行msck repair table修复分区表后,hive才能读取到数据。
求助大佬,要如何解决。
















--

kingdomad

Reply | Threaded
Open this post in threaded view
|

Re: flink1.11.2写hive分区表,hive识别不到分区

r pp
程序中,创建表后,执行命令。

kingdomad <[hidden email]> 于2020年12月21日周一 下午4:55写道:

> flink1.11.2写hive3.12的分区表,flink新创建的分区数据hive无法识别,在hdfs上能看到写入了文件,但是hive读取不了分区。
> 需要执行msck repair table修复分区表后,hive才能读取到数据。
> 求助大佬,要如何解决。
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> --
>
> kingdomad
>
>
Reply | Threaded
Open this post in threaded view
|

Re: flink1.11.2写hive分区表,hive识别不到分区

nobleyd
即使不是flink写入,其他方式写入也需要这样做的哈。

r pp <[hidden email]> 于2020年12月21日周一 下午9:28写道:

> 程序中,创建表后,执行命令。
>
> kingdomad <[hidden email]> 于2020年12月21日周一 下午4:55写道:
>
> >
> flink1.11.2写hive3.12的分区表,flink新创建的分区数据hive无法识别,在hdfs上能看到写入了文件,但是hive读取不了分区。
> > 需要执行msck repair table修复分区表后,hive才能读取到数据。
> > 求助大佬,要如何解决。
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > --
> >
> > kingdomad
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: flink1.11.2写hive分区表,hive识别不到分区

Rui Li
具体是怎么写hive的呢?

On Mon, Dec 21, 2020 at 11:28 PM 赵一旦 <[hidden email]> wrote:

> 即使不是flink写入,其他方式写入也需要这样做的哈。
>
> r pp <[hidden email]> 于2020年12月21日周一 下午9:28写道:
>
> > 程序中,创建表后,执行命令。
> >
> > kingdomad <[hidden email]> 于2020年12月21日周一 下午4:55写道:
> >
> > >
> >
> flink1.11.2写hive3.12的分区表,flink新创建的分区数据hive无法识别,在hdfs上能看到写入了文件,但是hive读取不了分区。
> > > 需要执行msck repair table修复分区表后,hive才能读取到数据。
> > > 求助大佬,要如何解决。
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > --
> > >
> > > kingdomad
> > >
> > >
> >
>


--
Best regards!
Rui Li
Reply | Threaded
Open this post in threaded view
|

Re:Re: flink1.11.2写hive分区表,hive识别不到分区

kingdomad
In reply to this post by nobleyd
分区用的是记录中的字段,没有用到processing time或者event time去生成分区。
发现只要给hive的表加上以下这三个属性就可以马上提交分区到metastore了。
'sink.partition-commit.trigger'='process-time'
'sink.partition-commit.delay'='0s'
'sink.partition-commit.policy.kind'='metastore,success-file'













--

kingdomad







在 2020-12-21 23:27:49,"赵一旦" <[hidden email]> 写道:

>即使不是flink写入,其他方式写入也需要这样做的哈。
>
>r pp <[hidden email]> 于2020年12月21日周一 下午9:28写道:
>
>> 程序中,创建表后,执行命令。
>>
>> kingdomad <[hidden email]> 于2020年12月21日周一 下午4:55写道:
>>
>> >
>> flink1.11.2写hive3.12的分区表,flink新创建的分区数据hive无法识别,在hdfs上能看到写入了文件,但是hive读取不了分区。
>> > 需要执行msck repair table修复分区表后,hive才能读取到数据。
>> > 求助大佬,要如何解决。
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > --
>> >
>> > kingdomad
>> >
>> >
>>
Reply | Threaded
Open this post in threaded view
|

回复:Re:Re: flink1.11.2写hive分区表,hive识别不到分区

fanrui
Hello


请问是使用 Sql吧?开启cp了吗?



---原始邮件---
发件人: "kingdomad"<[hidden email]&gt;
发送时间: 2020年12月23日(周三) 上午9:17
收件人: "user-zh"<[hidden email]&gt;;
主题: Re:Re: flink1.11.2写hive分区表,hive识别不到分区


分区用的是记录中的字段,没有用到processing time或者event time去生成分区。
发现只要给hive的表加上以下这三个属性就可以马上提交分区到metastore了。
'sink.partition-commit.trigger'='process-time'
'sink.partition-commit.delay'='0s'
'sink.partition-commit.policy.kind'='metastore,success-file'













--

kingdomad







在 2020-12-21 23:27:49,"赵一旦" <[hidden email]&gt; 写道:
&gt;即使不是flink写入,其他方式写入也需要这样做的哈。
&gt;
&gt;r pp <[hidden email]&gt; 于2020年12月21日周一 下午9:28写道:
&gt;
&gt;&gt; 程序中,创建表后,执行命令。
&gt;&gt;
&gt;&gt; kingdomad <[hidden email]&gt; 于2020年12月21日周一 下午4:55写道:
&gt;&gt;
&gt;&gt; &gt;
&gt;&gt; flink1.11.2写hive3.12的分区表,flink新创建的分区数据hive无法识别,在hdfs上能看到写入了文件,但是hive读取不了分区。
&gt;&gt; &gt; 需要执行msck repair table修复分区表后,hive才能读取到数据。
&gt;&gt; &gt; 求助大佬,要如何解决。
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt; --
&gt;&gt; &gt;
&gt;&gt; &gt; kingdomad
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt;
Reply | Threaded
Open this post in threaded view
|

Re:回复:Re:Re: flink1.11.2写hive分区表,hive识别不到分区

kingdomad
是的。开启了checkpoint。
消费kafka,用tableEnv把stream注册成TemporaryView。
然后执行sql写入到hive的表中。













--

kingdomad







在 2020-12-23 09:22:48,"范瑞" <[hidden email]> 写道:

>Hello
>
>
>请问是使用 Sql吧?开启cp了吗?
>
>
>
>---原始邮件---
>发件人: "kingdomad"<[hidden email]&gt;
>发送时间: 2020年12月23日(周三) 上午9:17
>收件人: "user-zh"<[hidden email]&gt;;
>主题: Re:Re: flink1.11.2写hive分区表,hive识别不到分区
>
>
>分区用的是记录中的字段,没有用到processing time或者event time去生成分区。
>发现只要给hive的表加上以下这三个属性就可以马上提交分区到metastore了。
>'sink.partition-commit.trigger'='process-time'
>'sink.partition-commit.delay'='0s'
>'sink.partition-commit.policy.kind'='metastore,success-file'
>
>
>
>
>
>
>
>
>
>
>
>
>
>--
>
>kingdomad
>
>
>
>
>
>
>
>在 2020-12-21 23:27:49,"赵一旦" <[hidden email]&gt; 写道:
>&gt;即使不是flink写入,其他方式写入也需要这样做的哈。
>&gt;
>&gt;r pp <[hidden email]&gt; 于2020年12月21日周一 下午9:28写道:
>&gt;
>&gt;&gt; 程序中,创建表后,执行命令。
>&gt;&gt;
>&gt;&gt; kingdomad <[hidden email]&gt; 于2020年12月21日周一 下午4:55写道:
>&gt;&gt;
>&gt;&gt; &gt;
>&gt;&gt; flink1.11.2写hive3.12的分区表,flink新创建的分区数据hive无法识别,在hdfs上能看到写入了文件,但是hive读取不了分区。
>&gt;&gt; &gt; 需要执行msck repair table修复分区表后,hive才能读取到数据。
>&gt;&gt; &gt; 求助大佬,要如何解决。
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt; &gt; --
>&gt;&gt; &gt;
>&gt;&gt; &gt; kingdomad
>&gt;&gt; &gt;
>&gt;&gt; &gt;
>&gt;&gt;
Reply | Threaded
Open this post in threaded view
|

Re: Re: flink1.11.2写hive分区表,hive识别不到分区

Rui Li
In reply to this post by kingdomad
流数据写hive分区表是需要额外的参数配置的。Flink 1.11里具体的参数可以参考这两个文档:

https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/hive/hive_streaming.html#streaming-writing
https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/filesystem.html#streaming-sink

On Wed, Dec 23, 2020 at 9:17 AM kingdomad <[hidden email]> wrote:

> 分区用的是记录中的字段,没有用到processing time或者event time去生成分区。
> 发现只要给hive的表加上以下这三个属性就可以马上提交分区到metastore了。
> 'sink.partition-commit.trigger'='process-time'
> 'sink.partition-commit.delay'='0s'
> 'sink.partition-commit.policy.kind'='metastore,success-file'
>
>
>
>
>
>
>
>
>
>
>
>
>
> --
>
> kingdomad
>
>
>
>
>
>
>
> 在 2020-12-21 23:27:49,"赵一旦" <[hidden email]> 写道:
> >即使不是flink写入,其他方式写入也需要这样做的哈。
> >
> >r pp <[hidden email]> 于2020年12月21日周一 下午9:28写道:
> >
> >> 程序中,创建表后,执行命令。
> >>
> >> kingdomad <[hidden email]> 于2020年12月21日周一 下午4:55写道:
> >>
> >> >
> >>
> flink1.11.2写hive3.12的分区表,flink新创建的分区数据hive无法识别,在hdfs上能看到写入了文件,但是hive读取不了分区。
> >> > 需要执行msck repair table修复分区表后,hive才能读取到数据。
> >> > 求助大佬,要如何解决。
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > --
> >> >
> >> > kingdomad
> >> >
> >> >
> >>
>


--
Best regards!
Rui Li
Reply | Threaded
Open this post in threaded view
|

Re: flink1.11.2写hive分区表,hive识别不到分区

admin
In reply to this post by kingdomad
Hi,
Hive 自动添加分区依赖于分区提交策略 metastore,所以得添加policy配置才能生效

> 2020年12月23日 上午9:27,kingdomad <[hidden email]> 写道:
>
> 是的。开启了checkpoint。
> 消费kafka,用tableEnv把stream注册成TemporaryView。
> 然后执行sql写入到hive的表中。
>
>
>
>
>
>
>
>
>
>
>
>
>
> --
>
> kingdomad
>
>
>
>
>
>
>
> 在 2020-12-23 09:22:48,"范瑞" <[hidden email]> 写道:
>> Hello
>>
>>
>> 请问是使用 Sql吧?开启cp了吗?
>>
>>
>>
>> ---原始邮件---
>> 发件人: "kingdomad"<[hidden email]&gt;
>> 发送时间: 2020年12月23日(周三) 上午9:17
>> 收件人: "user-zh"<[hidden email]&gt;;
>> 主题: Re:Re: flink1.11.2写hive分区表,hive识别不到分区
>>
>>
>> 分区用的是记录中的字段,没有用到processing time或者event time去生成分区。
>> 发现只要给hive的表加上以下这三个属性就可以马上提交分区到metastore了。
>> 'sink.partition-commit.trigger'='process-time'
>> 'sink.partition-commit.delay'='0s'
>> 'sink.partition-commit.policy.kind'='metastore,success-file'
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>>
>> kingdomad
>>
>>
>>
>>
>>
>>
>>
>> 在 2020-12-21 23:27:49,"赵一旦" <[hidden email]&gt; 写道:
>> &gt;即使不是flink写入,其他方式写入也需要这样做的哈。
>> &gt;
>> &gt;r pp <[hidden email]&gt; 于2020年12月21日周一 下午9:28写道:
>> &gt;
>> &gt;&gt; 程序中,创建表后,执行命令。
>> &gt;&gt;
>> &gt;&gt; kingdomad <[hidden email]&gt; 于2020年12月21日周一 下午4:55写道:
>> &gt;&gt;
>> &gt;&gt; &gt;
>> &gt;&gt; flink1.11.2写hive3.12的分区表,flink新创建的分区数据hive无法识别,在hdfs上能看到写入了文件,但是hive读取不了分区。
>> &gt;&gt; &gt; 需要执行msck repair table修复分区表后,hive才能读取到数据。
>> &gt;&gt; &gt; 求助大佬,要如何解决。
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt; &gt; --
>> &gt;&gt; &gt;
>> &gt;&gt; &gt; kingdomad
>> &gt;&gt; &gt;
>> &gt;&gt; &gt;
>> &gt;&gt;