• C程序访问hadoop出现的各种编译错误和运行时各种类DefFound异常的解决方法



    当C程序编译但一到运行就告诉你缺configuration,  logging等类,反正遇到缺类的情况就网CLASSPATH中加×。jar的路径吧;

    注意 CLASSPATH是在文件里搜索类;(没有递归搜索)

    而PATH是在文件里搜索文件(递归式搜索)

    编译时出现各种hdfs.h找不到:

    当我像下面写makefile文件就没问题了:

    HADOOP_INSTALL=/usr/local/hadoop
    JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386
    PLATFORM=Linux-i386-32
    CPPFLAGS= -I$(HADOOP_INSTALL)/src/c++/libhdfs
    LIB = -L$(HADOOP_INSTALL)/c++/Linux-i386-32/lib
    LIB += -I${JAVA_HOME}/include
    libjvm=${JAVA_HOME}/jre/lib/i386/client/libjvm.so
    LDFLAGS += -lhdfs
    
    test: test.c
    	gcc $?  $(CPPFLAGS) $(LIB) $(LDFLAGS) $(libjvm) -o $@
    
    clean:
    	rm test
    


    在运行时各种类或库so文件找不到

    我的~/.bashrc添加配置的环境变量:

    就正常了:


    export HADOOP_INSTALL=/usr/local/hadoop
     export HADOOP_JARDIR=${HADOOP_INSTALL}/jardir
     export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$HADOOP_JA    RDIR/hadoop-core-1.0.4.jar:$HADOOP_JARDIR/hadoop-tools-1.0.4.jar:$HADOOP_JAR    DIR/commons-configuration-1.6.jar:$HADOOP_JARDIR/commons-logging-1.1.1.jar:$    HADOOP_JARDIR/commons-logging-api-1.0.4.jar:$HADOOP_JARDIR/log4j-1.2.15.jar:    $HADOOP_JARDIR/commons-lang-2.4.jar
    

    1.如果要删除某个变量可用:

    unset 变量名


    2.当要修改:
    set 变量名


    3.当要临时添加一个变量:
    export 变量名= 


    4.当要永久,则改配置文件吧;

    /etc/profile

    ~/.bashrc

    在里面添加:

    export 变量名=

  • 相关阅读:
    day5 元组、列表、字典和集合
    day4 字符串类型和列表类型的详细caozu
    day3 数据类型
    预习
    python基础
    计算机基础——老年人上网冲浪手册
    pycharm操作指北
    day1 计算机基础知识
    Securing a Laravel API in 20 minutes with JWTs
    Testing Api using PHPUnit Laravel
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3106780.html
Copyright © 2020-2023  润新知