【问题标题】:Unable to read the parquet files present on the Amazon s3 and load into FlinkSql无法读取 Amazon s3 上存在的 parquet 文件并加载到 FlinkSql
【发布时间】:2021-05-12 17:57:12
【问题描述】:

我已经成功将亚马逊s3的csv文件数据加载到FlinkSql本地机中

CREATE TABLE fs_table (
  username STRING,
  age STRING
) WITH (
  'connector'='filesystem',
  'path'='s3://d11-data-lake-load/flink/events_data/test_flink/test-csv',
  'format'='csv'
); 

我尝试将 Parquet 文件从 S3 加载到 FlinkSql 中: 获取异常

CREATE TABLE fs_table (
  username STRING,
  age STRING
) WITH (
  'connector'='filesystem',
  'path'='s3://d11-data-lake-load/flink/events_data/test_flink/test-parquet',
  'format'='parquet'
);

[INFO] Table has been created.

Flink SQL> select * from fs_table;

[ERROR] Could not execute SQL statement. Reason:
java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.security.KerberosName

我已经在 flink 类路径中包含了相关的 jar,但是出现了一个新的异常,并且这将永远持续

【问题讨论】:

    标签: amazon-s3 apache-flink parquet flink-streaming flink-sql


    【解决方案1】:

    如果 flink 没有找到任何与文件系统相关的库,它将在 HADOOP 类路径中查找。因此,请在 ~/.bash_profile 中添加以下类路径变量。

    export HADOOP_CLASSPATH='hadoop 类路径'

    在我的机器上看起来像这样在 ~/.bash_profile:

    export HADOOP_HOME="/usr/local/Cellar/hadoop"
    export HADOOP_CLASSPATH=$(find $HADOOP_HOME -name '*.jar' | xargs echo | tr ' ' ':')
    

    在flink目录的lib文件夹中还包含同版本flink(已安装)的flink-sql-parquet jar。这里是 1.12.2

    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-sql-parquet_2.11</artifactId>
        <version>1.12.2</version>
    </dependency>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 2018-04-04
      • 2018-08-20
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多