`

fuse挂载hdfs 安装配置

 
阅读更多
  1. fuse安装的情况下,需要使用root进行启动配置,如果需要使用其他账号挂载目录:
    echo user_allow_other >> /etc/fuse.conf
    chmod +rx /bin/fusermount
    然后在使用fusemount的命令加上一些选择,数字是用户id和组id -d -o uid=2001 -o  gid=2001
  2. 下载fuse安装包到指定补录:
    #wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.8.4/fuse-2.8.4.tar.gz/download?use_mirror=jaist&r=&use_mirror=jaist  -P /usr/local
     
  3. 解压fuse-2.8.4.tar.gz:
    #tar -zxvf fuse-2.8.4.tar.gz
     
  4. 安装配置fuse:
    #cd fuse-2.8.4
    #./configure 
    #make 
    #make install 
    #modprobe fuse
     注意,当make时可能会提示:无法找到makefile错误而导致无法编译,可能是gcc没有安装,检查后是否安装了gcc,如果没有安装则执行如下命令: centos
    #yum-y install gcc
     安装完毕后 执行make & make install  以及modprobe fuse命令
    vim /etc/sysconfig/modules/my.modules  
    #!/bin/sh 
    modprobe fuse >/dev/null 2>&1 
    chmod +x /etc/sysconfig/modules/my.modules
     
  5. 编译hadoop的libhdfs组件,编译此工具组件需要ant工具编译build java的源码文件,接下来则安装ant工具:
    [root@localhost hadoop]#cd /usr/local/
    [root@localhost hadoop]#wget http://www.meisei-u.ac.jp/mirror/apache/dist/ant/binaries/apache-ant-1.7.1-bin.tar.gz
     
    [root@localhost hadoop]#tar zxvf apache-ant-1.7.1-bin.tar.gz
    [root@localhost hadoop]#mv apache-ant-1.7.1-bin ant
     
  6. 将ant加入到系统环境变量 略过
  7. 正式编译 libhdfs工具组件:
    #cd $HADOOP_HOME/ 
    #ant compile-c++-libhdfs -Dlibhdfs=1 -Dcompile.c++=1 
    #ln -s c++/Linux-$OS_ARCH-$OS_BIT/lib build/libhdfs
     此编译过程需要耐心等待,其中$OS_ARCH-$OS_BIT 是linux的系统位数,请运行:
    #file /bin/ls
     命令查询本机的系统配置,并替换上述ln中的相应参数
  8. 编译fuse-hdfs:
    #cd $HADOOP_HOME
    #ant compile-contrib -Dlibhdfs=1 -Dfusedfs=1
     过程中可能会出现错误:
    create-native-configure:
    
    BUILD FAILED
    /usr/local/hadoop/build.xml:634: Execute failed: java.io.IOException: Cannot run program "autoreconf" (in directory "/usr/local/hadoop/src/native"): java.io.IOException: error=2, No such file or directory
            at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
            at java.lang.Runtime.exec(Runtime.java:593)
            at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:41)
            at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428)
            at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442)
            at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:628)
            at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669)
            at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
            at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
            at org.apache.tools.ant.Task.perform(Task.java:348)
            at org.apache.tools.ant.Target.execute(Target.java:435)
            at org.apache.tools.ant.Target.performTasks(Target.java:456)
            at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
            at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
            at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
            at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
            at org.apache.tools.ant.Main.runBuild(Main.java:851)
            at org.apache.tools.ant.Main.startAnt(Main.java:235)
            at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
            at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
    Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
            at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
            at java.lang.ProcessImpl.start(ProcessImpl.java:65)
            at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
            ... 23 more
    
     请注意红色错误标记,则系统需要安装autoreconf 工具,安装命令如下:
    [root@localhost hadoop]# yum -y install automake autoconf
     接下来继续运行ant编译:
    [root@localhost hadoop]# ant compile-contrib -Dlibhdfs=1 -Dfusedfs=1
     请查看编译过程日志,可能出现错误:
        [javac] Compiling 2 source files to /usr/local/hadoop/build/classes
    
    compile-mapred-classes:
    Trying to override old definition of task jsp-compile
        [javac] /usr/local/hadoop/build.xml:549: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    
    create-native-configure:
         [exec] configure.ac:42: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
         [exec] ../../lib/autoconf/specific.m4:386: AC_USE_SYSTEM_EXTENSIONS is expanded from...
         [exec] ../../lib/autoconf/specific.m4:332: AC_GNU_SOURCE is expanded from...
         [exec] configure.ac:42: the top level
         [exec] configure.ac:42: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
         [exec] ../../lib/autoconf/specific.m4:386: AC_USE_SYSTEM_EXTENSIONS is expanded from...
         [exec] ../../lib/autoconf/specific.m4:332: AC_GNU_SOURCE is expanded from...
         [exec] configure.ac:42: the top level
         [exec] configure.ac:42: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
         [exec] ../../lib/autoconf/specific.m4:386: AC_USE_SYSTEM_EXTENSIONS is expanded from...
         [exec] ../../lib/autoconf/specific.m4:332: AC_GNU_SOURCE is expanded from...
         [exec] configure.ac:42: the top level
         [exec] configure.ac:48: error: possibly undefined macro: AC_PROG_LIBTOOL
         [exec]       If this token and others are legitimate, please use m4_pattern_allow.
         [exec]       See the Autoconf documentation.
         [exec] autoreconf: /usr/bin/autoconf failed with exit status: 1
    
    BUILD FAILED
    /usr/local/hadoop/build.xml:634: exec returned: 1
    
    Total time: 18 seconds
     注意红色的错误标记,接下来检查系统中工具m4是否安装,保险起见,直接运行安装命令:
    [root@localhost hadoop]# yum -y install m4
     没有此错误则继续,运行ant编译命令,错误依旧,则执行安装libtool系统工具组件命令:
    [root@localhost hadoop]# yum -y install libtool
     安装成功后继续执行ant安装命令,问题解决。
  9. 修改fuse配置文件:
    [root@localhost fuse-dfs]# vim $HADOOP_HOME/build/contrib/fuse-dfs/fuse_dfs_wrapper.sh
    
     文件内容如下:
    #
    # Copyright 2005 The Apache Software Foundation
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    
    if [ "$HADOOP_HOME" = "" ]; then
    export HADOOP_HOME=/usr/local/hadoop
    fi
    
    export PATH=$HADOOP_HOME/contrib/fuse_dfs:$PATH
    
    for f in ls $HADOOP_HOME/lib/*.jar $HADOOP_HOME/*.jar ; do
    export  CLASSPATH=$CLASSPATH:$f
    done
    
    if [ "$OS_ARCH" = "" ]; then
    export OS_ARCH=amd64
    fi
    
    if [ "$JAVA_HOME" = "" ]; then
    export  JAVA_HOME=/usr/local/jdk6
    fi
    
    if [ "$LD_LIBRARY_PATH" = "" ]; then
    export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/$OS_ARCH/server:/usr/local/hadoop/build/libhdfs:/usr/local/lib
    fi
    
    ./fuse_dfs $@
    ~               
     将红色标记处修改为自己的路径即可,保存退出
  10. 设置权限:
    chmod +x /data/soft/hadoop-2.20.1/build/contrib/fuse-dfs/fuse_dfs_wrapper.sh 
    chmod +x /data/soft/hadoop-2.20.1/build/contrib/fuse-dfs/fuse_dfs 
    #建立软连接,方便操作
    ln -s /data/soft/hadoop-2.20.1/build/contrib/fuse-dfs/fuse_dfs_wrapper.sh /usr/local/bin 
    ln -s /data/soft/hadoop-2.20.1/build/contrib/fuse-dfs/fuse_dfs /usr/local/bin/ 
    #创建mount目录
    mkdir /mnt/dfs
     
  11. 手动挂载hdfs系统到本地的/mnt/dfs:
    [root@localhost fuse-dfs]# ./fuse_dfs_wrapper.sh  dfs://192.168.170.248:9000 /mnt/dfs  port=9000,server=192.168.170.248
    fuse-dfs didn't recognize /mnt/dfs,-2 
     出现错误 fuse-dfs didn't recognize /dfs,-2 不影响使用
  12. 加入到开机启动项:
    vi /etc/fstab 
    fuse_dfs_wrapper.sh dfs://192.168.1.11:54310 /mnt/dfs    fuse rw,auto 0 0
     
  13. 上传文件到hdfs系统:
    [hadoop@localhost ~]$ hadoop fs -mkdir test
    [hadoop@localhost data]$ hadoop fs -put /usr/local/hadoop/data/input* test
     
  14. 查看本地挂载目录内容:
    [root@localhost fuse-dfs]# ll /mnt/dfs/
     后语:本次安装fuse还算顺利,本文编写文章按照安装次序编排,根据个人系统环境,个别系统插件工具安装可以跳过
分享到:
评论
2 楼 duguyiren3476 2014-12-12  
用的是hadoop 1.2.X
1 楼 kkgoing 2014-11-12  
请问你的是hadoop什么版本啊?我总是在编译hadoop的libhdfs组件的时候报错,编译不成功!还有,现在的hadoop版本比如1.2.1版,是不已经有libhdfs.so,不用自己编译了

相关推荐

    hadoop-fuse-dfs安装.docx

    #### 三、挂载HDFS 1. **挂载前的准备**: - 确保待挂载的本地目录的用户和用户组与HDFS上的对应目录的用户和用户组一致; - 如果HDFS启用了Kerberos认证机制,则需要先执行`kinit`命令进行认证。 2. **挂载命令...

    hdfs-mount:将HDFS挂载为本地Linux文件系统的工具

    使用协议缓冲区直接为FUSE和HDFS连接Linux内核(不需要JavaVM) 针对吞吐量密集型工作负载进行了设计和优化(在可能的情况下,将吞吐量交换为延迟) 完整的流媒体和自动预读支持 并发操作 内存中元数据缓存(非常...

    fuse编译方法

    标题中的“fuse编译方法”指的是在Linux系统中编译并集成FUSE(File System in Userspace)模块,以便能够将Hadoop的HDFS(Hadoop Distributed File System)作为一个用户空间文件系统挂载到本地文件系统的过程。...

    如何编译fuse-dfs

    #### 挂载HDFS 完成上述步骤后,就可以将HDFS挂载到本地文件系统上了。 1. 进入`$HADOOP_HOME/build/contrib/fuse_dfs`目录。 2. 执行挂载命令。 ```bash ./fuse_dfs_wrapper.sh dfs://namenodeIP地址:9000/mnt/...

    HDFS CSI插件加速大数据集群中的Kubernetes.pptx

    2. HDFS FUSE:通过FUSE(用户空间文件系统)在Kubernetes节点上挂载HDFS,但性能可能受限。 3. HDFS CSI基于NFS网关:利用NFS网关,通过CSI提供HDFS存储,增加了Kubernetes的兼容性。 4. Ozone CSI:Ozone是Hadoop...

    5-1+如何让Ozone成为HDFS的下一代分布式存储系统.pdf

    Ozone引入了HCFS API,使得它可以与大数据生态无缝集成,同时提供了S3 Gateway(S3G)以支持S3 API,Goofys用于FUSE挂载,以及Ozone-CSI支持Kubernetes的挂载。这使得Ozone不仅适用于传统的Hadoop应用,还能对接云...

    結合雲端分散儲存與Nutch搜尋引擎之影音網站

    Hadoop通过FUSE挂载HDFS到用户空间中,实现对HDFS文件夹的访问。 #### 六、系统架构与云架构设计 - **系统架构**:从底层硬件设施到顶层应用层面,依次为物理环境、Linux操作系统、Tomcat/Lighttpd Web服务器、...

    基于FUSE的云数据访问与存储优化研究1

    FUSE技术是Linux系统中的一项重要技术,它允许用户空间程序挂载文件系统,无需修改内核代码。FUSE的引入,不仅降低了文件系统开发的难度,还提供了更高的灵活性和扩展性。论文作者正是基于FUSE技术的这些特性,针对...

    使用开源分布式存储系统Alluxio来有效的分离计算与存储.pdf

    在性能和速度方面,Alluxio通过其服务器端API转换功能,将客户端接口转换为原生存储接口,包括HDFS API、S3 API、FUSE HDFS API、Google Cloud API以及Swift API等。Alluxio的这种转换能力不仅包括不同存储系统接口...

    Hadoop Operations (2012.9)

    - **FUSE支持**:通过FUSE(Filesystem in Userspace)技术,可以直接将HDFS挂载到本地文件系统中使用。 - **REST API**:提供了RESTful API,使得非Java应用程序也能轻松地与HDFS交互。 #### 三、MapReduce编程...

    2011计算机峰会资料

    - **下载服务器配置**:每台下载服务器都配置有Nginx作为反向代理、FUSE用于文件系统的挂载、DataNode负责数据存储。硬件方面,每台服务器配备12块SATA硬盘(未使用RAID卡),并配有3块网卡(两外网、一内网)。 ##...

    开源分布式文件系统比较.docx

    此外,虽然Ceph的安装和配置过程可能较为复杂,但其在数据分布和容错性方面的优势使其成为大规模、动态环境的理想选择。 其次,GlusterFS是另一个被广泛使用的分布式文件系统,它以其稳定性著称,适用于大型应用。...

    SeaweedFS 架构说明文档 英文版

    - 将File Storage挂载到客户端用户空间,支持常见的FUSE挂载和Kubernetes持久卷。 5. **Object Storage**: - 对象存储功能,兼容S3接口,用于存储大对象和大数据应用。 6. **Hadoop Compatible File System**...

    开源项目-chrislusf-seaweedfs.zip

    7. **FUSE支持**: 可以通过FUSE(Filesystem in Userspace)挂载为本地文件系统,提供标准的文件操作接口。 **三、seaweedFS的工作原理** seaweedFS分为两个主要组件:Master服务器和Volume服务器。Master服务器...

    FastDFS 分布式存储 实战

    它支持原生API、HTTP等多种通讯协议,也可以通过FUSE挂载进行文件系统访问,但是需要注意的是FastDFS本身不支持POSIX标准。 与其他分布式存储系统相比,如TFS、HDFS、MogileFS、Ceph等,FastDFS具有独特的特点和...

    大数据云计算技术 暴风集团基于hadoop的数据平台总体架构简介(共18页).ppt

    此外,Hadoop还提供了多种数据访问接口,如Hive(类似MySQL的数据仓库)、Pig(数据流编程语言)和FUSE(将HDFS挂载为本地文件系统),增强了数据处理的灵活性。 3. **HLoad**: 这个程序主要用于将日志文件复制到...

    JuiceFS产品介绍和客户案例.pdf

    客户端可以通过FUSE(文件系统用户空间)或SDK来访问JuiceFS,实现文件系统的挂载和应用集成。 JuiceFS产品的优势在于其灵活性、性能、高可用性、无容量规划需求、跨云复制、数据安全性以及高性价比。具体而言,它...

    CCTC 2016 百度王耀-百度的分布式文件系统之路

    - 此外,使用fuse进行调参以提高系统的性能和稳定性也是百度采取的策略之一。 ***DB-NFS的多租户支持 - CCDB-NFS支持通过User和Region进行多租户管理,提供ACL(访问控制列表)和Quota(配额限制)来实现权限隔离...

Global site tag (gtag.js) - Google Analytics