Tachyon0.6.4+Spark1.3+hadoop2.6.0 配置教程详解

2023-10-14 17:20

本文主要是介绍Tachyon0.6.4+Spark1.3+hadoop2.6.0 配置教程详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

本文在安装前已经配置好了spark1.3和hadoop2.6,因项目需求需要搭建tachyon,但是搭建过程中遇到了很多很多很多的问题,写下本文用来记录这一路上所踩过的坑 
吐槽一句:tachyon的官方文档不是很完善啊,完全按照他的做肯定成功不了。。。

单节点安装

先说单点,单点搞定,集群就简单了 
安装tachyon,官网(https://github.com/amplab/tachyon/releases)下载了最新版本的二进制包,然后按照官方的教程一步一步来,首先是配置local(http://www.tachyon-project.org/Running-Tachyon-Locally.html)模式的,官网的教程非常的简单,我本以为可以一气呵成搞定tachyon,结果。。。

第一步:将下载好的tachyon-0.6.4-bin.tar.gz解压:
              chmod 755 tachyon-0.6.4-bin.tar.gz 
              tar -xvfz tachyon-0.6.4-bin.tar.gz 
第二步:配置conf/tachyon-env.sh:
              mv tachyon-env.sh.tmplate tachyon-env.sh
第三步:修改tachyon-env.sh
             export JAVA="$JAVA_HOME/bin/java"
             export TACHYON_MASTER_ADDRESS=master.hadoop(注:你本机的hostname)
             export TACHYON_UNDERFS_ADDRESS=/home/hadoop/tachyon
             export TACHYON_WORKER_MEMORY_SIZE=1GB
             export TACHYON_UNDERFS_HDFS_IMPL=org.apache.hadoop.hdfs.DistributedFileSystem
第四步:  把conf/slaves 和conf/works 中的localhost都改为master.hadoop
第五步: ./bin/tachyon format
第六步: ./bin/tachyon-start.sh local

注意:若非root用户会出现权限不足的问题,修改/etc/sudoers,在root下面添加你的用户权限:

vim /etc/sudoers
root    ALL=(ALL)       ALL
hadoop  ALL=(ALL)       ALL(添加这一行)

第一次失败

在运行./bin/tachyon format 的时候报了如下错误: 
(如果没遇到可以跳过这一步)

Formatting Tachyon Worker @ master.hadoop
/opt/tachyon-0.6.4-uncomp/bin/tachyon: line 243: /../bin/java: 没有那个文件或目录

咦?是没有安装java吗?不应该啊,因为我的java是手工安装的,所以tachyon去默认的目录下去寻找java没有找到 

但是我也配置了JAVA_HOME啊,的确是个很奇怪的问题。接下来咱们看看/conf/tachyon-env.sh文件中脚本是咋写的:

if [ -z "$JAVA_HOME" ]; then
    if [ -d /usr/lib/jvm/java-7-oracle ]; then
      export JAVA_HOME=/usr/lib/jvm/java-7-oracle
    else
      # openjdk will set this
      if [ -d /usr/lib/jvm/jre-1.7.0 ]; then
        export JAVA_HOME=/usr/lib/jvm/jre-1.7.0
      fi
    fi
  fi

这里显示很有可能没有读到JAVA_HOME,在脚本中加入测试代码结果显示确实没有读到JAVA_HOME,目前我也不知道为什么,如果有人知道的话希望能给我留言。 

这个问题的解决方法: 
在文件开头重新 export JAVA_HOME=/opt/jdf1.7 
搞定!

第二次失败

将本地文件系统改为hdfs: 
将tachyon-env.sh中的TACHYON_UNDERFS_ADDRESS修改为:

export TACHYON_UNDERFS_ADDRESS=hdfs://master.hadoop:8020/tachyon

其中8020的端口取决于你得hadoop core.site文件中的端口 

修改过后format,结果得到如下错误:

Exceptionin thread "main" java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

之所以有这个错误是因为tachyon目前仅支持hadoop1.x版本的hdfs,因此若想让tachyon支持2.6.0就需要重新编译tachyon, 

下载源码(https://github.com/amplab/tachyon/releases), 
使用mvn进行编译: 
编译之前需要修改tachyon目录下的pom.xml来指定hadoop版本:

 <properties>
    <test.profile>local</test.profile>
    <test.output.redirect>true</test.output.redirect>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.7</java.version>
    <hadoop.version>2.6.0</hadoop.version>
    <glusterfs-hadoop.version>2.3.13</glusterfs-hadoop.version>
    <libthrift.version>0.9.1</libthrift.version>
    <cxf.version>2.7.0</cxf.version>
    <jetty.version>7.6.15.v20140411</jetty.version>
    <slf4j.version>1.7.2</slf4j.version>
    <powermock.version>1.5.4</powermock.version>
    <log4j.version>1.2.17</log4j.version>
    <apache.curator.version>2.1.0-incubating</apache.curator.version>
    <license.header.path>build/license/</license.header.path>
    <checkstyle.path>build/checkstyle/</checkstyle.path>
    <findbugs.path>build/findbugs/</findbugs.path>
  </properties>

(或者你不修改pom文件直接在运行的时候加上-Dhadoop.version=2.6.0也可) 

然后再源码根目录下运行 
mvn clean package -Dmaven.test.skip=true 
-Dmaven.test.skip=true 是为了跳过测试,如果你没修改源码可以不用测试 
因为国内的网络环境(感谢GFW),中间会出现很多次错误,这些都不用管,反复重新编译就行了,mvn会从上次失败的地方重新编译,所以不用担心。 
编译成功后,和之前的配置方法再来一遍 
搞定!

第三次失败

现在tachyon和hadopp之间已经兼容了,下面在spark中使用tachyon:

第一步:在hadoop/etc/hadoop/core-site.xml文件,加入如下内容:
<configuration>
  <property>
    <name>fs.tachyon.impl</name>
    <value>tachyon.hadoop.TFS</value>
  </property>
</configuration>
第二步:测试,将文件存到hdfs:
     将hdfs中的文件存储到tachyon中:
     val s = sc.textFile("hdfs://master.hadoop:8020/你的文件")
     s.saveAsTextFile("tachyon://master.hadoop:19998/")
第三步:在spark-default中添加;
      spark.tachyonStore.url=tachyon://master.hadoop:19998
第四步:测试,将RDD cache 到tachyon中:
      val rdd = sc.textFile(inputPath)
      rdd.persist(StorageLevel.OFF_HEAP)

注意:千万不要按照官网所说,在spark的conf下创建core-site.xml 

,而是要在hadoop的etc/hadoop/core-site.xml添加,不然会覆盖了hadoop的配置文件,后果会很严重

但是,在用spark和tachyon交互的时候,发生了如下错误:

15/05/20 13:35:48 ERROR : Invalid method name: 'getDataFolder'
15/05/20 13:35:48 ERROR : Invalid method name: 'user_getFileId'
15/05/20 13:35:48 ERROR TachyonBlockManager: Failed 10 attempts to create tachyon dir in /tmp_spark_tachyon/spark-95f8e8e1-f8f8-4172-8371-b9ba36c277a3/<driver>

找不到方法,这个错误的原因是,spark的版本又和tachyon不兼容,我们有两个解决方法: 

1.对spark重新编译,修改tachyon的版本 
2.使用tachyon0.5.0,亲测可用哦

集群安装

到目前为止,单机版的环境就全部跑通了,对于集群那就很简单了:

1.修改slaves文件,添加你的work节点的hostname
2.将整个tachyon文件分别拷贝到各个机器上
3.运行./bin/tachyon format 
4./bin/tachyon-start.sh all SudoMount 

注意:别忘了在每台slave上修改sudoers,此外,如果你是非root用户就要用 all SudoMount,否则就算修改了sudoers也会提示:

无法创建目录"/mnt/ramdisk": 权限不够

最后来一张:最终的ui: 

这里写图片描述


http://blog.csdn.net/wzq294328238/article/details/45868711

这篇关于Tachyon0.6.4+Spark1.3+hadoop2.6.0 配置教程详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/wuzhongdehua1/article/details/46956527
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/211991

相关文章

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

详解python pycharm与cmd中制表符不一样

《详解pythonpycharm与cmd中制表符不一样》本文主要介绍了pythonpycharm与cmd中制表符不一样,这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽... 这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽度不同导致的。在PyChar

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方