开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

使用云上的Flink读取本地的HDFS,是否有什么配置,可以把读取HDFS的用户设置成hive ?

使用云上的Flink读取本地的HDFS,目前直接读取HDFS是通过Flink用户,是否什么配置,可以把读取HDFS的用户设置成hive或者hadoop?

展开
收起
三分钟热度的鱼 2023-10-07 13:19:13 139 0
1 条回答
写回答
取消 提交回答
  • 在使用Flink读取HDFS上的数据时,可以使用Hadoop的WebHDFS协议或者Hive的Metastore来获取数据。这两种方式都需要使用Hadoop或者Hive的用户和密码。

    如果你想将读取HDFS的用户设置为Hive或者Hadoop,你需要在Flink的配置文件中设置相应的参数。具体来说,你可以设置fs.hdfs.implhive.metastore.client.factory.class参数,分别指定使用WebHDFS协议和Hive Metastore的用户和密码。

    以下是一些基本的步骤:

    1. 创建一个JavaProperties对象,包含Hadoop或者Hive的用户和密码。
    Map<String, String> hdfsAuthConf = new HashMap<>();
    hdfsAuthConf.put("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
    hdfsAuthConf.put("fs.hdfs.auth.username", "hadoopuser");
    hdfsAuthConf.put("fs.hdfs.auth.password", "password");
    
    Configuration conf = new Configuration();
    conf.set("hive.metastore.client.factory.class", "com.google.inject.name.NamedInstance");
    conf.set("hive.metastore.client.factory.config.resource", "hive-site.xml");
    conf.set("hive.metastore.uris", "thrift://localhost:9083");
    
    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    env.getConfig().setGlobalJobProperties(hdfsAuthConf);
    env.getConfig().setConfiguration(conf);
    
    1. 在Flink的配置文件中设置fs.hdfs.implhive.metastore.client.factory.class参数,并引用JavaProperties对象。
    execution-mode: batch
    parallelism: 1
    
    fs.hdfs.impl: "org.apache.hadoop.hdfs.DistributedFileSystem"
    fs.hdfs.auth.username: "hadoopuser"
    fs.hdfs.auth.password: "password"
    
    hive.metastore.client.factory.class: "com.google.inject.name.NamedInstance"
    hive.metastore.client.factory.config.resource: "hive-site.xml"
    hive.metastore.uris: "thrift://localhost:9083"
    
    # 引用JavaProperties对象
    jobmanager.rpc.address: "node-1"
    jobmanager.rpc.port: "9241"
    

    这样,你就可以使用Hadoop或者Hive的用户和密码来读取HDFS上的数据了。

    2023-10-11 13:59:09
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Hive Bucketing in Apache Spark 立即下载
    spark替代HIVE实现ETL作业 立即下载
    2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载