zoukankan      html  css  js  c++  java
  • 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!

      

  • 相关阅读:
    SQL 表连接
    SQL 时间日期函数
    SQL 转换函数
    25 -2 正则爬虫例子
    25 -1 正则 re模块 (findall、search、match、sub、subn、split、compile、finditer)
    25 python 常用模块
    24- 1 模块
    23-8 python模块定义
    23-5 面试题:1000个员工,我们认为名字和年龄相等,就为同一个人
    23-4 __eq__方法
  • 原文地址:https://www.cnblogs.com/cqdxwjd/p/9835420.html
Copyright © 2011-2022 走看看