Hadoop本地提交到集群中

编写mapreduce测试时,可以使用本地线程模拟方式来运行Hadoop是否能运行

        Configuration conf = new Configuration();
        //本地使用线程模拟Hadoop集群
        conf.set("mapreduce.framework.name","local");
        //设置本地的文件系统方式
        conf.set("fs.defaultFS","file:///");
        Job job = Job.getInstance(conf);
        //使用这种方式的设置jar通常不能在本地跑,要把jar放到集群中去,这样可以在任何路径上运行
        job.setJarByClass(JobRun.class);
        //设置本地的数据路径
        FileInputFormat.setInputPaths(job,new Path("/home/xujun/input/"));
        FileOutputFormat.setOutputPath(job,new Path("/home/xujun/output/"));
        //通过这种方式,可以非常方便的使用mapreduce对数据进行运行测试,调试

使用IDEA编写在本地远程调试编写好的mapreduce代码

        Configuration conf = new Configuration();
        //本地提交到集群上运行代码
        conf.set("mapreduce.framework.name","yarn");
        conf.set("yarn.resourcemanager.hostname","hadoop01");
        conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");

        //如果是集群跑,就需要设置默认的文件系统是hdfs
        conf.set("fs.defaultFS","hdfs://192.168.10.71:9000/");
        //设置hadoop运行身份,这样可以绕过系统权限检查
        System.setProperty("HADOOP_USER_NAME", "hadoop");

        Job job = Job.getInstance(conf);
        //使用这种方式的设置jar通常不能在本地跑,要把jar放到集群中去,这样可以在任何路径上运行
        //这种方式适合把程序达成jar包,放到集群中去。
        //job.setJarByClass(JobRun.class);

        //在本地运行,需要使用固定路径,这样才能保证导入jar包,自己定义导出的jar的位置
        job.setJar("/wc.jar");

        FileInputFormat.setInputPaths(job,new Path("hdfs://Hadoop01:9000/wordcount/input/"));
        FileOutputFormat.setOutputPath(job,new Path("hadoop01:9000/wordcount/output/"));
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值