hdfs关闭kerberos

HDFS禁用Kerberos步骤详解
本文档详细介绍了如何将HDFS的Kerberos认证关闭,包括修改配置文件以恢复原始设置,并解决因端口未恢复导致的登录错误。同时,强调了更新客户端配置以确保顺利连接HDFS的重要性。

将配置修改回来

hadoop.security.authentication: Kerberos -> Simple 
hadoop.security.authorization: true -> false 
dfs.datanode.address: -> from 1004 (for Kerberos) to 50010 (default) 
dfs.datanode.http.address: -> from 1006 (for Kerberos) to 50075 (default)

如果端口没有改回来,报错

2019-06-04 11:01:31,082 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain
java.io.IOException: Failed on local exception: java.net.SocketException: 权限不够; Host Details : local host is: "fuzhou202"; destination host is: (unknown):0;
        at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:772)
        at org.apache.hadoop.ipc.Server.bind(Server.java:524)
        at org.apache.hadoop.ipc.Server.bind(Server.java:496)
        at org.apache.hadoop.hdfs.net.TcpPeerServer.<init>(TcpPeerServer.java:115)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initDataXceiver(DataNode.java:1059)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:1311)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:465)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2592)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2479)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2526)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2708)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2732)
Caused by: java.net.SocketException: 权限不够
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at org.apache.hadoop.ipc.Server.bind(Server.java:507)
        ... 10 more



hadoop fs -ls /
ls: SIMPLE authentication is not enabled.  Available:[TOKEN, KERBEROS]

需要更新客户端配置才能登陆
在这里插入图片描述

### 如何将 Elasticsearch 的数据备份到启用了 Kerberos 认证的 HDFS 中 为了实现这一目标,需要完成以下几个方面的配置: #### 1. **启用 Kerberos 认证** 在 Java 应用程序中操作启用了 Kerberos 认证的 HDFS 文件系统时,需设置 `hadoop.security.authentication` 参数为 `kerberos` 并加载相应的 JAAS 配置文件[^1]。 ```java System.setProperty("java.security.krb5.conf", "/path/to/krb5.conf"); Configuration conf = new Configuration(); conf.set("hadoop.security.authentication", "kerberos"); UserGroupInformation.setConfiguration(conf); UserGroupInformation.loginUserFromKeytab("principal@REALM.COM", "/path/to/keytab.file"); ``` 上述代码片段展示了如何通过 KeyTab 文件登录并验证身份。此部分确保客户端能够安全访问受保护的 HDFS 资源。 --- #### 2. **安装 HDFS 插件** 为了让 Elasticsearch 支持存储快照到 HDFS 上,必须先安装官方提供的 HDFS 存储插件。对于不同版本的 Elasticsearch 和 HDFS,请选择匹配的插件版本[^3]。 执行命令如下: ```bash bin/elasticsearch-plugin install repository-hdfs ``` 完成后重启整个 Elasticsearch 集群以应用更改。 --- #### 3. **修改 elasticsearch.yml 配置** 编辑 Elasticsearch 的核心配置文件 `elasticsearch.yml` 来指定 HDFS 远程仓库路径以及关闭 JSM(Java Security Manager),从而避免因权限不足而导致的操作失败[^2][^3]。 以下是必要的参数调整: ```yaml path.repo: ["hdfs://namenode-host:port/path"] security.manager.enabled: false ``` 注意替换其中的 `namenode-host` 及端口号为你实际部署环境中的 NameNode 地址信息。 --- #### 4. **创建远程快照库** 定义一个新的快照位置指向已配置好的 HDFS 系统,并测试连接是否正常工作。 运行 REST API 请求来注册新库: ```json PUT _snapshot/my_hdfs_backup { "type": "hdfs", "settings": { "uri": "hdfs://namenode-host:port/", "path": "/backup/es-snapshots" } } ``` 如果一切顺利,则可以继续下一步骤;否则检查网络连通性和认证状态等问题。 --- #### 5. **执行全量或增量备份** 最后利用内置功能定期自动保存索引副本或者手动触发即时存档过程。 示例:立即生成名为 my_snapshot_001 的完整镜像档案。 ```json POST /_snapshot/my_hdfs_backup/my_snapshot_001?wait_for_completion=true ``` 以上即完成了基于 Kerberized HDFS 的 ES 数据持久化方案构建流程概述。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值