CDH-官文distcp翻译

本文详细介绍了Hadoop distcp命令的使用方法,包括在不同CDH版本间进行数据复制的指导原则,如何在高可用集群间配置并使用distcp,以及在安全集群间复制数据时的kerberos配置。提供了多个实例,如从非安全集群复制数据到另一个集群,以及在使用HDFS透明加密的集群间进行复制的注意事项。

toplink

语法和例子

50070端口是hdfs nn的默认端口

1. 在不同CDH版本之间

必须adhere如下guidelines:

CDH版本必须兼容,s cluster必须比destination cluster低

在高版本CDH的集群运行distcp命令时,这个集群必须是destination cluster。distcp命令在s、t运行都可以,命令本身就包含谁是s、t。

s cluster使用webhdfs协议传输

使用如下的语法

例子:从一个5.7.0版本的cluster到一个5.12版本的,s cluster作为distcp命令的第一个参数

hadoop distcp webhdfs://example57-source.cloudera.com:50070/pathSource hdfs://example512-dest.cloudera.com/pathDest

在配置了HA的集群之间使用distcp额外的配置

You can use distcp to copy files between highly available clusters by configuring access to the remote cluster with the nameservice ID
配置nameservice ID,就可以在HA的集群中使用distcp。配置如下:

1.

在要执行distcp命令的节点上,创建distcpConf目录,将/etc/hadoop/conf下的文件复制到这个目录下。这个目录会在后面的第5步时用到。
以下步骤用distcpConf指代这个目录

2.

在distcpConf中的hdfs-site.xml中,将目标集群的nameservice ID配置到<dfs.nameservices>属性中
注意:如果目标集群的nameservice ID和local cluster相同,要将remote cluster的nameservice ID改掉,nameservice ID必须唯一。
例如,2个nameservice ID都叫nameservice1,将remote cluster的nameservice1改为externalnameservice

<property>
	 <name>dfs.nameservices</name>
	 <value>nameservice1,externalnameservice</value>
</property>

3.

在remote cluster中的/etc/hadoop/conf的hdfs-site.xml中,将涉及到nameservice ID的属性复制到第一步中创建的distcpConf 的hdfs-site.xml的末尾。要复制的属性如下:

dfs.ha.namenodes.<nameserviceID>
dfs.client.failover.proxy.provider.<remote nameserviceID>
dfs.ha.automatic-failover.enabled.<remote nameserviceID>
dfs.namenode.rpc-address.<nameserviceID>.<namenode1>
dfs.namenode.servicerpc-address.<nameserviceID>.<namenode1>
dfs.namenode.http-address.<nameserviceID>.<namenode1>
dfs.namenode.https-address.<nameserviceID>.<namenode1>
dfs.namenode.rpc-address.<nameserviceID>.<namenode2>
dfs.namenode.servicerpc-address.<nameserviceID>.<namenode2>
dfs.namenode.http-address.<nameserviceID>.<namenode2>
dfs.namenode.https-address.<nameserviceID>.<namenode2>

4.

如果在第2步中修改了remote cluster 的nameservice ID,要把第三步中的相关值修改。
以下是个例子,remote cluster中的hdfs-site.xml复制到local cluster的hdfs-site.xml

A remote nameservice called externalnameservice
NameNodes called namenode1 and namenode2
A host named remotecluster.com
<property>
<name>dfs.ha.namenodes.externalnameservice</name>
<value>namenode1,namenode2</value>
</property>

<property>
<name>dfs.client.failover.proxy.provider.externalnameservice</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<property>
<name>dfs.ha.automatic-failover.enabled.externalnameservice</name>
<value>true</value>
</property>

<property>
<name>dfs.namenode.rpc-address.externalnameservice.namenode1</name>
<value>remotecluster.com:8020</value>
</property>

<property>
<name>dfs.namenode.servicerpc-address.externalnameservice.namenode1</name>
<value>remotecluster.com:8022</value>
</property>

<property>
<name>dfs.namenode.http-address.externalnameservice.namenode1</name>
<value>remotecluster.com:20101</value>
</property>

<property>
<name>dfs.namenode.https-address.externalnameservice.namenode1</name>
<value>remotecluster.com:20102</value>
</property>

<property>
<name>dfs.namenode.rpc-address.externalnameservice.namenode2</name>
<value>remotecluster.com:8020</value>
</property>

<property>
<name>dfs.namenode.servicerpc-address.externalnameservice.namenode2</name>
<value>remotecluster.com:8022</value>
</property>

<property>
<name>dfs.namenode.http-address.externalnameservice.namenode2</name>
<value>remotecluster.com:20101</value>
</property>

<property>
<name>dfs.namenode.https-address.externalnameservice.namenode2</name>
<value>remotecluster.com:20102</value>
</property>

5. 不同场景下distcp的例子

{1} 从非安全集群复制

hadoop --config linux节点目录/distcpConf distcp hdfs://<nameservice>/<source_directory> <target directory>

{2} 从安全集群复制

命令

hadoop --config linux节点目录/distcpConf distcp -Dmapreduce.job.hdfs-servers.token-renewal.exclude=<nameservice>  hdfs://<nameservice>/<source_directory> <target directory>

例子

hadoop --config linux节点目录/distcpConf distcp -Dmapreduce.job.hdfs-servers.token-renewal.exclude=ns1 hdfs://ns1/xyz /tmp/test

如果s、t使用了加密,使用-skipcrccheck -update,如果不用可能会报错,因为文件的CRC可能会不同。
对于CDH 5.12.0及更高版本,在使用HDFS透明加密的集群之间的distcp,必须包含exclude参数

在安全集群之间使用distcp时kerberos的配置

本节中提到的指导原则仅适用于以下示例部署:

1. 2个集群有不同的kerberos realm(本节用SOURCE 和 DESTINATION为例)

2. 2个集群的kerberos的realm已经配置的双向互信。或者配了第三方的common realm(比如ldap)

3. 2个集群的CDH版本在5.3.4以上

如果环境如上,使用下表在集群上配置kerberos 委托令牌 ,基于信任的方向,可以使用mapreduce.job.hdfs-servers.token-renewal.exclude属性去指示2个集群上的RM去跳过或执行NN节点的委托令牌 重认证
注意:.>=5.12.0,如果2个集群使用了HDFS透明加密,必须使用mapreduce.job.hdfs-servers.token-renewal.exclude属性

公司krb互信文档

2个集群的realm名字不同

1. 在2个集群分别执行如下命令,添加krbtgt的主体

2. 在2个集群上修改krb5.conf,分别在[realms]和[domain_realm]中添加对方的信息。

只需要在kdc所在节点的krb5.conf中修改???

3. 修改源集群的core-site.xml

4. 修改目标集群的core-site.xml

5. 2个集群同时配置hdfs的受信任的kerberos realm

6. 在2个集群的hosts中添加对方的主机名

7. 互信验证

在目的集群中认证源集群的主体
kinit 源集群的主体

内容概要:本文详细介绍了网络安全等级保护工作的核心技术标准和具体要求,涵盖多个方面,包括网络安全等级保护的主要技术标准、访问控制要素及其分类、ARP地址欺骗的原理及防范措施、数字证书的含义与分类、单位与公安机关网监部门的配合方式、数据库常见威胁及工具测试注意事项等。此外,文章还深入探讨了多项标准的具体用途和内容,如《网络安全等级保护定级指南》《网络安全等级保护基本要求》《网络安全等级保护测评要求》等,以及等级测评的工作流程、风险及规避措施,并针对具体案例提出了优化建议。最后,文章还涉及了云安全、工控系统、物联网设备、移动互联等多个领域的安全要求和技术措施。适用人群:本文适用于网络安全从业人员、系统管理员、信息安全工程师、IT审计师、企业信息安全负责人等,尤其是那些需要深入了解和实施网络安全等级保护工作的人员。使用场景及目标:①帮助读者理解网络安全等级保护工作的核心标准和技术要求;②指导网络安全从业人员在实际工作中应用这些标准和技术,确保信息系统符合国家法规和行业标准;③为企业提供具体的安全建设和整改建议,提升整体网络安全水平;④为测评机构和测评人员提供详细的测评流程和方法,确保测评工作的准确性和公正性。其他说明:本文不仅提供了理论知识,还结合了大量实际案例和应用场景,使读者能够更好地理解和应用网络安全等级保护的各项要求。此外,文章还涵盖了最新的法律法规和技术标准,确保内容的时效性和权威性。在学习过程中,读者应注意结合实际工作场景,深入理解并实践这些标准和要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值