Alluxio集成Hadoop
准备工作
为了运行Alluxio集群在多个机器上,必须部署Alluxio服务到这些机器上。可以下载伴随特定Hadoop版本的二进制AlLxio包,也可以从Alluxio源码中编译。
当从源码中编译时,Alluxio默认是伴随着Apache HDFS的2.2.0版本编译的。为了编译其他的Hadoop版本,需要配置正确的Hadoop选项,在Alluxio安装目录下执行一下命令
mvn install -P<YOUR_HADOOP_PROFILE> -D<HADOOP_VERSION> -DskipTests
Alluxio提供预定义的构建配置包含hadoop-1,hadoo-2(默认开启),hadoop-3分别对应Hadoop的1.x,2.x,3.x版本,如果你想构建Alluxio伴随着特定的Hadoop版本,你可以在命令中配置版本,例如:
mvn install -Phadoop-2 -Dhadoop.version=2.7.1 -DskipTests
mvn install -Phadoop-3 -Dhadoop.version=3.0.0 -DskipTests
如果构建成功,应该能够在${ALLUXIO_HOME}/assembly/server/target目录中看到alluxio-assembly-server-1.8.1-jar-with-dependencies.jar。
基本安装
为了配置Alluxio使用HDFS作为底层的存储,你需要修改conf/alluxio-site.properties。如果文件不存在,从模板中创建这个配置文件
cp conf/alluxio-site.properties.template conf/alluxio-site.properties
编辑conf/alluxio-site.properties,设置底层的存储地址为HDFS namenode地址和你想要挂在到Alluxio的HDFS目录,例如,如果你想要映射HDFS根目录到Alluxio中,可以设置存储地址为hdfs://node-master:9000;如果你仅仅想挂载HDFS的/alluxio/data目录到Alluxio,可以设置存储地址为hdfs://node-master:9000/alluxio/data
运行伴随着HDFS的本地Alluxio
首先确保你的HDFS集群正在运行,映射到Alluxio的目录存在,开启Alluxio服务
bin/alluxio format
bin/alluxio-start.sh local
如果你的ramdisk还没有挂载,可能是因为你是第一次运行Alluxio,可能需要添加SudoMount选项。
bin/alluxio-start.sh local SudoMount
将会在本地开启一个Alluxio master和一个Alluxio worker。你可以通过http://localhost:19999 进行访问
一定要在alluxio-site.properties文件中解开alluxio.master.hostname的注释,要不然启动不了Alluxio worker
运行一个简单的例子程序
bin/alluxio runTests
如果伴随着权限错误的测试失败,确保当前用户有挂载到Alluxio的HDFS目录的读写权限,默认登录用户是当前用户,为了修改用户,可以在conf/alluxio-site.properties文件中设置alluxio.security.login.username的值。
当运行例子成功之后,你可以访问http://localhost:50070 来验证由Alluxio创建的文件和目录,在这个测试中,将会看到/default_tests_files/BASIC_CACHE_THROUGH的文件。
关闭Alluxio
bin/alluxio-stop.sh local
高级的设置
指定HDFS配置文件位置
当HDFS没有默认的配置,你需要配置Alluxio服务能够访问正确的HDFS配置文件,只要这个被设置,使用Alluxio客户端的应用不需要进行特定的配置了。
有两种方法可以实现:
- 复制或者做象征性链接从Hadoop安装目录中的hdfs-site.xml,core-site.xml到${ALLUXIO_HOME}/conf,确保这个设置是在所有运行Alluxio服务的机器上。
- 可以在conf/alluxio-site.properties文件中设置alluxio.underfs.hdfs.configuration的值来指向hdfs-site.xml,core-site.xml。确保这个设置是在所有运行Alluxio服务的机器上。
alluxio.underfs.hdfs.configuration=/path/to/hdfs/conf/core-site.xml:/path/to/hdfs/conf/hdfs-site.xml
HDFS Namenode的高可用模式
为了配置Alluxio工作在HDFS namenodes的高可用模式下,首先指定HDFS配置文件位置。
除此之外,设置底层的存储地址是hdfs://nameservice(nameservice是在core-site.xml中设置的HDFS服务名字)。为了挂载HDFS的子目录到Alluxio,而不是整个HDFS根目录,修改底层的存储地址为:hdfs://nameservice/alluxio/data.
alluxio.master.mount.table.root.ufs=hdfs://nameservice/
用户权限映射
Alluxio支持POSIX-like文件的用户和权限检测,为了确保在HDFS上目录,文件的权限和Alluxio保持一致(例如,在Alluxio,Foo用户创建了一个文件,那么持久化到HDFS上,拥有者也是Foo)。开启Alluxio master和worker进程的用户必须满足以下条件之一
- HDFS super user: 那即是,使用开启HDFS namenode进程的用户来开启Alluxio master和worker进程
- 一个HDFS superuser group的成员,编辑hdfs-site.xml文件,检查dfs.permissions.superusergroup的值,如果这个属性被设置(例如,hdfs),添加开启alluxio进程的用户到这个组(hdfs),如果这个属性没有设置,添加一个group到这个属性,运行Alluxio的用户添加到这个新增的group。
上面的用户设置仅仅用来标识开启Alluxio master和worker进程。只要Alluxio服务开启,没有必要使用这个用户来运行Alluxio客户端应用。
挂载特定版本的HDFS
有许多方法可以挂载特定版本的HDFS到Alluxio。在挂载特定HDFS版本之前,确保你构建了那个特定HDFS版本的客户端,你可以在Alluxio安装目录中的lib下看是否存在对应的客户端。
如果你从源码中构建Alluxio,可以构建额外的客户端jar包,通过在Alluxio源码中的underfs目录下执行mvn命令。例如执行下面的命令可以构建2.6.0版本的客户端。
mvn -T 4C clean install -Dmaven.javadoc.skip=true -DskipTests \
-Dlicense.skip=true -Dcheckstyle.skip=true -Dfindbugs.skip=true \
-Pufs-hadoop-2 -Dufs.hadoop.version=2.6.0
使用Mount命令
当使用mount Alluxio shell命令时,通过传递alluxio.underfs.version参数来指定挂载的HDFS版本,如果没有版本被设置,默认Alluxio当做HDFS2.2版本。
例如,下面的命令可以挂载两个HDFS部署,一个是HDFS1.2,另一个是HDFS2.7.分别挂载到/mnt/hdfs12和/mnt/hdfs27下面。
./bin/alluxio fs mount \
--option alluxio.underfs.version=1.2 \
/mnt/hdfs12 hdfs://namenode1:8020/
./bin/alluxio fs mount \
--option alluxio.underfs.version=2.7 \
/mnt/hdfs27 hdfs://namenode2:8020/
使用alluxio-site.properties
当挂载Alluxio的根目录存储为特定的HDFS版本,可以添加下面的行到alluxio-site.properties文件
alluxio.master.mount.table.root.ufs=hdfs://namenode1:8020
alluxio.master.mount.table.root.option.alluxio.underfs.version=1.2
支持的HDFS版本号
Alluxio v1.8.1支持下面的HDFS版本作为alluxio.underfs.version参数的值
Apache Hadoop: 1.0, 1.2, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.1
Alluxio集成Hadoop的更多相关文章
- Eclipse集成Hadoop插件
一.Eclipse集成Hadoop插件 1.在这之前我们需要配置真机上的hadoop环境变量 注:在解压tar包的时候普通解压会出现缺文件的现象,所以在这里我们需要用管理员的方式启动我们的解压软件(我 ...
- 【读书笔记】Elasticsearch集成Hadoop最佳实践
前言 本文记录[Elasticsearch集成Hadoop最佳实战]读书笔记 本书总计209页,共7章节,计划时间:20180712-20180717 (每天至少40页) 本文代码地址: https: ...
- Hue集成Hadoop和Hive
一.环境准备 1.下载Hue:https://dl.dropboxusercontent.com/u/730827/hue/releases/3.12.0/hue-3.12.0.tgz 2.安装依赖 ...
- Elasticsearch集成Hadoop最佳实践.pdf(内含目录)
Elasticsearch服务器开发(第2版) 介绍: ElasticSearch是一个开源的分布式搜索引擎,具有高可靠性,支持非常多的企业级搜索用例.ElasticsearchHadoop作为一个完 ...
- eclipse中集成hadoop插件
1.下载并安装eclipse2.https://github.com/winghc/hadoop2x-eclipse-plugin3.下载插件到eclipse的插件目录 4.配置hadoop安装目录 ...
- cdh版本的hue安装配置部署以及集成hadoop hbase hive mysql等权威指南
hue下载地址:https://github.com/cloudera/hue hue学习文档地址:http://archive.cloudera.com/cdh5/cdh/5/hue-3.7.0-c ...
- Alluxio+HDFS+MapReduce集成及测试
目录 1.在 HDFS 上配置 Alluxio 1.1.节点角色 1.2.软件版本 1.3.准备工作 1.3.1.设置 SSH 免密登录 1.3.2.安装 JDK 1.3.3.安装 Hadoop 1. ...
- Hadoop集成
Hadoop集成 长期以来,我每开个系列,只有兴趣写一篇,很难持之与恒.为了克服这个长久以来的性格弱点,以及梳理工作半年的积累.最近一个月会写两篇关于Mongo在地理大数据方面的实践和应用,一篇关 ...
- MongoDB集群与LBS应用系列(二)--与Hadoop集成
长期以来,我每开个系列,只有兴趣写一篇,很难持之与恒.为了克服这个长久以来的性格弱点,以及梳理工作半年的积累.最近一个月会写两篇关于Mongo在地理大数据方面的实践和应用,一篇关于推荐系统的初期准备过 ...
随机推荐
- Ubuntu下如何修改文件或者文件夹的权限
Ubuntu下如何修改文件或者文件夹的权限------chmod的亲身测试 具体原理如下: Linux系统下如何修改文档及文件夹(含子文件夹)权限,我们来看一下. 一 介 ...
- 面试之三:JVM类加载机制-类加载各阶段说明和类加载器
一.类生命周期:共7个阶段 类从被加载到虚拟机内存中开始,到卸载出内存.整个生命周期包括:加载.验证.准备.解析.初始化.使用和卸载7个阶段. 其中验证.准备.解析3个部分统称为连接. 类加载的过程: ...
- Groovy基本句法
Groovy基本句法 Gradle作为一个构建工具自然不会自己去创造一门语言来支撑自己,那么它用的是哪门子语言呢?什么语言能写成这样: task hello { doLast { println 'H ...
- VMware虚拟机下安装CentOS7.0超详细图文教程
1.本文说明: 官方的第一个文本档案.也就是0_README.txt,大概意思是这样(渣翻译,但是大概意思还是有的). CentOS-7.0-1406-x86_64-DVD.iso:这个镜像(DVD ...
- Windows7 x64系统下安装Nodejs并在WebStorm下搭建编译less环境
1. 打开Nodejs官网http://www.nodejs.org/,点“DOWNLOADS”,点64-bit下载“node-v0.10.33-x64.msi”. 2. 下载好后,双击“node-v ...
- eclipse中设置在编译运行项目之前自动保存修改的文件
Window -> Preferences -> General -> Workspace -> “Save automatically before build” Windo ...
- React中ref的用法
在React数据流中,父子组件唯一的通信方式是通过props属性:那么如果有些场景需要获取某一个真实的DOM元素来交互,这时候就要用到React的refs属性. 1.可以给DOM元素添加ref属性 c ...
- OCR技术浅探:特征提取(1)
研究背景 关于光学字符识别(Optical Character Recognition, 下面都简称OCR),是指将图像上的文字转化为计算机可编辑的文字内容,众多的研究人员对相关的技术研究已久,也有不 ...
- IDEA中打包Spark项目提示Error:(16, 48) java: -source 1.5 中不支持 lambda 表达式
在idea中新建了一Spark的项目,在做项目的编译打包的时候,提示如下错误信息: Error:(, ) java: -source 1.5 中不支持 lambda 表达式 (请使用 -source ...
- 跟我学Makefile(一)
1.首先,把源文件编译生成中间代码文件,Windows下.obj文件,unix下.o文件,即Object File.这个动作叫编译(compile) 把大量的Object File合并执行文件,叫做链 ...