zoukankan      html  css  js  c++  java
  • org.apache.hadoop.util.Shell demo/例子

    package cn.shell;
    import java.io.IOException; import org.apache.hadoop.util.Shell; public class ShellDemo { public static void main(String[] args) throws IOException { String pars="ipconfig"; String out=Shell.ShellCommandExecutor.execCommand(pars); System.out.println(out); } }

     上面是很简单的一个例子,注意Shell.ShellCommandExecutor.execCommand内的参数:

      

    demo2:判断yarn 的队列中是否有任务提交,队列可以指定。

        public static boolean hasAppBeSubmited(String queueName){
            boolean tag=false;
            try {
                String out=Shell.ShellCommandExecutor.execCommand("yarn", "application", "-list");
                String[] apps =out.split("Tracking-URL");
                if(apps.length ==2) {
                    tag = apps[1].contains(queueName);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return tag;
        }

    demo3:shell对管道符号'|' 和重定向符号‘>’ 的支持,需要用sh -c 后边拼接命令

    Shell.ShellCommandExecutor.execCommand("sh", "-c","hadoop fs -text hdfs文件  >  本地文件");

    注意如果直接执行命令
    Shell.ShellCommandExecutor.execCommand("hadoop", "fs", "-text","hdfs文件路径",">" "本地文件");
    会报错,会把">"符号当作文件路径处理。所以需要sh -c "命令参数" 讲命令行当作整体传入

    demo4:直接用Shell切分文件

    Shell.ShellCommandExecutor.execCommand("split","-l", "10000", "--numeric-suffixes=1","--suffix-length=3", "--additional-suffix=.txt",srcFile,newFile);  

    demo5:执行shell或者python脚本

    Shell.ShellCommandExecutor.execCommand("./ftp.sh",ftpHost,ftpPort,user,password,putPath+File.separator+date,fileDir);
  • 相关阅读:
    [树形DP]Luogu P1131 [ZJOI2007]时态同步
    [状压DP]JZOJ 1303 骑士
    [DFS]JZOJ 1301 treecut
    [最小费用最大流]JZOJ 4802 探险计划
    [KMP][倍增求LCA]JZOJ 4669 弄提纲
    [DP]JZOJ 1758 过河
    列表生成式和生成器表达式
    协程函数
    生成器
    迭代器
  • 原文地址:https://www.cnblogs.com/yanghaolie/p/7453250.html
Copyright © 2011-2022 走看看