• HDFS初次编程


    hadoop是用Java语言实现的开源软件框架,可以支持多种语言,我学习的时候用得自然就是Java了。

    在开始编程之前需要做一些配置工作:

    Hadoop开发:Hadoop为HDFS和Mapreduce提供了基础的支持,叫hadoop common。Hadoop有一个专门的common jar包,需要导入这个包。

    路径:(安装位置)/hadoop(安装之后整个文件夹,一般格式为hadoop+版本号)/share/hadoop

    首先新建一个Java Project,右键项目选择Properties---->Java Build Path---->Libraries---->Add External JARs

    导入如下所示jar包:

    接下来就可以具体编程了。

    编程实例:

    检测伪分布式文件系统HDFS上到底存不存在一个test.txt文件?

    1. 把配置文件放到当前Java工程目录下,即把core-site.xml和hdfs-site.xml(/hadoop/etc/hadoop/)放到项目的bin文件夹下面。

    若是缺少该步,运行时会出现错误:

    2 编写代码如下:

     1 import org.apache.hadoop.conf.Configuration;
     2 import org.apache.hadoop.fs.FileSystem;
     3 import org.apache.hadoop.fs.Path;
     4 
     5 public class first {
     6     public static void main(String args[]){
     7         try{
     8             String filename = "hdfs://localhost:9000/user/hadoop/test.txt";
     9             
    10             Configuration conf = new Configuration();
    11             FileSystem fs = FileSystem.get(conf);
    12             if(fs.exists(new Path(filename))){
    13                 System.out.println("File exists");
    14             }
    15             else{
    16                 System.out.println("File dose not exist");
    17             }
    18             
    19         }
    20         catch(Exception e){
    21             e.printStackTrace();
    22         }
    23     }
    24 }

    启动hadoop:

    在这过程中也是遇到了一系列错误,首先是:

    错误原因是缺少包,简单粗暴的解决办法是把common中lib下的所有包都导进去。

     再次运行,又出错:

    解决办法为在项目的src文件下面创建一个log4j.properties文件,内容为:

    # Configure logging for testing: optionally with log file
    log4j.rootLogger=WARN, stdout
    # log4j.rootLogger=WARN, stdout, logfile
    
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
    
    log4j.appender.logfile=org.apache.log4j.FileAppender
    log4j.appender.logfile.File=target/spring.log
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

    再运行,继续出错,"Class org.apache.hadoop.hdfs.DistributedFileSystem not found":

    又是缺少包,仍然是粗暴添加包,把hdfs中的所有jar包添加进去即可。

    最后,终于成功了!

  • 相关阅读:
    C# 实现 Snowflake算法生成唯一性Id
    kafka可视化客户端工具(Kafka Tool)的基本使用(转)
    docker 安装kafka
    Model类代码生成器
    使用docker 部署rabbitmq 镜像
    Vue 增删改查 demo
    git 提交代码到库
    Android ble蓝牙问题
    mac 配置 ssh 到git (Could not resolve hostname github.com, Failed to connect to github.com port 443 Operation timed out)
    okhttp
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/10214799.html
Copyright © 2020-2023  润新知