Hadoop入门(十二)Intellij IDEA远程向hadoop集群提交mapreduce作业

Intellij IDEA远程向hadoop集群提交mapreduce作业,需要依赖到hadoop的库,hadoop集群的配置信息,还有本地项目的jar包。

一、软件环境

(1)window本地安装hadoop软件

首先将集群上的hadoop环境下载到本地,本文是在“A:\soft\hadoop-2.6.0”

(2)设置环境变量HADOOP_HOME

HADOOP_HOME=A:\soft\hadoop-2.6.0
HADOOP_BIN_PATH=%HADOOP_HOME%\bin
HADOOP_PREFIX=A:\soft\hadoop-2.6.0
PATH追加路径;%HADOOP_HOME%\bin

注意:配置好环境变量重启电脑 

(3)添加winutils.exe和hadoop.dll(x86)

下载对应版本的文件:https://github.com/steveloughran/winutils

winutils.exe放置到HADOOP_HOME/bin下  

hadoop.dll放置到HADOOP_HOME/bin和C:\Windows\System32下

选择正确的版本,下载相同版本的hadoop.dll,或者版本稍高

注意:hadoop-2.6.0的hadoop.dll大小是94KB,网上的其他hadoop.dll的大小不一样的不是2.6.0版本的。

 

常见问题:

1)Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable HADOOP_HOME\bin\winutils.exe in the Hadoop binaries.

HADOOP_HOME/bin没有winutils.exe

2)Could not locate executable null \bin\winutils.exe in the hadoop binaries

环境变量未生效

3)Unable to load native-hadoop library for your platform… using builtin-Java classes where applicable

4)java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray

hadoop.dll未放置到C:\Windows\System32或者hadoop.dll文件不正确

 

 

二、项目设置

(1)配置文件

拷贝hadoop集群中配置文件core-site.xml、mapred-site.xml、yarn-site.xml到项目,以及设置log4j.properties文件

(2)设置配置文件的host

(3)设置项目打包

右击项目名称,选择Open Module Settings,选择Artifacts,点击中间绿色的+号,选择JAR,再选择From module with dependencies,填写启动主类MainClass保存

(4)跨平台设置

  Configuration conf = new Configuration();conf.set("mapreduce.app-submission.cross-platform", "true");
//跨平台提交,在windows下如果没有这句代码会报错 "/bin/bash: line 0: fg: no job control"

(5)设置jar路径,否则hadoop会找不到jar

项目的jar输出路径为.\\out\\artifacts\\hadoop_test_jar\\hadoop-test.jar,在项目打包设置的输出路径

Job job = new Job(conf, "word count");
String jar = ".\\out\\artifacts\\hadoop_test_jar\\hadoop-test.jar";
job.setJar(jar);//项目打包的jar设置到jar
job.setJarByClass(WordCount.class);

 

常见问题:

1)Exception message: /bin/bash: 第 0 行:fg: 无任务控制

Stack trace: ExitCodeException exitCode=1: /bin/bash: 第 0 行:fg: 无任务控制

未设置跨平台提交job

2)Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.mk.mapreduce.WordCount$MyMapper not found

 未设置job.setJar()方法

3)system times on machines may be out of sync

1、安装ntpdate工具

#cenos
yum -y install ntp ntpdate
#ubuntu
sudo apt install ntp ntpdate

2、 设置系统时间与网络时间同步

ntpdate cn.pool.ntp.org

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口测试(备用)

音乐地址 http://k1998.xyz/php/public/index.php/index/music/lists 随机一个段子 https://autumnfish.cn/api/joke/list 随机十条段子(数字10可更改) https://autumnfish.cn/api/joke/list?num10

Spring AOP知识点简介

文章目录1、什么是AOP1.1、AOP术语1.2、AOP框架2、动态代理2.1、JDK动态代理2.2、CGLIB动态代理3、基于代理类的AOP实现3.1、Spring的通知类型3.2、ProxyFactoryBean4、AspectJ开发4.1、基于XML的声明式AspectJ4.2、基于注解的声明式AspectJ1、什么是AOP 面向切面编程&#xf…

jzoj2940-生成输入数据【最小生成树,并查集】

正题 题目大意 给一个完全图的唯一一颗最小生成树,求完全图最小边权之和。 解题思路 我们考虑在计算最小生成树的时候,将两个联通块合并时,我们会选择连接这两个联通块的最小的边。 那么我们就可以让每个联通块合并时,让其他边都…

SQL2017 Azure SQL新功能:图形数据库

图形数据库是什么呢?如果从字面理解是进行图形处理的数据库,那么你就错了哈哈。 我们先来解释什么是图形数据库。 图形数据库是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。最常见的例子,就是社会网络中人与人之…

git创建tag标签

创建标签 添加tag git tag v1.0 查看所有的tag版本 git tag 后可加-m添加注释 这时只能在本地可以看到自己新建Tag,在远程中央仓库中还是看不到在Tags下有如何内容,因为我们还没把它推送到中央仓库上 推送到远端 git push origin v1.0 如果没有和远程没…

idea中XML注释与取消注释快捷键

IntelliJ IDEA和eclipse中编辑Java文件时,注释和取消注释的快捷键都是: "CTRL / " 编辑xml文件时, 注释:CTRL SHIFT / 取消注释:CTRL SHIFT \

Hadoop入门(十三)远程提交wordCout程序到hadoop集群

一、项目结构 用到的文件有WordCount.java、core-site.xml、mapreduce-site.xml、yarn-site.xml、log4j.properties、pom.xml 二、项目源码 (1)WordCount.java package com.mk.mapreduce;import org.apache.hadoop.conf.Configuration; import org.ap…

jzoj3771-小Z的烦恼【高精度,数学】

正题 题目大意 mmm个盒子&#xff0c; 当第iii个盒子中放了xxx&#xff0c;那么i1i1i1个盒子中就必须放2x2x2x&#xff08;i<mi<mi<m&#xff09;。 求1∼n1\sim n1∼n&#xff0c;mmm个盒子&#xff0c;求第一个盒子中可以放多少个 解题思路 1号盒子中的肯定越小越好…

腾讯云短信服务使用记录与.NET Core C#代码分享

1、即使是相同的短信签名与短信正文模板&#xff0c;也需要针对“国内文本短信”与“海外文本短信”分别申请。开始不知道&#xff0c;以为只要申请一次&#xff0c;给国外手机发短信时给api传对应的国家码就行&#xff0c;后来才发现需要分别申请。 2、短信服务web api响应“手…

Vue动画效果

.v-enter,.v-leave-to {opacity: 0;transform: rotateY(120deg);}.v-enter-active,.v-leave-active {transition: all 1s ease;}<transition><div v-cloak v-show"flag"><span classbadge>李白 </span><span idinput-size>善良之人啊&…

vue 安装教程

vue 安装教程在这里&#xff01;&#xff01;&#xff01;

Hadoop入门(九)Mapreduce高级shuffle之Combiner

一、Combiner的出现 &#xff08;1&#xff09;为什么需要进行Map规约操 作 在上述过程中&#xff0c;我们看到至少两个性能瓶颈&#xff1a; &#xff08;1&#xff09;如果我们有10亿个数据&#xff0c;Mapper会生成10亿个键值对在网络间进行传输&#xff0c;但如果我们只…

欢乐纪中某A组赛【2019.1.19】

前言 因为BBB有一堆(两道)题都做过&#xff0c;于是就来做A组了。 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC3332017myself2017myself2017myself2102102101001001001001001001010102222222017lrz2017lrz2017lrz1001001000001001…

使用Identity Server 4建立Authorization Server (2)

第一部分: 使用Identity Server 4建立Authorization Server (1) 第一部分主要是建立了一个简单的Identity Server. 接下来继续: 建立Web Api项目 如图可以在同一个解决方案下建立一个web api项目: (可选)然后修改webapi的launchSettings.json, 我习惯使用控制台, 所以把IISExpr…

建立Vue脚手架的必要性

首先所有文件都放到一个html&#xff0c;代码多了之后阅读体验非常差。 其次建立这样的文件夹后&#xff0c;发现竟然不能随时更新&#xff0c;有缓存的情况

【实验手册】使用Visual Studio Code 开发.NET Core应用程序

.NET Core with Visual Studio Code 目录 概述... 2 先决条件... 2 练习1&#xff1a; 安装和配置.NET Core以及Visual Studio Code 扩展... 2 任务1&#xff1a;安装Visual Studio Code和.NET Core. 2 任务2&#xff1a;安装插件... 4 练习2&#xff1a;使用命令行界面构建. N…

P3806-【模板】点分治1

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP3806 题目大意 一颗树&#xff0c;k个询问&#xff0c;求是否存在长度为lil_ili​的路径。 解题思路 开个桶就好了&#xff0c;点分治不解释。 codecodecode #include<cstdio> #include<a…

Hadoop入门(八)Mapreduce高级shuffle之Partitioner

一、Partitioner概述 Map阶段总共五个步骤&#xff0c;2就是一个分区操作 哪个key到哪个Reducer的分配过程&#xff0c;是由Partitioner规定的。 二、Hadoop内置Partitioner MapReduce的使用者通常会指定Reduce任务和Reduce任务输出文件的数量&#xff08;R&#xff09;。 用…

vue调用methods里的方法

刚学vue的时候&#xff0c;以为要想方法自启动&#xff0c;只能通过生命周期函数的钩子。 而methods里的函数大多用ckick进行调用 要想直接启用里面的方法&#xff0c;给挂载的vue一个名字就行了&#xff0c;如下 var app new Vue({el: "#app",methods:{aaa:functi…

在ASP.NET Core中使用AOP来简化缓存操作

前言 关于缓存的使用&#xff0c;相信大家都是熟悉的不能再熟悉了&#xff0c;简单来说就是下面一句话。 优先从缓存中取数据&#xff0c;缓存中取不到再去数据库中取&#xff0c;取到了在扔进缓存中去。 然后我们就会看到项目中有类似这样的代码了。 public Product Get(int p…