CDH-官文distcp翻译

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 源集群的主体

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CDH-6.3.2是由Cloudera提供的一个开源的Hadoop生态系统版本。CDH包含了许多Apache项目,如Hadoop、HBase、Hive、Impala等,并且集成了Cloudera自家开发的一些工具和服务。 要下载CDH-6.3.2,首先需要访问Cloudera官网(www.cloudera.com)。在官网上,可以找到下载页面,其中包含了各个版本的CDH。 在下载页面上,可以找到CDH-6.3.2的下载链接。点击相关链接后,会跳转到下载页面。在下载页面上,可以选择各个组件的二进制文件、文档以及示例代码等。 选择相应的组件二进制文件后,会开始下载CDH-6.3.2的安装包。下载的速度取决于网络连接的速度和服务器的负载情况。 一旦下载完成,就可以在本地进行安装。在安装之前,需要确保系统满足CDH的运行要求,如硬件配置和操作系统版本等。 CDH-6.3.2的安装过程是相对复杂和耗时的,需要仔细按照官方提供的文档进行操作。安装过程涉及到配置各个组件的参数、设置集群的配置文件以及启动服务等等。 一旦安装完成,就可以开始使用CDH-6.3.2了。CDH提供了一个Web界面,可以通过浏览器访问进行集群管理和监控。同时,也可以使用相应的命令行工具来操作和管理集群。 总结来说,要下载CDH-6.3.2,首先需要访问Cloudera官网的下载页面,选择相应的组件二进制文件进行下载。然后,按照官方文档的指引进行安装、配置和启动。最后,通过Web界面或命令行工具来管理和操作集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值