【问题标题】:how add hadoop jars to classpath?如何将 hadoop jar 添加到类路径?
【发布时间】:2016-11-15 21:50:03
【问题描述】:

我的 mac 上的 Hadoop 2.7.3 安装在:

/usr/local/Cellar/hadoop/2.7.3

我写了一个demo来使用java从HDFS读取文件:

import java.io.*;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class HDFSTest{

public static void main(String[] args) throws IOException, URISyntaxException{

  String file= "hdfs://localhost:9000/hw1/customer.tbl";
  Configuration conf = new Configuration();
  FileSystem fs = FileSystem.get(URI.create(file), conf);
  Path path = new Path(file);
  FSDataInputStream in_stream = fs.open(path);
  BufferedReader in = new BufferedReader(new      
  InputStreamReader(in_stream));
  String s;
     while ((s=in.readLine())!=null) {
        System.out.println(s);
     }
    in.close();
    fs.close();
  }
}

当我编译java文件时,报错如下图:

hero:Documents yaopan$ javac HDFSTest.java 
HDFSTest.java:8: error: package org.apache.hadoop.conf does not exist
import org.apache.hadoop.conf.Configuration;
                         ^
HDFSTest.java:10: error: package org.apache.hadoop.fs does not exist
import org.apache.hadoop.fs.FSDataInputStream;
                       ^
HDFSTest.java:12: error: package org.apache.hadoop.fs does not exist
import org.apache.hadoop.fs.FSDataOutputStream;
                       ^
HDFSTest.java:14: error: package org.apache.hadoop.fs does not exist
import org.apache.hadoop.fs.FileSystem;

我知道原因是找不到hadoop jars,如何配置? ^

【问题讨论】:

标签: hadoop


【解决方案1】:

在您的安装下找到一个名为“hadoop-common-2.7.3.jar”的 jar 文件(即/usr/local/Cellar/hadoop/2.7.3)并将其设置在类路径中或直接在命令行中与javac 一起提供。

javac -cp "/PATH/hadoop-common-2.7.3.jar" HDFSTest.java 

(将PATH替换为适当的路径)

【讨论】:

    【解决方案2】:

    只需将 hadoop jar 添加到类路径:

    我在 /usr/local/Cellar/hbase/1.2.2 上使用自制软件安装 hbase,

    /usr/local/Cellar/hbase/1.2.2/libexec/lib下的所有jar添加到类路径:

    1.编辑.bash_profile

    sudo vim ~/.bash_profile
    

    2.添加类路径

       #set hbase lib path
    export CLASSPATH=$CLASSPATH://usr/local/Cellar/hbase/1.2.2/libexec/lib/*
    
    1. 保存退出

      wq

    【讨论】:

      猜你喜欢
      • 2016-11-04
      • 1970-01-01
      • 2015-03-02
      • 2012-04-22
      • 1970-01-01
      • 2012-05-10
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多