0

我正在尝试在 S3 文件系统上设置 Tachyon。对于 HDFS,tachyon 有一个名为 TACHYON_UNDERFS_HDFS_IMPL 的参数,该参数设置为“org.apache.hadoop.hdfs.DistributedFileSystem”。有谁知道 S3 是否存在这样的参数?如果有,它的价值是什么?

提前感谢您的帮助!

4

1 回答 1

1

您提到的 Hadoop FS 类型(org.apache.hadoop.hdfs.DistributedFileSystem)只是接口,它符合您的需求。相反,Tachyon 基于远程 dfs 的 uri 中指定的方案创建 s3n 文件系统实现,该方案配置了TACHYON_UNDERFS_ADDRESS。对于亚马逊,您需要指定如下内容:

export TACHYON_UNDERFS_ADDRESS=s3n://your_bucket

注意这里的“s3n”,而不是“s3”。

您需要使用 s3 进行 其他设置(另请参阅在文件系统和http://tachyon-project.org/Setup-UFS.html下在 S3 上设置 Tachyon 时出错):

  1. 在 ${TACHYON}/bin/tachyon-env.sh 中:将密钥 ID 和密钥添加到TACHYON_JAVA_OPTS

    -Dfs.s3n.awsAccessKeyId=123
    -Dfs.s3n.awsSecretAccessKey=456 
    
  2. 发布 s3n Hadoop FileSystem 实现所需的额外依赖项,版本取决于安装的 Hadoop 版本。它们是:commons-httpclients-* 和 jets3t-*。为此,请按照上述链接之一中的说明发布 TACHYON_CLASSPATH。这可以通过在导出 CLASSPATH 之前在 ${TACHYON}/libexec/tachyon-config.sh 中添加TACHYON_CLASSPATH的导出来完成:

    export TACHYON_CLASSPATH=~/.m2/repository/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar:~/.m2/repository/net/java/dev/jets3t/jets3t/0.9.0/jets3t-0.9.0.jar
    
    export CLASSPATH="$TACHYON_CONF_DIR/:$TACHYON_JAR:$TACHYON_CLASSPATH":
    
  3. 启动 Tachyon 集群:

    ./bin/tachyon format
    ./bin/tachyon-start.sh local 
    

通过 Web 界面检查其可用性: http://localhost:19999/

在日志中:

    ${TACHYON}/logs
  1. 您的core-site.xml应包含以下部分,以确保您与 Tachyon 集成(请参阅 Spark 参考http://tachyon-project.org/Running-Spark-on-Tachyon.html以获取来自 scala 的配置)

    • fs.defaultFS - 指定 Tachyon 主主机端口(以下是默认值)
    • fs.default.name - fs的默认名称,和之前一样
    • fs.tachyon.impl - Tachyon 的 hadoop.FileSystem 实现提示
    • fs.s3n.awsAccessKeyId - 亚马逊密钥 ID
    • fs.s3n.awsSecretAccessKey - 亚马逊密钥

       <configuration>
         <property>
           <name>fs.defaultFS</name>
           <value>tachyon://localhost:19998</value>
         </property>
         <property>
           <name>fs.default.name</name>
           <value>tachyon://localhost:19998</value>
           <description>The name of the default file system.  A URI 
                        whose scheme and authority determine the  
                        FileSystem implementation.                    
           </description>
         </property>
         <property>
           <name>fs.tachyon.impl</name>
           <value>tachyon.hadoop.TFS</value>
         </property>
         ...
         <property>
           <name>fs.s3n.awsAccessKeyId</name>
           <value>123</value>
         </property>
         <property>
           <name>fs.s3n.awsSecretAccessKey</name>
           <value>345</value>
         </property>
         ...
       </configuration>
      
  2. 使用 tachyon 方案和主主机端口引用任何路径:

    tachyon://master_host:master_port/path
    

    使用默认 Tachyon 主主机端口的示例:

    tachyon://localhost:19998/remote_dir/remote_file.csv
    
于 2015-03-07T16:32:42.043 回答