千家信息网

如何使用FUSE挂载HDFS

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章给大家介绍如何使用FUSE挂载HDFS,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。因为要使用iozone和dd对HDFS做个简单的测试,所以需要将HDFS挂载到本地,挂
千家信息网最后更新 2025年02月01日如何使用FUSE挂载HDFS

这篇文章给大家介绍如何使用FUSE挂载HDFS,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

因为要使用iozone和dd对HDFS做个简单的测试,所以需要将HDFS挂载到本地,挂载过程不复杂,但中间出现了各种各样的错误,弄了有半个星期,终于测试完毕。现将整个挂载及解决错误的过程记录下来,大家共同学习讨论。

一、FUSE安装

安装步骤很简单

1、解压 $ tar zxvf fuse-2.9.3.tar.gz

2、进入fuse目录 $ cd /usr/local/fuse-2.9.3

3、$ ./configure

4、$ make

5、$ make install

6、$ modprobe fuse (自动载入fuse模块)

二、HDFS挂载

1、增加系统配置

$ sudo vi /etc/profile

增加如下内容

重启集群,发现所有的datanode都在启动后的几秒钟内挂掉了,查看日志,发现报错:

FATAL ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Shutting down. Incompatible version or revision.DataNode version '1.2.1' and revision '1503152' and NameNode version '1.2.2-SNAPSHOT' and revision ' and hadoop.relaxed.worker.version.check is not enabled and hadoop.skip.worker.version.check is not enabled

版本不匹配,还以为是ant编译过程中使用的包的版本问题,结果使用ant clean命令把之前编译的都清除了。以为这下应该恢复正常了,结果更糟糕的问题出现了。集群可以正常启动了,通过命令行hadoop dfsadmin -report能够看到每个节点都处于正常状态,但是就是不能通过浏览器查看。

三、iozone测试

iozone测试比较简单,iozone主要用来测试操作系统文件系统性能的测试工具,该工具所测试的范围主要有,Write , Re-write, Read, Re-Read, Random Read, Random Write, Random Mix, Backwards Read, Record Rewrite, Strided Read, Fwrite, Frewrite, Fread, Freread, Mmap, Async I/O。使用iozone可以在多线程、多cpu,并指定cpu cache空间大小以及同步或异步I/O读写模式的情况下进行测试文件操作性能。

命令为:iozone -s 128k -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 8 -r 1m -B > test.txt

参数解释:0=write/rewrite, 1=read/re-read, 2=random-read/write 3=Read-backwards, 4=Re-write-record, 5=stride-read, 6=fwrite/re-fwrite, 7=fread/Re-fread, 8=random mix, 9=pwrite/Re-pwrite, 10=pread/Re-pread, 11=pwritev/Re-pwritev, 12=preadv/Re-preadv). =pread/Re-pread, 11=pwritev/Re-pwritev, 12=preadv/Re-preadv,-t表示线程数,-r block size 指定一次写入/读出的块大小,-s file size 指定测试文件的大小,-f filename 指定测试文件的名字,完成后会自动删除(这个文件必须指定你要测试的那个硬盘中),-F file1 file2... 指定多线程下测试的文件名,-B或-b指定到输出文件。iozone参数很多,可以根据使用需求具体学习某个参数。

四、dd测试

dd测试并不是标准的磁盘和文件系统读写测试工具,只是Linux系统的一个磁盘命令,但dd命令实现的磁盘拷贝功能,可以间接地反映磁盘的读写能力,因此,在测试磁盘和文件系统的读写性能时,也常常通过dd命令进行测试。dd测试读写命令分开,

写入操作:dd if=/dev/zero of=/tmp/hdfs/zerofiles bs=4M count=1240 conv=fdatasync

读取操作:dd if=/tmp/hdfs/zerofiles of=/dev/null bs=4M count=1240

其中,if表示input file,即输入文件;of表示output file,即输出文件;bs表示一次读取或写入的块大小;count表示写入或读取多少块;conv表示用指定的参数转换文件。实际使用时,可以根据自己的需求进行调整。

五、总结

最后,简单总结一下遇到了几个问题及解决办法

1、FUSE编译出错: ./configure后出现error

解决办法:在Ubuntu12.04LTS环境下,使用fuse-2.7.4或fuse-2.8.5两个版本都会出现各种各样的问题,但换用fuse-2.9.3后,不再报错,其他版本没有进行尝试;

2、版本不匹配:使用ant对hadoop的模块fuse-dfs编译后,datanode不能启动,且报版本不匹配错误

解决办法:在hadoop/conf/core-site.xml配置文件中增加配置信息(每个节点都要修改)

hadoop.relaxed.worker.version.check

true

hadoop.skip.worker.version.check

true

由于默认配置中这两个属性值都为false,集群启动时会检查版本,不匹配时datanode就会拒绝连接到

namenode上,造成集群中节点个数为0,也就是datanode没有启动;

3、不能通过浏览器查看集群状态:

原因:ant clean之后,之前编译过的模块都被清除了,猜测清除的模块可能涉及到浏览器显示这一部分的实现

解决办法:重新将FUSE模块编译回来,不要轻易清除编译模块

4、测试文件不能写入HDFS

原因:普通ubuntu用户对hadoop hdfs没有写入权限

解决办法:开放hadoop目录的权限,命令为: hadoop fs -chmod 777 /user/hadoop

关于如何使用FUSE挂载HDFS就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

测试 文件 命令 版本 编译 模块 系统 办法 磁盘 集群 参数 大小 配置 内容 工具 性能 浏览器 线程 节点 过程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国软件开发现状与趋势 学什么网络技术能接单 济南软件开发都是什么语言 中国地质数据库 本地网址数据库 我国网络安全法律颁布实施顺序 reviews数据库是什么 学了数据库怎么去实际应用 培养青少年网络安全意识 imf联合国数据库 国内软件开发公司排行官网 个人软件开发资质有哪些条件 数据库多表查询优化 新华互联网科技广告央视 网络安全意识形态校园 奉贤区软件开发售后服务 数据库多表查询使用聚合函数 OFFICE画图软件开发 长宁区一站式网络技术服务有哪些 天津高新区网络安全产业基地 与数据库技术相关的知识 软件开发语言哪个好就业 数据库安全性分类 网络安全政治心得2000字 网络安全比赛的意义 数据库中数据表是怎么设置的 山东京学豆豆科技互联网有限公司 怎么让名师云课堂连接服务器 找客户的软件开发 学校图书馆数据库技术
0