tachyon0.7.0分布式配置

自己编译tachyon0.7.0关联hadoop2.6.0

由于使用编译好的tachyon和自己的hadoop连接不上,总是出现下面这个问题:

org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4 at org.apache.hadoop.ipc.Client.call(Client.java:1070)

无奈只好自己编译了。

在这里还是承接一面两篇文章,拥有一个master一个slave.

安装maven

首先安装mavenubuntu下使用命令

1
sudo apt-get install maven

编译tachyon

首先下载tachyon0.7.0

1
wget https://github.com/amplab/tachyon/archive/v0.7.0.zip

然后解压并且移动到我们的大数据文件夹

1
mv v0.7.0 tachyon-0.7.0.zip
unzip tachyon-0.7.0.zip
mv tachyon-0.7.0.zip /usr/local/bigdata/
cd tachyon-0.7.0

然后开始编译,记得加上自己的hadoop版本,他默认的好像是hadoop1.x的版本,会造成一种错误

org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4 at org.apache.hadoop.ipc.Client.call(Client.java:1070)

编译的时候要用mvn,所以在源码文件夹下执行:

1
mvn -Dhadoop.version=2.6.0 clean package -DskipTests=true

额,我在虚拟机中编译了大概20分钟。
编译完成后,在源码目录下创建几个文件夹:

1
mkdir journal
mkdir ramdisk

配置tachyon

首先在.bashrc中添加环境变量:

1
#tachyon
export TACHYON_HOME=/usr/local/bigdata/tachyon-0.7.0
export PATH=$TACHYON_HOME/bin:$PATH

然后将conf文件夹下的tachyon-env.sh.template改名为tachyon-env.sh

1
cp conf/tachyon-env.sh.template conf/tachyon-env.sh
vim conf/tachyon-evn.sh

修改其中的配置文件:

1
export TACHYON_MASTER_ADDRESS=master
#export TACHYON_UNDERFS_ADDRESS=$TACHYON_HOME/underFSStorage
export TACHYON_UNDERFS_ADDRESS=hdfs://master:9000

-Dtachyon.master.journal.folder=$TACHYON_HOME/journal     #这一条不改好像也没多少关系

然后设置日志的输出位置,默认是命令行中。

1
vim conf/log4j.properties

=后面写上地址就好了.

tachyon.logs.dir=/usr/local/bigdata/tachyon-0.7.0/logs

接下来在conf下创建core-site.xml:

1
vim conf/core-site.xml

在里面添加:

1
2
3
4
5
6
<configuration>
  <property>
    <name>fs.tachyon.impl</name>
    <value>tachyon.hadoop.TFS</value>
  </property>
</configuration>

最后,在conf/workers里面添加slave.
然后将tachyon-0.7.0这个文件夹分发到slave节点.

启动tachyon

启动之前首先应该格式化:

1
bin/tachyon format

因为我不是用root账户登录的,所以只能用下面这条命令运行:

1
bin/tachyon-start.sh all SudoMount

输入密码后,即可完成启动,可以在master:19999查看情况,也可以通过jps去查看。

!提示,如果是虚拟机启动失败或者是tacnyon能启动,确无法跑任务,可以参考下面的文章:http://innerac.github.io/2017/01/15/48/