• libhdfs的配置和使用


    测试环境:centos6.10,hadoop2.7.3,jdk1.8

    测试代码:HDFSCSample.c

    #include "hdfs.h"
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char **argv) {
    
        hdfsFS fs = hdfsConnect("default", 0);
        const char* writePath = "/tmp/testfile.txt";
        hdfsFile writeFile = hdfsOpenFile(fs, writePath, O_WRONLY |O_CREAT, 0, 0, 0);
        if(!writeFile) {
              fprintf(stderr, "Failed to open %s for writing!
    ", 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
    ", writePath);
              exit(-1);
        }
        hdfsCloseFile(fs, writeFile);
    }

    编译脚本:

      compile.sh

    #!/bin/bash
    export JAVA_HOME=/root/softs/jdk1.8.0_172
    export HADOOP_HOME=/root/softs/hadoop-2.7.3/
    
    gcc -I$HADOOP_HOME/include -L$HADOOP_HOME/lib/native -lhdfs -L$JAVA_HOME/jre/lib/amd64/server -ljvm HDFSCSample.c

    执行命令: 

      # chmod +x compile.sh

      # ./compile.sh

    执行脚本:

      execute.sh

    #!/bin/bash
    export JAVA_HOME=/root/softs/jdk1.8.0_172
    export HADOOP_HOME=/root/softs/hadoop-2.7.3/
    export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_HOME/jre/lib/amd64/server/
    
    CLASSPATH=./
    for f in $HADOOP_HOME/share/hadoop/common/*.jar; do
      CLASSPATH=${CLASSPATH}:$f;
    done
    for f in $HADOOP_HOME/share/hadoop/common/lib/*.jar; do
      CLASSPATH=${CLASSPATH}:$f;
    done
    for f in $HADOOP_HOME/share/hadoop/hdfs/*.jar; do
      CLASSPATH=${CLASSPATH}:$f;
    done
    for f in $HADOOP_HOME/share/hadoop/hdfs/lib/*.jar; do
      CLASSPATH=${CLASSPATH}:$f;
    done
    export CLASSPATH=$CLASSPATH
    
    ./a.out

    执行命令:

      # chmod +x execute.sh

      # ./execute.sh

    打开/tmp/testFile.txt,可以看到里面写入了一条 Hello, World!

      

  • 相关阅读:
    汉字词组换行
    C#中获取Excel文件的第一个表名
    SQL查找某一条记录的方法
    C#数据库连接字符大全
    整理的asp.net资料!(不得不收藏)
    母版页的优点,及母版页与内容页中相互访问方法
    13范式
    使用 Jackson 树连接线形状
    word2007,取消显示回车符
    三张表之间相互的多对多关系
  • 原文地址:https://www.cnblogs.com/cqdxwjd/p/9835420.html
Copyright © 2020-2023  润新知