欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

libhdfs配置使用

系統(tǒng) 1994 0

libhdfs簡(jiǎn)介

libhdfs是hadoop為C/C++訪問(wèn)分布式文件系統(tǒng)提供的JNI接口。

配置環(huán)境:

linux:CentOS5.5

hadoop:hadoop-0.21.0

jdk:jdk1.6.0_26

libhdfs環(huán)境變量配置

把libhdfs需要的jar包加入CLASSPATH中。因?yàn)椴恢浪璧膉ar包是哪些,并且因?yàn)榕渲玫膆adoop版本也不同,因此肯定能跑的方法就是將全部jar包添加進(jìn)CLASSPATH變量?jī)?nèi)。PS:直接將兩個(gè)目錄包進(jìn)去好像是不行的,也不知道為什么。

使用root用戶執(zhí)行命令

        vim /etc/profile
      

打開(kāi)profile文件,在文件尾部添加

        
          # #號(hào)開(kāi)頭的為注釋,文件內(nèi)是不需要的



#libhdfs所在的文件夾$HADOOP_HOME
        
        /hdfs/src/c++/
        
          libhdfs.PS:可能跟你的版本不一樣

#java的頭文件所在文件夾$JAVA_HOME
        
        /include:$JAVA_HOME/include/
        
          Linux,也就是jni所在文件夾

export C_INICLUDE_PATH
        
        =$HADOOP_HOME/hdfs/src/c++/libhdfs:$JAVA_HOME/include:$JAVA_HOME/include/
        
          Linux



#

export LD_LIBRARY_PATH
        
        =/usr/local/hadoop/hadoop-
        
          0.21
        
        .
        
          0
        
        /c++/Linux-i386-
        
          32
        
        /lib:/usr/java/jdk1.
        
          6
        
        .0_26/jre/lib/i386/
        
          server



#將$HADOOP_HOME目錄下的jar包全部添加


        
        
          for
        
         i 
        
          in
        
         $HADOOP_HOME/*
        
          .jar


        
        
          do
        
        
          

    CLASSPATH
        
        =
        
          $CLASSPATH:$i


        
        
          done
        
        
          



#將$HADOOP_HOME
        
        /
        
          lib目錄下的jar全部添加


        
        
          for
        
         i 
        
          in
        
         $HADOOP_HOME/lib/*
        
          .jar


        
        
          do
        
        
          

     CLASSPATH
        
        =
        
          $CLASSPATH:$i


        
        
          done
        
        
          



export CLASSPATH
        
      

動(dòng)態(tài)鏈接庫(kù)的配置

      添加動(dòng)態(tài)鏈接庫(kù)到/etc/ld.so.conf.f中,使用root權(quán)限輸入命令
    
        vim /etc/
        
          ld
        
        .so.conf.d/hdfs.conf
      
      
        java的動(dòng)態(tài)鏈接庫(kù)路徑$JAVA_HOME/jre/lib/i386/server
      
    
      
        libhdfs的動(dòng)態(tài)鏈接庫(kù)路徑$HADOOP_HOME/c++/Linux-i386-32/lib
      
    
      
        向里面添加
        
          java的動(dòng)態(tài)鏈接庫(kù)路徑和
          
            libhdfs的動(dòng)態(tài)鏈接庫(kù)路徑
          
        
      
    
        /usr/java/jdk1.
        
          6
        
        .0_26/jre/lib/
        
          i386
        
        /server
      
        /usr/local/hadoop/hadoop-
        
          0.21
        
        .
        
          0
        
        /c++/Linux-i386-
        
          32
        
        /lib
      

保存退出后,執(zhí)行命令使其生效

        ldconfig -v
      

Makefile文件

linux下編過(guò)程序都知道,當(dāng)多文件時(shí),使用makefile文件是必不可少的。你也可以使用命令行,只不過(guò)繁瑣一點(diǎn)而已。

        HADOOP_HOME=/usr/local/hadoop/hadoop-
        
          0.21
        
        .
        
          0
        
        
          

PLATFORM
        
        =Linux-i386-
        
          32
        
        
          

JAVA_HOME
        
        =/usr/java/jdk1.
        
          6
        
        
          .0_26

CPPFLAGS
        
        = -I$(HADOOP_INSTALL)/hdfs/src/c++/
        
          libhdfs

LIB 
        
        = -L$(HADOOP_HOME)/c++/Linux-i386-
        
          32
        
        /
        
          lib

libjvm
        
        =/usr/java/jdk1.
        
          6
        
        .0_26/jre/lib/i386/client/
        
          libjvm.so

LDFLAGS 
        
        += -
        
          lhdfs



hadoop: hadoop.c

    
        
        
          gcc
        
         hadoop.c  $(CPPFLAGS) $(LIB)  $(LDFLAGS)  $(libjvm)  -
        
          o hadoop



clean:

    
        
        
          rm
        
         hadoop
      

libhdfs測(cè)試代碼

        #include 
        
          "
        
        
          hdfs.h
        
        
          "
        
        
          int
        
         main(
        
          int
        
         argc, 
        
          char
        
         **
        
          argv) {



    hdfsFS fs 
        
        = hdfsConnect(
        
          "
        
        
          192.168.1.147
        
        
          "
        
        , 
        
          9000
        
        );
        
          //
        
        
          default為本地文件系統(tǒng),ip地址為HDFS系統(tǒng)
        
        

    const 
        
          char
        
        * writePath = 
        
          "
        
        
          /tmp/testfile.txt
        
        
          "
        
        ;
        
          //要
        
        
          事先創(chuàng)建一個(gè)測(cè)試文件
        
        

    hdfsFile writeFile = hdfsOpenFile(fs, writePath, O_WRONLY|O_CREAT, 
        
          0
        
        , 
        
          0
        
        , 
        
          0
        
        
          );

    
        
        
          if
        
        (!
        
          writeFile) {

          fprintf(stderr, 
        
        
          "
        
        
          Failed to open %s for writing!\n
        
        
          "
        
        
          , writePath);

          exit(
        
        -
        
          1
        
        
          );

    }

    
        
        
          char
        
        * buffer = 
        
          "
        
        
          Hello, World!
        
        
          "
        
        
          ;

    tSize num_written_bytes 
        
        = hdfsWrite(fs, writeFile, (void*)buffer, strlen(buffer)+
        
          1
        
        
          );

    
        
        
          if
        
        
           (hdfsFlush(fs, writeFile)) {

           fprintf(stderr, 
        
        
          "
        
        
          Failed to 'flush' %s\n
        
        
          "
        
        
          , writePath);

          exit(
        
        -
        
          1
        
        
          );

    }

   hdfsCloseFile(fs, writeFile);

}
        
      

執(zhí)行并測(cè)試

在makefile文件的目錄下執(zhí)行命令

        
          第一條:make
        
      
        
          第二條:./hadoop
        
      

打開(kāi)瀏覽器輸入你的HDFS地址 http://192.168.1.147:50070

進(jìn)入HDFS系統(tǒng)查看是否存在此文件。

      
        image
      
    
      點(diǎn)擊Browse the filesystem進(jìn)入
    
      
        image
      
    
      進(jìn)入/tmp查看到文件testfile.txt。證明上傳成功!
    
      
        image
      
    

常見(jiàn)錯(cuò)誤

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------

問(wèn)題:Exception in thread "main" java.lang.NoClassDefFoundError:org/apache/commons/configuration/Configuration……

解決方案:

        肯定是CLASSPATH路徑?jīng)]有設(shè)置正確,沒(méi)有添加到所需的jar包,回到上文查看libhdfs環(huán)境變量配置即可。
      

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------

問(wèn)題:error while loading shared libraries: libhdfs.so.0:cannot open shared object file: No such file or directory

解決方案:

        先將libhdfs.so.0刪除rm ./libhdfs.so.0
        
重新創(chuàng)建一個(gè)鏈接 ln?-s?./libhdfs.so.0.0.0?./libhdfs.so.0 ?
在/etc/ld.so.conf中加入一行
        /usr/local/hadoop/hadoop-
        
          0.21
        
        .
        
          0
        
        /c++/Linux-i386-
        
          32
        
        /lib
      
保存退出后,執(zhí)行l(wèi)dconfig -v使其生效

?

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------

※問(wèn)題:配置環(huán)境后,提示CLASSPATH=……:No such file or directory

解決方案:

        還是CLASSPATH配置錯(cuò)誤。如循環(huán)添加hadoop的jar包,直接復(fù)制網(wǎng)上代碼,從而導(dǎo)致出錯(cuò)。
      
        原因是網(wǎng)上代碼與vim內(nèi)字符集不同,CLASSPATH=$CLASSPATH:$i 前面的空格與vim內(nèi)看似一樣實(shí)則不一樣,因此我一個(gè)下午就廢在這里了。
      

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------

參考資料

http://www.cnblogs.com/amboyna/archive/2008/02/06/1065322.html

http://blog.sina.com.cn/s/blog_4e4ee8ed01010ezr.html

http://www.cnblogs.com/niocai/archive/2012/03/15/2398303.html

libhdfs配置使用


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 91国内在线视频 | 毛片国产 | 色欲天天婬色婬香视频综合网 | 99热这里只有免费国产精品 | 久久er精品| 综合第一页 | 成人午夜AV亚洲精品无码网站 | 秋霞久久国产精品电影院 | 欧美一极视频 | 国产99久久精品一区二区 | 黄色av免费看 | 天天草夜夜爽 | 精品色综合 | 正在播放国产精品 | 两女互慰磨豆腐视频在线观看 | 免费精品久久久久久中文字幕 | 日本大片久久久高清免费看 | 国产精品综合色区小说 | 久久电影精品久久99久久 | 97国内精品久久久久久久影视 | 草久免费| 日韩欧美一区二区三区在线 | 亚洲精品一区二区三区蜜桃久 | 狠狠干天天 | 五月天婷婷精品视频 | 锵锵锵锵锵锵锵锵锵好大好湿软件 | 国产成人a | 日韩av电影在线免费观看 | 加勒比久久综合 | 真实做爰对白录音 | 九九精品在线 | 免费电影av | 亚洲精品久久久久久国产精华液 | 日本一级成人毛片免费观看 | 日韩成人在线观看视频 | 黄色一级a毛片 | 亚洲欧美日韩精品中文乱码 | 欧美激情精品久久久久久黑人 | 欧美成人精品一区二区三区 | 一本大道香蕉中文日本不卡高清二区 | 成人激情视频网站 |