更新时间:2024-09-27 16:04:22

在规划与准备使用 AnyBackup备份Hadoop分布式文件系统定时备份恢复前,为防止操作被中断,建议您提前收集好后续操作要使用的Hadoop集群信息。

收集Hadoop分布式文件系统集群信息前,请参考【Hadoop分布式文件系统环境检查】以及【Kerberos认证环境下Hadoop集群获取keytab文件】,确认如下前置条件是否满足:

  • 确认HDFS集群相关服务已开启且未处于安全模式。

  • 能够在需要安装AnyBackup客户端的终端上访问Hadoop分布式文件系统。

  • 若Hadoop分布式文件系统环境开启kerberos认证,则需获取kerberos认证用户名和密码或者keytab文件。

下方Hadoop分布式文件系统集群信息收集表中,信息项1-5为AnyBackup客户端软件安装部署时需要输入的信息,为后续创建Hadoop虚拟客户端做铺垫。信息项6-10为添加Hadoop虚拟客户端时所需要输入的信息,目的是为了与Hadoop虚拟客户端通信,为后续操作Hadoop分布式文件系统的备份和恢复做铺垫。

Hadoop分布式文件系统集群信息收集表

编号 信息项 获取方式及说明
1 Hadoop native library path libhdfs.so文件所在目录。libhdfs.so 是HDFS的客户端库,它提供了一组 C 语言的 API,用于与 HDFS 进行交互,对 HDFS 的读写操作需要用到这个动态链接库。
可参考如下命令获取:find / -name libhdfs.so
建议缩小搜索范围,一般在hadoop安装目录内。
2 the jvm library path libjvm.so文件所在目录。libjvm.so 是 Java 虚拟机(JVM)的共享库,包含了 Java 运行时环境所需的一些核心函数和类。需要调用 Java 代码时,就需要链接到 libjvm.so。
可参考如下命令获取:find / -name libjvm.so
建议缩小搜索范围,一般在jdk安装目录内。
3 the absolute path of file krb5.conf krb5.conf是Kerberos的客户端配置文件。若HDFS集群开启Kerberos认证,需填写krb5.conf文件的绝对路径。Kerberos认证时需要从此配置文件加载参数。
可参考如下命令获取:find / -name krb5.conf
建议缩小搜索范围,一般krb5.conf文件路径默认在 /etc 下。
4 the kinit bin file path 若HDFS集群开启Kerberos认证,还需填写kinit bin文件所在目录。
可参考如下命令获取:find / -name kinit
建议缩小搜索范围,一般默认在 /usr/bin 下。
5 Hadoop bin file path hadoop bin文件所在目录。
可参考如下命令获取:find / -name hadoop
建议缩小搜索范围,一般在hadoop安装目录内。
6 NameNode IP+端口号
连接固定NameNode管理的HDFS (与HDFS URL二选一即可)
fs.defaultFSdfs.namenode.servicerpc-address配置项中获取。
  • Apache默认为9000
  • CDH默认为8022
  • FusionInsight默认为25006
  • TDH默认为8020
  • HDP默认为8020
具体查询方法可参考下方【Hadoop集群NameNode端口号查询】
7 HDFS URL
连接指定集群的HDFS。
选择HDFS URL方式可避免NameNode主备切换引起的备份恢复失败问题。
HDFS的fs.defaultFS配置项。
默认为default,会自动读取本地配置文件中的URL,备份本地集群数据时建议保持默认值。
具体查询方法可参考下方【Hadoop集群fs.defaultFs配置项查询】
8 用户名
连接HDFS时使用的用户名。
备份恢复HDFS目录需要用户有对应目录的读写权限,使用HDFS管理员账户可避免很多权限问题。
联系管理员获取
测试环境可自行创建用户
9 HDFS客户端 HDFS客户端是指安装了AnyBackup客户端软件的客户端,详见安装客户端。建议HDFS客户端选择DataNode节点并提高客户端数量能有效提升备份效率。
10 keytab路径
HDFS客户端上对应的HDFS用户的keytab文件全路径(只有开启Kerberos认证的Hadoop集群需要填写该配置项)
使用kinit命令认证生成,详见下方【Kerberos认证环境下Hadoop集群获取keytab文件】

Hadoop集群NameNode端口号查询

Apache Hadoop集群NameNode端口号查询

Apache Hadoop版本NameNode端口号默认为9000,可通过配置文件查看。

  • 集群为单namenode时,查看Hadoop安装目录下配置文件core-site.xml的配置项fs.defaultFS

    fs.defaultFS配置项查询方法:

    使用ssh登录客户端系统后台,输入find / -type f -name core-site.xml命令,找到HDFS的core-site.xml文件所在路径,获取core-site.xml文件中fs.defaultFS配置项。建议缩小搜索范围,一般在hadoop安装目录内。

    image4.png

  • 集群为双namenode时,查看Hadoop安装目录下配置文件hdfs-site.xml的配置项dfs.namenode.rpc-address

    dfs.namenode.rpc-address配置项查询方法:

    使用ssh登录客户端系统后台,输入find / -type f -name hdfs-site.xml命令,找到HDFS的hdfs-site.xml文件所在路径,获取hdfs-site.xml文件中的dfs.namenode.rpc-address配置项。建议缩小搜索范围,一般在hadoop安装目录内。

    image5.png

CDH集群NameNode端口号查询

CDH版本NameNode端口号默认为8022,可登陆Cloudera Manager管理界面,查看HDFS服务的配置dfs.namenode.servicerpc-address对应的值。

image6.png

FusionInsight集群NameNode端口号查询

FusionInsight版本NameNode端口号默认为25006,可登陆FusionInsight Manager管理界面,查看HDFS服务的配置dfs.namenode.servicerpc.port对应的值。

image7.png

TDH集群NameNode端口号查询

TDH版本NameNode端口号默认为8020,可登陆TDH管理界面,查看HDFS服务的配置namenode.rpc-port对应的值。

image8.png

HDP集群NameNode端口号查询

HDP版本NameNode端口号默认为8020,可登陆Ambari管理界面,查看HDFS服务的配置dfs.namenode.rpc-port对应的值。

image9.png

Hadoop集群fs.defaultFs配置项查询

若您希望通过HDFS URL方式创建虚拟客户端,需收集Hadoop集群fs.defaultFS配置项。

fs.defaultFS配置项查询方法:

使用ssh登录客户端系统后台,输入find / -type f -name core-site.xml命令,找到HDFS的core-site.xml文件所在路径,获取core-site.xml文件中fs.defaultFS配置项。建议缩小搜索范围,一般在hadoop安装目录内。

HDFS URL即为fs.defaultFs配置项的值。

image10.png

Kerberos认证环境下Hadoop集群获取keytab文件

Apache/CDH环境下keytab文件获取

测试环境中若需自行准备用户,可参考下面步骤创建用户,以该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。为例:

  1. 创建用户

    在kadmin服务节点输入如下命令(其他节点需认证管理员账户后使用kadmin进行创建):

    > kadmin.local -q "addprinc 该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。"

  2. 导出keytab

    使用keytab方式认证时需要导出keytab,在kadmin服务节点输入如下命令:

    > kadmin.local -q "ktadd -k /tmp/hdfs.keytab -norandkey 该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。"

    注意:导出keytab时务必加上 -norandkey 参数,否则该用户会重新初始化密码,原有密码、keytab都将失效。

  3. 把用户加入supergroup

    在Hadoop任意节点执行下面命令:

    > useradd hdfs #创建linux同名用户

    > groupadd supergroup #创建supergroup组

    > usermod -a -G supergroup hdfs #把用户加入supergroup组

    > hdfs dfsadmin –refreshUserToGroupsMappings #HDFS刷新用户到组的映射

FusionInsight环境下keytab文件获取

FusionInsight单独封装了一套用户系统,需在管理界面创建用户。

  1. 添加角色

    登录管理后台,依次点击系统 > 权限 > 角色 > 添加角色,输入角色名称,如hdfs_test,资源权限勾选HDFS组件的集群管理操作权限,点击确定。

    image11.png

  2. 添加用户

    登录管理后台,依次点击系统 > 权限 > 用户 > 添加用户,输入用户名,根据需要选择人机或机机用户,并加入supergroup,如下图:

    image12.png

  3. 导出keytab

    登录管理后台,依次点击系统 > 权限 > 用户,点击用户名后方的更多 > 下载认证凭据,选择集群,点击确定。待文件自动生成后指定保存位置,并妥善保管该文件。解压认证凭据文件后可以获取两个文件:krb5.conf文件包含认证服务连接信息,user.keytab文件包含用户认证信息。把凭据上传至客户端解压即可。

    image13.png

    image14.png

TDH环境下keytab文件获取

TDH集群可通过登录Transwarp Manager,选择主页 > Guardian > 角色,在需导出文件的角色所在行,点击服务链接链接,输入Guardian用户名和密码后进入Guardian主页,下载用户的keytab文件。

请确保导出的keytab文件能够认证成功,检验方法为shell客户端输入kinit -kt <keytab_path> <principal>,若认证成功,则能够在客户端本地通过hdfs dfs -ls / 访问hdfs目录。