有三种方法可以基于Hadoop分布式文件系统(HDFS)从Apache Hadoop集群中的数据复制到一个MAPR集群:
- 如果HDFS集群使用相同版本的RPC协议的那MAPR用途(目前版本4)中,使用
DistCp使用
通常情况下,如下所述。 - 如果您要复制非常少量数据,使用
HFTP
。 - 如果HDFS集群和MAPR集群不使用RPC协议,或同一版本,如果由于某些其他原因上面的步骤不起作用,你可以推从HDFS集群的数据。
下面的部分描述了每种方法。
从HDFS中的数据复制到使用MAPR DistCp使用
要执行此操作时,您需要提供以下信息:
<NameNode>
-在HDFS集群中的NameNode的IP地址或主机名<NameNode端口>
-端口用于连接到NameNode会在HDFS集群<HDFS path>
-路径,从中你打算将数据复制HDFS的目录<MapR-FS path>
-中您打算复制HDFS数据的MAPR集群的路径<FILE>
-在HDFS路径的文件
请执行下列步骤:
- 从MAPR集群中的节点,尝试
Hadoop的FS-LS
,以确定是否MAPR群集可以与HDFS集群成功通信: - 如果
hadoop的FS-LS
命令成功,尝试的hadoop fs的猫
,以确定MAPR集群能否从HDFS集群上的指定路径读取文件内容: - 如果您能够与HDFS集群通信和读取文件内容,使用
DistCp使用
从HDFS集群中的数据复制到MAPR集群:maprfs :/ / / ...
' 是不是印刷错误。
从HDFS中的数据复制使用HFTP到MAPR
要执行此操作时,您需要提供以下信息:
<NameNode>
-在HDFS集群中的NameNode的IP地址或主机名<NameNode HTTP端口>
-关于在HDFS集群的NameNode的HTTP端口<HDFS path>
-路径,从中你打算将数据复制HDFS的目录<MapR-FS path>
-中您打算复制HDFS数据的MAPR集群的路径
执行目标群集上运行以下命令,使用DistCp使用
过HFTP复制文件:
例如,使用默认的HTTP端口上的NameNode的:
请注意,在“三重斜线maprfs :/ / / ...
' 是不是印刷错误。
从一个HDFS集群推送数据
执行从MAPR客户端或节点(有或者任何一台电脑以下步骤MAPR核
或MAPR客户端
安装)。有关设置一个MAPR客户端的详细信息,请参阅设置客户。
要执行此操作时,您需要提供以下信息:
<input path>
- HDFS的路径源数据<output path>
-的MAPR-FS路径到目标目录<MapR CLDB IP>
-在MAPR群集上的主CLDB节点的IP地址
- 登录为
根
用户(或使用sudo的
以下命令)。 - 创建目录
的/ tmp / maprfs客户端/
Apache的Hadoop的JobClient节点上。 - 从MAPR客户端或任何MAPR节点将以下文件复制到
/ tmp目录/ maprfs客户端/
目录:- / opt/mapr/hadoop/hadoop-0.20.2/lib/maprfs-0.1.jar,
- / opt/mapr/hadoop/hadoop-0.20.2/lib/zookeeper-3.3.2.jar
- / opt/mapr/hadoop/hadoop-0.20.2/lib/native/Linux-amd64-64/libMapRClient.so
- 在Apache Hadoop的JobClient节点上正确地安装文件:
- 如果你是一个32位的客户端上,使用
的Linux-I386-32
代替Linux的AMD64-64
以上。
- 如果你是一个32位的客户端上,使用
- 如果JobTracker的是从JobClient节点不同的节点,复制和安装文件给JobTracker节点以及使用上述步骤。
- 在JobTracker的节点,设置
fs.maprfs.impl = com.mapr.fs.MapRFileSystem
在$ HADOOP_HOME / conf /中核心的site.xml
。 - 重新启动JobTracker的。
- 你可以将数据通过运行现在复制到MAPR集群
DistCp使用
Apache的Hadoop集群的JobClient节点上。例如: