IDEA java整合hadoop

发布时间:2022-06-26 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了IDEA java整合hadoop脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

  一:配置Windows环境变量

    1:首先在本机创建一个文件夹,路径中不能存在中文。

     将winutils.zip  和  hadoop-2.8.1.tar.gz  两个压缩包放入,并解压

      网盘地址:链接: https://pan.baidu.com/s/1g5RGakvvZvHX2QuYytSnPQ 提取码: p56j 

        1.1:将winutilshadoop-2.8.1 下的所有文件复制到   hadoop-2.8.1bin 下

       1.2:将hadoop-2.8.1bin 下的hadoop.dll  复制到 C:WindowsSystem32

      1.3:修改系统环境变量,HADOOP_HOME 的值为创建文件夹下hadoop的绝对路径,HADOOP_USER_NAME的值则为 root

IDEA java整合hadoop

 

        

IDEA java整合hadoop

 

 

IDEA java整合hadoop

 

 

        1.4:进入  C:WindowsSystem32driversetc  ,编辑    

IDEA java整合hadoop

 

   

     在底部添加下列三个ip及其对应名称 ,ip需与虚拟机ip一致

   192.168.13.130 hdp1
    192.168.13.131 hdp2
    192.168.13.132 hdp3

    

    保存并退出,重启电脑。

 

 

   二:启动IDEA

       创建一个项目,在pom.xml加上依赖,下载依赖  

  <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.8.1</version>
        </dependency>

 

      

package day03;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.apache.hadoop.io.IOUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class HDFSTest {
    public static void main(String[] args) throws IOException {

        // 创建配置对象
        Configuration conf = new Configuration();
        // 从/opt/hadoop-2.8.1/etc/hadoop/core-site.xml文件中复制过来
        conf.set("fs.defaultFS","hdfs://hdp1:8020");
        conf.set("dfs.client.block.write.replace-datanode-on-failure.policy","NEVER");
        conf.set("dfs.client.block.write.replace-datanode-on-failure.enable","true");

        //创建操作对象
        FileSystem fs = FileSystem.get(conf);

        // 创建文件夹
/*        boolean mkdirs = fs.mkdirs(new Path("/day03/hdfs/javaapi"));
        System.out.println(mkdirs);*/

        // 查看目录
        /*RemoteIterator<LocatedFileStatus> files = fs.listFiles(new Path("/"), true);

        while (files.hasNext()){
            LocatedFileStatus next = files.next();

            // 获取绝对路径
            System.out.println(next.getPath());;
        }*/


        // 上传 (本地文件的路径, hdfs文件的路径)
/*        fs.copyFromLocalFile(new Path("data/day03/input/words.txt"), new Path("/day03/hdfs/javaapi"));
        System.out.println("上传成功");*/


        // 查看内容  一般hdfs的路径都省略 hdfs://hdp1:8020
        FSDataInputStream fis = fs.open(new Path("/day03/hdfs/javaapi/words2.txt"));
        //输出 (输入流,输出流,字节数组大小,是否关流)
        IOUtils.copyBytes(fis, System.out , 1024, true);


        // 下载
        // 方法一: (hdfs上的路径, 本地的路径)
/*        fs.copyToLocalFile(new Path("/day03/hdfs/javaapi/words.txt"), new Path("data/day03/output1"));
        System.out.println("下载完毕");*/

        // 方法二:
        /*//读取文件
        FSDataInputStream fis = fs.open(new Path("/day03/hdfs/javaapi/words.txt"));

        //创建文件输出流
        FileOutputStream fos =  new FileOutputStream(new File("data/day03/output2/words.txt"));

        //复制
        IOUtils.copyBytes(fis,fos,1024,true);*/


        // 复制
      /*  //读取文件
        FSDataInputStream fis = fs.open(new Path("/day03/hdfs/javaapi/words.txt"));

        //创建新的文件
        FSDataOutputStream fos = fs.create(new Path("/day03/hdfs/javaapi/words2.txt"));

        //复制
        IOUtils.copyBytes(fis,fos,1024,true);*/


        // 移动重命名
//        boolean rename = fs.rename(new Path("/day03/hdfs/javaapi/words.txt"), new Path("/day03/hdfs/abc.txt"));
//        System.out.println(rename);


        // 删除 递归删除
       /* boolean delete = fs.delete(new Path("/day03/hdfs/abc.txt"), true);
        System.out.println(delete);*/


        // 修改权限
//        fs.setOwner(new Path("/day03/hdfs/javaapi/words2.txt"), "root", "root");



        // 追加
        // 方式一:
        /*FSDataOutputStream fos = fs.append(new Path("/day03/hdfs/javaapi/words2.txt"));

        FileInputStream fis = new FileInputStream(new File("data/day03/input/123.txt"));

        IOUtils.copyBytes(fis,fos,1024,true);*/

        //方式二
        FSDataOutputStream fos = fs.append(new Path("/day03/hdfs/javaapi/words2.txt"));

        fos.write("nasd1112434".getBytes());

        fos.flush();
        fos.close();


    }
}

 

脚本宝典总结

以上是脚本宝典为你收集整理的IDEA java整合hadoop全部内容,希望文章能够帮你解决IDEA java整合hadoop所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: