JavaClient With HDFS

news/2024/5/20 1:56:10 标签: HDFS

序言

在使用Java创建连接HDFS的客户端时,可以设置很多参数,具体有哪些参数呢,只要是在部署HDFS服务中可以设置的参数,都是可以在连接的时候设置. 我没有去验证所有的配置是否都可以验证,只是推测cuiyaonan2000@163.com

依据 

创建HDFS的构造函数如下所示:

 网上比较常用的是get() 方式.,  同时还提供了3种,无论哪种 Configuration都是必须要填写的,

根据它们的实现其实只传递一个Configuration就可以了,像HDFS的路径URI 和操作用户的Name 都可以放置在Configuration中

首先要知道

在搭建HDFS服务中使用dfs.replication来配置 每个block的备份数量.

这里主要是想说的是想上传文件的备份数量其实也是可以设置放进Configuration中的cuiyaonan2000@163.com. 我们打个断点查看创建后的Configuration中的参数就可以明白.

首先我们看updatingResource是我们在初始化Configuration中会初始化的Map.里面记录了HDFS的配置信息默认从哪里去取 如果我们没有设置的话.

 但是当我们使用configuration.set(key,value) 修改过后,则不会显示源文件的名称,而是显示programatically 表示连接程序做了修改,以连接程序的设置为主,不再从服务器上的文件中读取cuiyaonan2000@163.com

比如我们修改了fs.defaultFS的值,则变为如下所示:

 原来是

那当我们如果设置了fs.defaultFS则会在如下属性中体现.

如上的定义如下所示

private Properties properties;


/**
 * Stores the mapping of key to the resource which modifies or loads 
 * the key most recently
 */
private Map<String, String[]> updatingResource;

UserGroupInformation

只有用户登录的设置有点区别,但是不耽误我们使用,具体实现可以了解如下的源码

  /**
   * Get a filesystem instance based on the uri, the passed
   * configuration and the user
   * @param uri of the filesystem
   * @param conf the configuration to use
   * @param user to perform the get as
   * @return the filesystem instance
   * @throws IOException
   * @throws InterruptedException
   */
  public static FileSystem get(final URI uri, final Configuration conf,
        final String user) throws IOException, InterruptedException {
    String ticketCachePath =
      conf.get(CommonConfigurationKeys.KERBEROS_TICKET_CACHE_PATH);
    UserGroupInformation ugi =
        UserGroupInformation.getBestUGI(ticketCachePath, user);
    return ugi.doAs(new PrivilegedExceptionAction<FileSystem>() {
      @Override
      public FileSystem run() throws IOException {
        return get(uri, conf);
      }
    });
  }

UserGroupInformation官网的API地址:https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/security/UserGroupInformation.html

 


http://www.niftyadmin.cn/n/232291.html

相关文章

解决流水线瓶颈、提升编码效率的五个方法(上篇)

不是吹牛&#xff0c;但我所管理的开发团队在软件开发速度上表现出色&#xff0c;能够高质量地编写代码&#xff0c;并在白噪声的陪伴下保持高效。 但就像所有的故事一样&#xff0c;一开始并不是这样的&#xff0c;甚至相去甚远。我们经历了时间、沟通、合作、失败、成功以及…

【Python OpenCV】第七天:图像上的算术运算

文章目录 一、目标二、图像加法三、图像混合四、按位运算一、目标 本期目标: 学习图像上的算术运算,加法,减法,位运算等;将要学习的函数与有:cv2.add(),cv2.addWeighted() 等。二、图像加法 你可以使用函数 cv2.add() 将两幅图像进行加法运算,当然也可以直接使用 num…

mac终端使用代理网络

在终端命令行中&#xff0c;配置代理。 以使用 ClashX 代理客户端为例&#xff0c;HTTP 代理端口为 7890 &#xff0c;Socks5 代理端口为 7891。端口是可修改的。HTTP 代理或 Socks5 代理&#xff0c;配置时选其中一种复制到终端即可。 点击 ClashX > 复制终端代理命令&am…

Python解析CANoe录制的asc文件

Python解析CANoe录制的asc文件 一、背景 由于很多时候我们需要单纯分析一些报文数据,筛选或者一些故障报文,这个时候,用CANoe打开太占用设备了,而且只能过滤到某一帧报文,当我们能够使用python解析数据的时候,我们可以精确到某一个字节上,这样能够是我们的分析更加精准…

ChatGPT浪潮之下,BAT迎来重塑时刻

ChatGPT的长时间发酵&#xff0c;让整个3月份成了国内赶ChatGPT风潮的爆发月&#xff0c;不仅资本市场上各种概念轮番涌现&#xff0c;就连沉闷许久的中文互联网世界&#xff0c;也处处洋溢着“久违”的兴奋。在3月底举办的博鳌亚洲论坛上&#xff0c;腾讯集团高级执行副总裁汤…

人工智能实验二:约束满足问题

一、实验目的 求解约束满足问题&#xff1b;使用回溯搜索算法求解八皇后问题。 二、实验平台 课程实训平台https://www.educoder.net/paths/369 三、实验内容及步骤 实训内容&#xff1a;2-4 第六章 约束满足问题 1.问题描述 八皇后问题是指在一个 88 的棋盘上摆放八个皇…

MySQL数据库,数据的约束

目录 1.数据的约束 1.1约束的类型 1.2NULL约束 1.3UNIQUE约束 1.4DEFAULT约束 1.5PRIMARY KEY约束 1.6FOREIGN KEY约束 1.数据的约束 首先&#xff0c;创建一个名为test的数据库&#xff1a; mysql> create database test charset utf8; Query OK, 1 row affected …

[Java]Session机制

什么是Session Session是另一种记录客户状态的机制&#xff0c;不同的是Cookie保存在客户端浏览器中&#xff0c;而Session保存在服务器上。客户端浏览器访问服务器的时候&#xff0c;服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需…