问题描述:在java web项目中要实现远程对hadoop集群的监控和管理,需要发送相关hadoop命令到集群,并得到相应结果。
解决办法:利用jsch插件。
首先我们先来认识一下jsch:
JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的 程序中。同时该项目也提供一个J2ME版本用来在手机上直连SSHD服务器。它实际上就是一个ssh的远程登录,我们可以利用jsch来向某一个系统传递命令,这一优良特性可以让我们完成很多事情。
下面介绍一下jsch的实现:
它的实现十分简单,一个Jar包,两个方法。下面给出代码示例:
依赖jar包:jsch-0.1.53.jar
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
public class ShellServiceImpl{
private static JSch jsch;
private static Session session;
/**
* 连接到指定的IP