这篇博客是采用JAVA SSH2协议实现的,通过在本地远程去调用linux服务器,从而实现运行jar包中的hadoop程序
在pom中配置ssh2jar包
<!--ssh2架包-->
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>build210</version>
</dependency>
</dependencies>
在方法里实现调用,并在cmd里写上你要执行的命令,我这里是调用hadoopjar包,并同时把执行成功之后所生成的文件放在输出目录,传入出入和输出路径等等,使用多个命令中间用分号隔开。
public class SSh2 { private static String processStdout(InputStream in, String charset){ InputStream stdout = new StreamGobbler(in); StringBuffer buffer = new StringBuffer();; try { BufferedReader br = new BufferedReader(new InputStreamReader(stdout,charset)); String line=null; while((line=br.readLine()) != null){ buffer.append(line+"\n"); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return buffer.toString(); } public void execmd(String inputUrl, String outputUrl, String endpoint, String starttime, String endtime) { String hostname = "192.168.50.228"; String username = "hduser"; String password = "1234567"; String result=""; //指明连接主机的IP地址 Connection conn = new Connection(hostname); Session ssh = null; try { //连接到主机 conn.connect(); //使用用户名和密码校验 boolean isconn = conn.authenticateWithPassword(username, password); if(!isconn){ System.out.println("用户名称或者是密码不正确"); }else{ System.out.println("已经连接OK"); ssh = conn.openSession(); String cmd="hadoop jar /usr/hadoop/hadoop-2.6.0/share/hadoop/mapreduce/threePhaseNew.jar /input/rtu_voltage0001.txt /output/VoltageBalance21 1000085,1000210,1000328 20160101 20160331;hdfs dfs -get /output/threePhaseVoltageBalance /usr/hadoop/hadoop-2.6.0/bigdata_out"; //使用多个命令用分号隔开 ssh.execCommand(cmd); //只允许使用一行命令,即ssh对象只能使用一次execCommand这个方法,多次使用则会出现异常 result=processStdout(ssh.getStdout(),"utf-8"); //如果为得到标准输出为空,说明脚本执行出错了 if(StringUtils.isBlank(result)){ result=processStdout(ssh.getStderr(),"utf-8"); System.out.print(result); } } //连接的Session和Connection对象都需要关闭 ssh.close(); conn.close(); } catch (IOException e) { e.printStackTrace(); } } }
如果出现执行成功却没有文件生成的情况,需要改一下hadoop环境的访问路径的配置
相关推荐
ganymed-ssh2-build210.jar是Java的一个开源SSH库,它提供了SSH2协议的支持,允许开发者在Java程序中实现安全的远程登录、文件传输等功能。 首先,了解SSH(Secure Shell)协议,它是一种网络协议,用于在不安全的...
Ganymed SSH2是一个开源的Java实现,它允许开发者在Java程序中集成SSH功能,从而能够通过SSH协议与远程系统进行交互。 描述中提到的“使用 ganymed-ssh2-262.jar 通过ssh协议链接资源执行脚本命令”表明了这个库的...
下载网站https://repo1.maven.org/maven2/ch/ethz/ganymed/ganymed-ssh2/build210/ 此jar源码文件中包含以下这些类: SCPClient.lass Session.class Connection.clss 等许多文件传输类。 查看源码的方法: 1.把此jar...
在实际应用中,Ganymed SSH-2库广泛应用于自动化运维脚本、远程系统管理工具、持续集成/持续部署(CI/CD)流程以及任何需要安全远程访问的Java项目中。由于其强大的功能和易于使用的API,它成为了Java开发者实现SSH...
Ganymed SSH-2支持SSH对话(远程命令执行和shell访问),本地和远程端口转发,本地数据流转发,X11转发和SCP。这些都没有依赖任何JCE provider,而且所有这些都包含加密的功能。该资源是java远程连接ssh服务器的实例...
基于IDEA+Maven+SSM框架+mysql的高并发的商品秒杀项目.zip基于IDEA+Maven+SSM框架+mysql的高并发的商品秒杀项目.zip基于IDEA+Maven+SSM框架+mysql的高并发的商品秒杀项目.zip基于IDEA+Maven+SSM框架+mysql的高并发的...
标题中的"idea+maven+tomcat实现登录案例源代码"表明这是一个使用IntelliJ IDEA集成开发环境(IDE),Maven构建工具以及Tomcat服务器来实现的登录功能的示例项目。这个项目的主要目的是通过代码展示如何在Java Web...
基于idea + springboot + maven + mybatis 开发的拍卖行系统 项目经过严格测试,确保可以运行! 基于idea + springboot + maven + mybatis 开发的拍卖行系统 项目经过严格测试,确保可以运行! 基于idea + ...
SSH+Extjs开发视频教程-基于SSH+Maven+Extjs4+MySQL技术实战开发CRM客.doc
通过上述步骤,您可以顺利地在本地环境中安装和配置 Maven 3.6.3,并将其集成到 IntelliJ IDEA 2022.2.3 中。这为自动化构建和管理 Java 项目的依赖提供了强大的支持。Maven 通过统一的生命周期模型、插件机制以及对...
本教程将详细讲解如何在IntelliJ IDEA(IDEA)中利用Maven进行混淆打包,确保代码的安全性并提高可维护性。 首先,让我们了解一下涉及的工具和技术: 1. **Java**: 一种广泛使用的面向对象的编程语言,用于构建跨...
spark-assembly-1.6.1-hadoop2.6.0.jar,欢迎下载,,,,,,,,,,,,,,,,,,,,
项目描述 以前的一个学长让我帮着做的一个项目,vue花店,适合做手机端商城,需要Vue商城的,可以下载下去进行二开。...vue的启动方式,我在前一个vue点餐模板中说过。在此不叙述。这里只上传后台逻辑功能...vue+maven+ssh
本教程将详细介绍如何在IntelliJ IDEA(IDEA)中利用Maven进行混淆打包的步骤,确保整个过程顺利且有效。 首先,我们需要了解Maven,它是一个强大的项目管理和依赖管理工具。通过在`pom.xml`文件中配置,我们可以...
2.sitemesh3: 3.mybaties 自动生成sql文件 entity实体 mapper映射类 4.redis 缓存 5.spring MVC 拦截器的使用 6.使用json返回到前端 7.psring MVC加载静态资源: 8.java实现execl导出 9.spring MVC直接执行sql语句:
SSM(Spring MVC + Spring + MyBatis)是Java Web开发中常见的三层架构组合,而Maven作为项目构建工具,负责管理和构建项目依赖。本文将详细介绍如何使用这些技术搭建一个完整的开发环境,并运行源码。 首先,让...
标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...
这是一个基于Java技术栈,利用SpringMVC、Spring、HBase和Maven构建的Hadoop分布式云盘系统的项目。该项目旨在实现一个高效的、可扩展的云存储解决方案,利用Hadoop的分布式特性来处理大规模数据存储需求。 首先,...
IDEA+MAVEN学习
Lombok plugin简单介绍,以及在idea+maven的环境下引入使用