hadoop文件系统shell在成功执行后返回-1

ukdjmx9f  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(561)

我正在尝试使用“hdfs dfs-mkdir/user/19491/testfolder”创建一个目录,其代码如下:

Session session = createSSHSession();
        ChannelExec channelExec = null;
        channelExec = (ChannelExec)session.openChannel("exec");
        channelExec.setCommand("hdfs dfs -mkdir -p hdfs://user/19491/testfolder");
        channelExec.connect();
        BufferedReader br=new BufferedReader(new InputStreamReader(channelExec.getInputStream()));
        String text;
        while((text=br.readLine())!=null) {
            System.out.println("Text is:"+text);
        }
        int exitStatus = channelExec.getExitStatus();
        System.out.println("Exit status:"+exitStatus);

运行此代码后,将创建文件夹,但返回的退出状态为-1。根据这个链接,这意味着一个错误。为什么会这样?文件夹已创建,不应该返回0吗?

lyfkaqu1

lyfkaqu11#

(假设您使用的是jsch) getExitStatus 命令尚未完成时返回-1。
http://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/channel.html#getexitstatus()
我想这个函数以前调用过一点 hdfs 命令结束。此示例等待通道关闭。

相关问题