C程式訪問hadoop出現的各種編譯錯誤和運行時各種類DefFound異常的解決方案

來源:互聯網
上載者:User

當C程式編譯但一到運行就告訴你缺configuration,  logging等類,反正遇到缺類的情況就網CLASSPATH中加×。jar的路徑吧;

注意 CLASSPATH是在檔案裡搜尋類;(沒有遞迴搜尋)

而PATH是在檔案裡搜尋檔案(遞迴式搜尋)

編譯時間出現各種hdfs.h找不到:

當我像下面寫makefile檔案就沒問題了:

 

HADOOP_INSTALL=/usr/local/hadoopJAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386PLATFORM=Linux-i386-32CPPFLAGS= -I$(HADOOP_INSTALL)/src/c++/libhdfsLIB = -L$(HADOOP_INSTALL)/c++/Linux-i386-32/libLIB += -I${JAVA_HOME}/includelibjvm=${JAVA_HOME}/jre/lib/i386/client/libjvm.soLDFLAGS += -lhdfstest: test.cgcc $?  $(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 變數名=

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.