文档章节

整合 Tachyon 运行 Hadoop MapReduce(译)

Ryan-瑞恩
 Ryan-瑞恩
发布于 2015/10/20 15:47
字数 995
阅读 291
收藏 0

整合 Tachyon 运行 Hadoop MapReduce

本指南描述如何使Tachyon 与 Hadoop MapReduce 结合运行,这样你可以很容易运行 hadoop  MapReduce 程序文件存储在 Tachyon上。

前提

这部分额外的首要条件数是已经 Java我们也假设你已经安装了 Tachyon 和 Hadoop 根据 Local Mode or Cluster Mode

如果运行 Hadoop 1.x 集群,确保 hadoop/conf/core-site.xml 文件中你的Hadoop 安装的 conf 目录添加过以下属性:

<property>
  <name>fs.tachyon.impl</name>
  <value>tachyon.hadoop.TFS</value>
</property>
<property>
  <name>fs.tachyon-ft.impl</name>
  <value>tachyon.hadoop.TFSFT</value>
</property>

这将运行你的 MapReduce 任务使用 Tachyon 去输入和输出文件。如果你为Tachyon 使用 HDFS作为底层存储, 可能需要将这些属性添加到 hdfs-site.xml 配置文件中。(译者注:MapReudce计算的过程中,会有中间结果的输出到磁盘,这里使用Tachyon后,中间结果将会放到Tachyon中,Tachyon中的结果为了保证高容错,需要保持到HDFS上,这点需要注意,否则要是 Tachyon挂了,Tachyon中的数据不能确保正常使用)

如果集群式 2.x 版本的集群,这些属性就不需要添加了。

分布式 Tachyon 运行

为了能使 MapReduce任务通过Tachyon 使用文件,我们需要分发 Tachyon jar 到集群所有的节点上。这将允许的 TaskTracker 和 JobClient 拥有所有必要的可执行通过 Tachyon 的接口。我们根据 Cloudera 指导(guide)提供了三种分发 jars 选项的概述。

假设 Tachyon被用在突出用途,最好是确保 Tachyon jar将长期的驻留在每个节点上,所有我们不依赖 Hadoop DistributedCache 避免分发 jar 到每一个节点带来的网络开销(选项 1),打包 Tachyon 不会显著增加我们 job  jar 文件大小。正由于这个原因,强烈建议考虑这三个选项的三个方面,通过在每个节点安装 Tachyon jar.

  • 为了在每个节点安装 Tachyon,你需要把这个 tachyon-client-0.7.1-jar-with-dependencies.jar 放置在目标目录  /pathToTachyon/clients/client/target 下,每个节点的 $HADOOP_HOME/lib 目录中。然后,重启所有的 TaskTrackers。这种方法的一个缺点是每个新版本更新 jars 必须重新安装。

  • 当使用 hadoop jar ......您也可以通过使用-libjars命令行选项运行 job,指定 /pathToTachyon/clients/client/target/tachyon-client-0.7.1-jar-with-dependencies.jar 作为参数,把jar 放到hadoop的分布式缓存里,在不频繁更新Tachyon jar的情况下,可以(可靠)获取。

  • For those interested in the second option, please revisit the Cloudera guide for more assistance. One must simply package the Tachyon jar in the lib subdirectory of the job jar. This option is the most undesirable since for every change in Tachyon, we must recreate the job jar, thereby incurring a network cost for every job by increasing the size of the job jar.

为了确保 Tachyon 在 JobClient 执行可用,需要将  Tachyon jar 放置在 $HADOOP_HOME/lib 目录下,或者通过改变 hadoop-env.sh 修改 HADOOP_CLASSPATH:

$ export HADOOP_CLASSPATH=/pathToTachyon/clients/client/target/tachyon-client-0.7.1-jar-with-dependencies.jar

这将允许代码创建和提交 job 必要时引用Tachyon。This will allow the code that creates the Job and submits it to reference Tachyon if necessary.

示例

为简单起见,我们假设伪分布式 Hadoop 集群。

$ cd $HADOOP_HOME
$ ./bin/stop-all.sh
$ ./bin/start-all.sh

由于我们是伪分布是集群,复制Tachyon jar 到  $HADOOP_HOME/lib 使其可同时的可被 TaskTracker 和 JobClient 执行是可用的。 现在,我们可以通过以下方式来验证它:

$ cd $HADOOP_HOME
$ ./bin/hadoop jar hadoop-examples-1.0.4.jar wordcount -libjars /pathToTachyon/clients/client/target/tachyon-client-0.7.1-jar-with-dependencies.jar tachyon://localhost:19998/X tachyon://localhost:19998/X-wc

X 在Tachyon 存在文件,wordcount 任务结果在 X-wc 目录下。

例如,你有text 文件在HDFS目录 /user/hduser/getenberg/ ,你可以运行以下:

$ cd $HADOOP_HOME
$ ./bin/hadoop jar hadoop-examples-1.0.4.jar wordcount -libjars /pathToTachyon/clients/client/target/tachyon-client-0.7.1-jar-with-dependencies.jar tachyon://localhost:19998/user/hduser/gutenberg tachyon://localhost:19998/user/hduser/output

以上命令通知 wordcount 从HDFS目录 /user/hduser/gutenberg/  加载文件到Tachyon,然后将输出结果保持到 Tachyon 的 /user/hduser/output 。


© 著作权归作者所有

共有 人打赏支持
Ryan-瑞恩

Ryan-瑞恩

粉丝 152
博文 238
码字总数 184810
作品 0
西安
后端工程师
私信 提问
阿里云 E-MapReduce产品优势及使用场景

E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 产品优势: 与自建集...

凹凹凸曼
2018/09/12
0
0
A16Z 750万美元投资分布式文件系统 Tachyon

据 WSJ消息,Tachyon日前获得了硅谷风投 A16Z 750 万美元 A 轮投资。A16Z 的普通合伙人 Peter Levine 加入 Tachyon 董事会。 根据该项目官网的介绍,Tachyon 是一个以内存为中心的分布式文件...

oschina
2015/03/19
2.2K
3
大数据教程(8.1)mapreduce核心思想

上一章介绍了hadoop的HDFS文件系统的原理及API使用。本章博主将继续对hadoop的mapreduce编程框架进行分享。 mapreduce原理篇 mapreduce是一个分布式运算程序的编程框架,是用户开发“基于had...

em_aaron
2018/11/19
0
0
Pydoop 架构和模块包介绍

背景 Hadoop支持Java以及C/C++开发,其中Hadoop Pipes(C++)支持MapReduce,而Hadoop libhdfs(C)支持HDFS的访问。但Python的解决方案仅能支持Hadoop部分功能,具体如下。 Hadoop Streaming:1...

索隆
2012/09/13
0
0
如何分布式运行mapreduce程序

如何分布式运行mapreduce程序 一、 首先要知道此前提 若在windows的Eclipse工程中直接启动mapreduc程序,需要先把hadoop集群的配置目录下的xml都拷贝到src目录下,让程序自动读取集群的地址后...

Zero零_度
2015/09/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitmq安装教程

RabbitMQ有Windows与Linux版本的,这里先写Windows版本的安装。 以前安装软件总是在百度上找某某安装教程,结果能按照教程安装好的软件真的不多。想起先前以为大牛说的一句话,去官网按照官网...

em_aaron
今天
6
0
Android 贝塞尔曲线实践——波浪式运动

一、波浪效果如下 贝塞尔曲线自定义波浪效果的案例很多,同样方法也很简单,大多数和本案例一样使用二次贝塞尔曲线实现,同样还有一种是PathMeasure的方式,这里我们后续补充,先来看贝塞尔曲...

IamOkay
今天
3
0
Nmap之防火墙/IDS逃逸

选项 解释 -f 报文分段 --mtu 指定偏移大小 -D IP欺骗 -sI 原地址欺骗 --source-port 源端口欺骗 --data-length 指定发包长度 --randomize-hosts 目标主机随机排序 --spoof-mac Mac地址欺骗 ...

Frost729
今天
2
0
带你搭一个SpringBoot+SpringData JPA的环境

不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。 其实我在学完SpringBoot和SpringData JPA了之...

java菜分享
今天
7
0
Chocolatey 在Window搭建一个开发环境

在看了(利用 Chocolatey 快速在 Windows 下搭建一个开发环境)后,准备从零开始 一、准备工作 1、用管理员权限启动:powershell,执行错误请参考(PowerShell因为在此系统中禁止执行脚本的解...

近在咫尺远在天涯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部