Hadoop与Java的简单交互

本地Hadoop配置

1.在Windows上安装hadoop

解压hadoop-2.6.0-cdh5.14.2.tar.gz 压缩包
(解压过程中可能会提示需要管理员权限,最好解压前找到解压软件,右键以管理员身份运行,再尽进行解压)
在这里插入图片描述

2.把hadoop-bin.rar中的内容解压并替换到hadoop的bin目录下

(该文件可以去网上自行搜索下载,要与自己版本匹配)
在这里插入图片描述

3.把hadoop.dll放到c:\windows\System32\目录下

在这里插入图片描述

4.配置hadoop环境变量

右键我的电脑–>属性–>高级系统设置–>环境变量
在这里插入图片描述

新建HADOOP_HOME变量,值就是自己的hadoop地址
在这里插入图片描述
然后在Path变量中添加如图所示的文本即可

Java操作

1.在idea中新建一个maven工程

修改一下自己相关的版本号
然后引入hadoop相关jar包

<dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>2.6.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>
      <version>2.6.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-core</artifactId>
      <version>1.2.0</version>
    </dependency>

2.新建一个class文件(需要在APP下级目录)

a.简单的查看流
public class TestHDFS {
    public static void main(String[] args) throws Exception{
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS","hdfs://192.168.129.40:9000");
        FileSystem fs = FileSystem.get(new URI("hdfs://192.168.129.40:9000"),conf,"root");
        FSDataInputStream is = fs.open(new Path(args[0]));
        int tmp;
        while((tmp=is.read())!=-1){
            System.out.print((char)tmp);
        }
        is.close();
    }
}

在Run 的 Edit Configuration处如图所示的位置添加参数
在这里插入图片描述

b.上传下载流
fs.copyToLocalFile(new Path(args[0]),new Path(args[1]));
fs.copyFromLocalFile(new Path(args[1]),new Path(args[0]));
c.其他操作

诸如创建,删除等不再此赘述

hadoop jar 执行 Java的jar包

1.编写测试完成后,打jar包,指定main方法

在这里插入图片描述
Build选择Build Artifact建立jar包(jar包在out里查看)

2.jar包上传至hadoop的share目录下

3.执行命令

hadoop jar <jar在linux的路径> <main方法所在的类的全类名> <参数>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值