importch.ethz.ssh2.Connection;importch.ethz.ssh2.Session;importjava.io.IOException;importjava.io.InputStream;importjava.nio.charset.Charset;public classRemoteShellTool {privateConnection conn;privateString ipAddr;private String charset =Charset.defaultCharset().toString();privateString userName;privateString password;publicRemoteShellTool( String ipAddr, String userName, String password, String charset) {this.ipAddr =ipAddr;this.userName =userName;this.password =password;if(charset !=null){this.charset =charset;
}
}public boolean login() throwsIOException {
conn= newConnection(ipAddr);//连接
conn.connect();//认证
returnconn.authenticateWithPassword(userName,password);
}publicString exec(String cmds) {
InputStream in= null;
String result= "";try{if(this.login()){//打开一个会话
Session session =conn.openSession();
session.execCommand(cmds);
in=session.getStdout();
result= this.processStdout(in,this.charset);
conn.close();
}
}catch(IOException e) {
e.printStackTrace();
}returnresult;
}publicString processStdout(InputStream in, String charset) {byte[] buffer = new byte[1024];
StringBuffer sb= newStringBuffer();try{while (in.read(buffer)!=-1){
sb.append(newString(buffer,charset));
}
}catch(IOException e) {
e.printStackTrace();
}returnsb.toString();
}public static voidmain(String[] args) {
//将jar包命名为task任务,根据传入taskid 找到对应的jar包 调用接口提交//args[0]="{1}";
RemoteShellTool rst = new RemoteShellTool("bigdata.server1","hejunhong","123456","utf-8");
System.out.println(rst.exec("/opt/cdh5/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh start datanode"));
System.out.println(rst.exec("ls /opt/cdh5/"));//String submit="/opt/cdh5/spark-2.2.1-bin-2.6.0-cdh5.14.2/bin/spark-submit --master yarn --deloy-modle cluster" +//"--class spark.jar hdfs://"+args[0]+ " --conf spark.ssss:20";
}
}