Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS数据管道-任务运行程序未保持活动状态_Amazon Web Services_Amazon Ec2_Amazon Data Pipeline - Fatal编程技术网

Amazon web services AWS数据管道-任务运行程序未保持活动状态

Amazon web services AWS数据管道-任务运行程序未保持活动状态,amazon-web-services,amazon-ec2,amazon-data-pipeline,Amazon Web Services,Amazon Ec2,Amazon Data Pipeline,我正在尝试在AmazonLinuxEC2实例(ami-6869aa05)上运行TaskRunner,以执行AWS数据管道Shell命令任务 我已经成功创建了管道,通过SSH通过终端连接到实例,安装并启动了Task Runner,并且能够在第一次激活时成功运行管道。后续管道作业被卡住“等待运行者”。当查看管道的依赖关系时,它显示未设置工作组 我使用以下CLI条目启动task runner。**s3已删除存储桶和文件夹名称**: java -jar TaskRunner-1.0.jar --conf

我正在尝试在AmazonLinuxEC2实例(ami-6869aa05)上运行TaskRunner,以执行AWS数据管道Shell命令任务

我已经成功创建了管道,通过SSH通过终端连接到实例,安装并启动了Task Runner,并且能够在第一次激活时成功运行管道。后续管道作业被卡住“等待运行者”。当查看管道的依赖关系时,它显示未设置工作组

我使用以下CLI条目启动task runner。**s3已删除存储桶和文件夹名称**:

java -jar TaskRunner-1.0.jar --config ~/credentials.json --workerGroup=wg-01020 --region=us-east-1 --logUri=s3://**bucket-name**/**folder-name**
这将产生以下输出:

log4j:WARN No appenders could be found for logger (amazonaws.datapipeline.objects.PluginModule). log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Starting log pusher...
Log Pusher Started. Region: us-east-1, LogUri: s3://**bucket-name**/**folder-name**
Build info: commit=unknown, timestamp=2016-07-18 14:51:53 UTC
Initializing drivers...
Starting task runner...
表示“当任务运行程序处于活动状态时,它将打印在终端窗口中写入日志文件的路径。以下是一个示例…”

……但我还没有看到这张照片。这使我相信退出终端将关闭任务运行程序,导致后续管道作业陷入“等待运行程序”状态


任何帮助都将不胜感激。

通过在命令末尾添加
&disown
,我能够在不终止任务运行程序的情况下退出终端

java -jar TaskRunner-1.0.jar --config ~/credentials.json --workerGroup=wg-01020 --region=us-east-1 --logUri=s3://**bucket-name**/**folder-name** & disown

这并没有导致
记录到上面引用的/Computer\u Name/../output/logs
输出,但我不必让终端窗口保持打开状态,并且数据管道作业已顺利完成,不会出现问题。

通过在命令末尾添加
&disown
,我可以在不终止任务运行程序的情况下退出终端

java -jar TaskRunner-1.0.jar --config ~/credentials.json --workerGroup=wg-01020 --region=us-east-1 --logUri=s3://**bucket-name**/**folder-name** & disown
这不会导致将
日志记录到上面提到的/Computer\u Name/../output/logs
输出,但我不必让终端窗口保持打开状态,并且数据管道作业已顺利完成,不会出现问题。

任务运行程序应与登录shell分离运行。如果使用终端应用程序连接到计算机,则可能需要使用诸如nohupscreen之类的实用程序,以防止任务运行程序在您注销时退出

重要的是要理解,当我们通过ssh登录到远程Linux实例时,我们作为自己的用户运行一个shell,从该shell执行的任何命令都将是shell进程的子进程。如果shell进程终止,当我们结束登录会话时就会发生这种情况,那么shell的所有子进程也将终止

为了防止我们已经启动的java TaskRunner进程发生这种情况,我们必须将java进程与shell进程的“父级”分离。这是通过使用nohup或screen等工具实现的

按如下方式运行java命令

nohup java -jar TaskRunner-1.0.jar --config credentials.json --workerGroup=<worker_group_name> --region=<region_name> --logUri=<s3_log_location>
nohup java-jar TaskRunner-1.0.jar--config credentials.json--workerGroup=--region=--logUri=
来自文档

任务运行程序应与登录shell分离运行。如果使用终端应用程序连接到计算机,则可能需要使用诸如nohupscreen之类的实用程序,以防止任务运行程序在您注销时退出

重要的是要理解,当我们通过ssh登录到远程Linux实例时,我们作为自己的用户运行一个shell,从该shell执行的任何命令都将是shell进程的子进程。如果shell进程终止,当我们结束登录会话时就会发生这种情况,那么shell的所有子进程也将终止

为了防止我们已经启动的java TaskRunner进程发生这种情况,我们必须将java进程与shell进程的“父级”分离。这是通过使用nohup或screen等工具实现的

按如下方式运行java命令

nohup java -jar TaskRunner-1.0.jar --config credentials.json --workerGroup=<worker_group_name> --region=<region_name> --logUri=<s3_log_location>
nohup java-jar TaskRunner-1.0.jar--config credentials.json--workerGroup=--region=--logUri=

tmux
也可以使用

只需运行
tmux
,然后启动TaskRunner,然后使用
ctrl+BD
从会话中分离,或者直接断开与ssh的连接


有关更多信息,请参见也可以使用tmux

只需运行
tmux
,然后启动TaskRunner,然后使用
ctrl+BD
从会话中分离,或者直接断开与ssh的连接

有关更多信息,请参阅