使用loader-backup工具备份作业数据
操作场景
通过Loader WebUI或客户端工具loader-tool创建好作业后,可使用loader-backup工具进行数据备份。
- 仅有数据导出的Loader作业才支持数据备份。
- 此工具为Loder的内部接口,供上层组件HBase调用,只支持HDFS到SFTP的数据备份。
前提条件
完成了Loader客户端的安装与配置,具体操作请参见使用命令行运行Loader作业。
操作步骤
- 使用安装客户端的用户登录客户端所在节点,具体操作请参见使用命令行运行Loader作业。
- 执行以下命令,进入“backup.properties”文件所在目录。例如,Loader客户端安装目录为 “/opt/client/Loader/”。
cd /opt/client/Loader/loader-tools-1.99.3/loader-backup/conf
- 执行以下命令,修改“backup.properties”文件的配置参数,参数具体说明如表1所示。
vi backup.properties
server.url = 10.0.0.1:21351,10.0.0.2:12000 authentication.type = kerberos authentication.user = authentication.password= job.jobId = 1 use.keytab = true client.principal = loader/hadoop client.keytab = /opt/client/conf/loader.keytab
表1 配置参数说明 配置参数
说明
示例
server.url
Loader服务的浮动IP地址和端口(21351)。
为了兼容性,此处支持配置多个IP地址和端口,并以“,”进行分隔。其中第一个必须是Loader服务的浮动IP地址和端口(21351),其余的可根据业务需求配置。
10.0.0.1:21351,10.0.0.2:12000
authentication.type
登录认证的方式。
- “kerberos”,表示使用安全模式,进行Kerberos认证。Kerberos认证提供两种认证方式:密码和keytab文件。
- “simple”,表示使用普通模式,不进行Kerberos认证。
kerberos
authentication.user
普通模式或者使用密码认证方式时,登录使用的用户。
keytab登录方式,则不需要设置该参数。
bar
authentication.password
使用密码认证方式时,登录使用的用户密码。
普通模式或者keytab登录方式,则不需要设置该参数。
用户需要对密码加密,加密方法:
- 进入“encrypt_tool”所在目录。例如,Loader客户端安装目录为“/opt/hadoopclient/Loader”,则执行如下命令。
cd /opt/hadoopclient/Loader/loader-tools-1.99.3
- 执行以下命令,对非加密密码进行加密。命令中如果携带认证密码信息可能存在安全风险,在执行命令前建议关闭系统的history命令记录功能,避免信息泄露。
./encrypt_tool 未加密的密码
得到加密后的密文,作为“authentication.password”的取值。
说明:非加密密码中含有特殊字符时需要转义。例如,$符号属于特殊字符,可使用单引号进行转义;非加密密码中含有单引号时可用双引号进行转义,非加密密码中含有双引号应使用反斜杠\进行转义。可参考Shell的转义字符规则。
-
job.jobId
需要执行数据备份的作业ID。
作业ID可通过登录Loader webUI在已创建的作业查看。
1
use.keytab
是否使用keytab方式登录。
- true,表示使用keytab文件登录
- false,表示使用密码登录。
true
client.principal
使用keytab认证方式时,访问Loader服务的用户规则。
普通模式或者密码登录方式,则不需要设置该参数。
loader/hadoop
client.keytab
使用keytab认证方式登录时,使用的keytab文件所在目录。
普通模式或者密码登录方式,则不需要设置该参数。
/opt/client/conf/loader.keytab
- 执行以下命令,进入备份脚本“run.sh”所在目录。例如,Loader客户端安装目录为“/opt/hadoopclient/Loader”。
cd /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-backup
- 执行以下命令,运行备份脚本“run.sh”,进行Loader作业数据备份。系统将数据备份到作业的输出路径同一层目录。
./run.sh 备份数据的输入目录
例如,备份数据的输入目录为“/user/hbase/”,作业的输出路径为/opt/client/sftp/sftp1,其中sftp1只起到一个占位符的作用。执行如下命令,数据将备份到/opt/client/sftp/hbase目录。
./run.sh /user/hbase/