fuse挂载hadoop2.0.0文件系统hdfs到本地
一、环境配置 1.主机系统:RedHat Enterprise Linux 6.1 (X86_64) Hadoop版本:hadoop-2.0.0-cdh4.3.0 JDK的版本:jdk1.6.0_45 Ant的版本:apache-ant-1.8.2 Maven的版本:apache-maven-3.1.0 2.环境需求: automake,autoconf,m4,libtool,pkgconfig,f
一、环境配置
1.主机系统:RedHat Enterprise Linux 6.1 (X86_64)
Hadoop版本:hadoop-2.0.0-cdh4.3.0
JDK的版本:jdk1.6.0_45
Ant的版本:apache-ant-1.8.2
Maven的版本:apache-maven-3.1.0
2.环境需求:
automake,autoconf,m4,libtool,pkgconfig,fuse,fuse-devel,fuse-libs
3.编译工具的下载及环境变量的设置:
(需要外部下载ant 1.8.2 ,maven 3.1.0,在apache网站下载即可)
安装过程:
#wget http://mirror.bjtu.edu.cn/apache//ant/binaries/apache-ant-1.8.2-bin.zip
#export JAVA_HOME=/usr/java/jdk1.6.0_45
#export HADOOP_HOME=/usr/hadoop/hadoop-2.0.0-cdh4.3.0
#export OS_ARCH=amd64
###i386/amd64 (可选)
#export OS_BIT=64
###32/64 (可选)
#export ANT_HOME=/root/apache-ant-1.8.2
#export PATH=$PATH:$ANT_HOME/bin
#export PATH=/root/apache-maven-3.1.0/bin:$PATH
备注:由于hadoop版本不同,可能会带来很多的问题,主要是它下面的文件目录很多,而且存放文件的路径不一样,所以如果你的版本跟我不同,你需要自己找到文件的路径
#yum -y install fuse fuse-devel fuse-libs
#modprobe fuse (挂载:modprobe 查看:lsmod 卸载:rmmod)
####以上内容也可以添加到环境变量文件/etc/profile中####
二、编译libhdfs
1.在编译libhdfs之前可以先测试下ant ,mvn是否已经配置好:
#ant -version
提示如下:
Apache Ant(TM) version 1.8.2 compiled on December 20 2010
#mvn -version
提示如下:
Apache Maven 3.1.0 (893ca28a1da9d5f51ac03827af98bb730128f9f2;
2013-06-28 10:15:32+0800)
Maven home: /root/apache-maven-3.1.0
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: /usr/java/jdk1.6.0_45/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-131.0.15.el6.x86_64", arch: "amd64", family: "unix"
2、进入安装路径:/usr/hadoop/hadoop-2.0.0-cdh4.3.0/src/hadoop-mapreduce1-project
编译libhdfs,因为libhdfs需要交叉编译,直接到src里面编译会报错,所以需要用ant编译。
注意:OS_ARCH和OS_BIT必须设置,否则会失败。
ant compile -Dlibhdfs=1 -Dcompile.c++=1
遇到的问题:
(1).不能下载ivy.2.2.0.jar包,原因是build.xml 文件里设置的mvnrepo的url出错:
解决办法:
(2).如果编译时出现卡顿(网络问题),可以ant clean 然后再重新编译.遇到hadoop2.0.0.配置文件中的问题:
解决办法:
需要定义reactor.repo的url:
在/usr/hadoop/hadoop-2.0.0-cdh4.3.0/src/hadoop-mapreduce1-project/ivy/ivysettings.xml文件中添加:
override="false"/>
3、编译成功后,提示如下:
........................................
compile:
BUILD SUCCESSFUL
Total time: 9 minutes 38 seconds
........................................
创建动态连接库:
找到libhdfs.so的目录,关于libhdfs.so网上有人说是编译libhdfs后生成的,但是我编译后只生成了两个静态库( libhadooppipes.a和libhadooputils.a)。所以就直接用hadoop自带的,我这个版本hadoop-2.0.0-cdh4.3.0是在$HADOOP_HOME/lib/native这个目录下(如果没有,可以在网上下载:https://github.com/cloudera/impala/tree/master/thirdparty/hadoop-2.0.0-cdh4.3.0),然后将其目录下的库文件全部复制到$HADOOP_HOME/src/hadoop-mapreduce1-project/build/c++/Linux-amd64-64/lib再创建软连接如下
注意:一定要按照hadoop版本去找到对应的目录,再创建链接:
ln -s /usr/hadoop/hadoop-2.0.0-cdh4.3.0/src/hadoop-mapreduce1-project/build/c++/Linux-amd64-64/lib
/usr/hadoop/hadoop-2.0.0-cdh4.3.0/src/hadoop-mapreduce1-project/build/libhdfs
将编译好的动态库文件(.so结尾的文件)路径添加到动态连接中:
#export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$HADOOP_HOME/lib/:/usr/local/lib
:/usr/lib:/usr/hadoop/hadoop-2.0.0-cdh4.3.0/src/hadoop-mapreduce1-project/build/c++/Linux-amd64-64/lib
三、编译fuse-dfs:
(1)编译:
ant compile -Dlibhdfs=1 -Dfusedfs=1
如果编译失败,比较可能的原因是找不到libhdfs,仔细查看下libhdfs的路径,请参看第一步的ln -s,若编译成功后会在fuse-dfs/src目录下生成fuse_dfs可执行程序。如图:
(2)测试:
a.环境配置,然后编辑/etc/fuse.conf,写入以下内容
user_allow_other
mount_max=100
b.编辑$HADOOP_HOME/src/hadoop-mapreduce1-project/build/contrib/fuse-dfs/fuse_dfs_wrapper.sh
if [ "$HADOOP_HOME" = "" ]; then
export HADOOP_HOME=/usr/hadoop/hadoop-2.0.0-cdh4.3.0/src/hadoop-mapreduce1-project/
fi
#******************2013/9/13**********************
export PATH=$HADOOP_HOME/src/hadoop-mapreduce1-project/src/contrib/fuse-dfs/src:$PATH
#*************************************************
if [ "$OS_ARCH" = "" ]; then
export OS_ARCH=amd64
fi
if [ "$JAVA_HOME" = "" ]; then
export JAVA_HOME=/usr/java/jdk1.6.0_45
fi
if [ "$LD_LIBRARY_PATH" = "" ]; then
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$HADOOP_HOME/src/hadoop-mapreduce1-project/build/libhdfs/:$HADOOP_HOME/share/hadoop/hdfs/:/usr/local/lib:/usr/lib
fi
#*************** If dev build set paths accordingly*****************
if [ -d $HADOOP_HOME/src/hadoop-mapreduce1-project/build ]; then
for f in ${HADOOP_HOME}/src/hadoop-mapreduce1-project/build/*.jar ; do
export CLASSPATH=$CLASSPATH:$f
done
for f in $HADOOP_HOME/src/hadoop-mapreduce1-project/build/ivy/lib/Hadoop/common/*.jar ; do
export CLASSPATH=$CLASSPATH:$f
done
export PATH=$HADOOP_HOME/src/hadoop-mapreduce1-project/src/contrib/fuse-dfs:$PATH
fi
./fuse_dfs $@
(3)fuse挂载hdfs:
$mkdir /tmp/dfs
$cd $HADOOP_HOME/build/contrib/fuse-dfs
$./fuse_dfs_wrapper.sh dfs://hadoopmaster:9000 /tmp/dfs
说明:port=9000,server=hadoopmaster
成功提示:INFO fuse_options.c:162 Adding FUSE arg /tmp/dfs
备注:如果你有在hadoop上创建目录或上传文件,才会看到相应的目录文件
(4)卸载hdfs:
fusermount -u /tmp/dfs 或者umount /tmp/dfs
遇到的问题:
(1)挂载hdfs时报错:
./fuse_dfs: error while loading shared libraries: libhdfs.so.0.0.0: cannot open shared object file: No such file or directory
解决办法:
a.查看找不到的动态库:ldd fuse_dfs
b.将找不到的库的绝对路径添加到ld查找的配置文件中:/etc/ld.so.conf
c.运行 ldconfig 重建 /etc/ld.so.cache
四、测试命令
? hdfsclient写
dd if=/dev/zero bs=4096 count=%d | hadoop fs -put - %s/%s-%d.dat
? hdfsclient读
hadoop fs -get %s/f%03d.dat - > /dev/null
? fuse写
dd if=/dev/zero bs=4096 count=%d of=%s/%s-%d.dat
? fuse读
dd if=%s/f%03d.dat bs=4096 of=/dev/null

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

通用矩阵乘法(GeneralMatrixMultiplication,GEMM)是许多应用程序和算法中至关重要的一部分,也是评估计算机硬件性能的重要指标之一。通过深入研究和优化GEMM的实现,可以帮助我们更好地理解高性能计算以及软硬件系统之间的关系。在计算机科学中,对GEMM进行有效的优化可以提高计算速度并节省资源,这对于提高计算机系统的整体性能至关重要。深入了解GEMM的工作原理和优化方法,有助于我们更好地利用现代计算硬件的潜力,并为各种复杂计算任务提供更高效的解决方案。通过对GEMM性能的优

7月29日,在AITO问界第四十万台新车下线仪式上,华为常务董事、终端BG董事长、智能汽车解决方案BU董事长余承东出席发表演讲并宣布,问界系列车型将于今年8月迎来华为干昆ADS3.0版本的上市,并计划在8月至9月间陆续推送升级。 8月6日即将发布的享界S9将首发华为ADS3.0智能驾驶系统。华为干昆ADS3.0版本在激光雷达的辅助下,将大幅提升智驾能力,具备融合端到端的能力,并采用GOD(通用障碍物识别)/PDP(预测决策规控)全新端到端架构,提供车位到车位智驾领航NCA功能,并升级CAS3.0全

在电脑中删除或解压缩文件夹,时有时候会弹出提示对话框“错误0x80004005:未指定错误”,如果遇到这中情况应该怎么解决呢?提示错误代码0x80004005的原因其实有很多,但大部分因为病毒导致,我们可以重新注册dll来解决问题,下面,小编给大伙讲解0x80004005错误代码处理经验。有用户在使用电脑时出现错误代码0X80004005的提示,0x80004005错误主要是由于计算机没有正确注册某些动态链接库文件,或者计算机与Internet之间存在不允许的HTTPS连接防火墙所引起。那么如何

夸克网盘和百度网盘都是现在最常用的储存文件的网盘软件,如果想要将夸克网盘内的文件保存到百度网盘,要怎么操作呢?本期小编整理了夸克网盘电脑端的文件转移到百度网盘的教程步骤,一起来看看是怎么操作吧。 夸克网盘的文件怎么保存到百度网盘?要将夸克网盘的文件转移到百度网盘,首先需在夸克网盘下载所需文件,然后在百度网盘客户端中选择目标文件夹并打开。接着,将夸克网盘中下载的文件拖放到百度网盘客户端打开的文件夹中,或者使用上传功能将文件添加至百度网盘。确保上传完成后在百度网盘中查看文件是否成功转移。这样就

最近有很多网友问小编,hiberfil.sys是什么文件?hiberfil.sys占用了大量的C盘空间可以删除吗?小编可以告诉大家hiberfil.sys文件是可以删除的。下面就来看看详细的内容。hiberfil.sys是Windows系统中的一个隐藏文件,也是系统休眠文件。通常存储在C盘根目录下,其大小与系统安装内存大小相当。这个文件在计算机休眠时被使用,其中包含了当前系统的内存数据,以便在恢复时快速恢复到之前的状态。由于其大小与内存容量相等,因此它可能会占用较大的硬盘空间。 hiber

苹果16系统中版本最好的是iOS16.1.4,iOS16系统的最佳版本可能因人而异添加和日常使用体验的提升也受到了很多用户的好评。苹果16系统哪个版本最好答:iOS16.1.4iOS16系统的最佳版本可能因人而异。根据公开的消息,2022年推出的iOS16被认为是一个非常稳定且性能优越的版本,用户对其整体体验也相当满意。此外,iOS16中新功能的添加和日常使用体验的提升也受到了很多用户的好评。特别是在更新后的电池续航能力、信号表现和发热控制方面,用户的反馈都比较积极。然而,考虑到iPhone14

4月11日,华为官方首次宣布HarmonyOS4.2百机升级计划,此次共有180余款设备参与升级,品类覆盖手机、平板、手表、耳机、智慧屏等设备。过去一个月,随着HarmonyOS4.2百机升级计划的稳步推进,包括华为Pocket2、华为MateX5系列、nova12系列、华为Pura系列等多款热门机型也已纷纷展开升级适配,这意味着会有更多华为机型用户享受到HarmonyOS带来的常用常新体验。从用户反馈来看,华为Mate60系列机型在升级HarmonyOS4.2之后,体验全方位跃升。尤其是华为M

MySQL中.ibd文件的作用详解及相关注意事项MySQL是一种流行的关系型数据库管理系统,数据库中的数据存储在不同的文件中。其中,.ibd文件是InnoDB存储引擎中的数据文件,用于存储表中的数据和索引。本文将对MySQL中.ibd文件的作用进行详细解析,并提供相关代码示例以帮助读者更好地理解。一、.ibd文件的作用:存储数据:.ibd文件是InnoDB存
