【发布时间】:2018-11-17 17:40:18
【问题描述】:
我刚刚使用以下方法在 AWS EC2-Instance (CentOS) 上安装了 RabbitMQ,
sudo yum install erlang
sudo yum install rabbitmq-server
然后我能够成功地使用它打开它,
sudo chkconfig rabbitmq-server on
sudo /sbin/service rabbitmq-server start
...and
sudo /sbin/service rabbitmq-server stop
sudo sudo rabbitmq-server run in foreground;
但现在我正在尝试修改/usr/local/etc/rabbitmq/rabbitmq-env.conf 文件,以便可以更改NODE_IP_ADDRESS,但找不到该文件。
下没有rabbitmq文件夹,
[ec2-user@ip-0-0-0-0 sbin]$ ls /usr/local/etc
[ec2-user@ip-0-0-0-0 sbin]$
/etc下有一个rabbitmq文件夹但是里面什么都没有,
[ec2-user@ip-0-0-0-0 rabbitmq]$ pwd
/etc/rabbitmq
[ec2-user@ip-0-0-0-0 rabbitmq]$ ls
[ec2-user@ip-0-0-0-0 rabbitmq]$
而我的 rabbitmq 环境变量中唯一的就是这个
[ec2-user@ip-0-0-0-0 rabbitmq]$ printenv | grep rabbit
PWD=/etc/rabbitmq
我能够去rabbitmq日志的位置找到这些信息,
root@ip-0-0-0-0
[/var/log/rabbitmq]# pwd
/var/log/rabbitmq
root@ip-0-0-0-0
[/var/log/rabbitmq]# ls -al
total 20
drwxr-x--- 2 rabbitmq rabbitmq 4096 Jun 7 17:28 .
drwxr-xr-x 10 root root 4096 Jun 7 17:23 ..
-rw-r--r-- 1 rabbitmq rabbitmq 3638 Jun 7 17:33 rabbit@ip-0-0-0-0.log
-rw-r--r-- 1 rabbitmq rabbitmq 0 Jun 7 17:25 rabbit@ip-0-0-0-0-sasl.log
-rw-r--r-- 1 root root 0 Jun 7 17:28 shutdown_err
-rw-r--r-- 1 root root 65 Jun 7 17:28 shutdown_log
-rw-r--r-- 1 root root 0 Jun 7 17:25 startup_err
-rw-r--r-- 1 root root 385 Jun 7 17:28 startup_log
cat rabbit@ip-0-0-0-0.log
=INFO REPORT==== 7-Jun-2018::17:29:01 ===
node : rabbit@ip-0-0-0-0
home dir : /var/lib/rabbitmq
config file(s) : (none)
cookie hash : W/uaA12+PF+KOIbCmdKTkw==
log : /var/log/rabbitmq/rabbit@ip-0-0-0-0.log
sasl log : /var/log/rabbitmq/rabbit@ip-0-0-0-0-sasl.log
database dir : /var/lib/rabbitmq/mnesia/rabbit@ip-0-0-0-0
而/var/lib/rabbitmq 包含这个,
[/var/lib/rabbitmq/mnesia]# cd /var/lib/rabbitmq/
root@ip-0-0-0-0
[/var/lib/rabbitmq]# ls
mnesia
和
[/var/lib/rabbitmq/mnesia]# pwd
/var/lib/rabbitmq/mnesia
root@ip-0-0-0-0
[/var/lib/rabbitmq/mnesia]# ls -al
total 20
drwxr-xr-x 4 rabbitmq rabbitmq 4096 Jun 7 17:29 .
drwxr-x--- 3 rabbitmq rabbitmq 4096 Jun 7 17:25 ..
drwxr-xr-x 4 rabbitmq rabbitmq 4096 Jun 7 17:35 rabbit@ip-0-0-0-0
-rw-r--r-- 1 rabbitmq rabbitmq 5 Jun 7 17:28 rabbit@ip-0-0-0-0.pid
drwxr-xr-x 2 rabbitmq rabbitmq 4096 Jun 7 17:29 rabbit@ip-0-0-0-0-plugins-expand
root@ip-0-0-0-0
还有,
[/var/lib/rabbitmq/mnesia/rabbit@ip-0-0-0-0]# pwd
/var/lib/rabbitmq/mnesia/rabbit@ip-0-0-0-0
root@ip-0-0-0-0
[/var/lib/rabbitmq/mnesia/rabbit@ip-0-0-0-0]# ls -al
total 100
drwxr-xr-x 4 rabbitmq rabbitmq 4096 Jun 7 17:35 .
drwxr-xr-x 4 rabbitmq rabbitmq 4096 Jun 7 17:29 ..
-rw-r--r-- 1 rabbitmq rabbitmq 59 Jun 7 17:29 cluster_nodes.config
-rw-r--r-- 1 rabbitmq rabbitmq 160 Jun 7 17:35 DECISION_TAB.LOG
-rw-r--r-- 1 rabbitmq rabbitmq 99 Jun 7 17:35 LATEST.LOG
drwxr-xr-x 2 rabbitmq rabbitmq 4096 Jun 7 17:29 msg_store_persistent
drwxr-xr-x 2 rabbitmq rabbitmq 4096 Jun 7 17:29 msg_store_transient
-rw-r--r-- 1 rabbitmq rabbitmq 29 Jun 7 17:29 nodes_running_at_shutdown
-rw-r--r-- 1 rabbitmq rabbitmq 1123 Jun 7 17:29 rabbit_durable_exchange.DCD
-rw-r--r-- 1 rabbitmq rabbitmq 2422 Jun 7 17:32 rabbit_durable_exchange.DCL
-rw-r--r-- 1 rabbitmq rabbitmq 8 Jun 7 17:25 rabbit_durable_queue.DCD
-rw-r--r-- 1 rabbitmq rabbitmq 8 Jun 7 17:25 rabbit_durable_route.DCD
-rw-r--r-- 1 rabbitmq rabbitmq 8 Jun 7 17:25 rabbit_runtime_parameters.DCD
-rw-r--r-- 1 rabbitmq rabbitmq 3 Jun 7 17:29 rabbit_serial
-rw-r--r-- 1 rabbitmq rabbitmq 344 Jun 7 17:35 rabbit_user.DCD
-rw-r--r-- 1 rabbitmq rabbitmq 193 Jun 7 17:29 rabbit_user_permission.DCD
-rw-r--r-- 1 rabbitmq rabbitmq 461 Jun 7 17:35 rabbit_user_permission.DCL
-rw-r--r-- 1 rabbitmq rabbitmq 134 Jun 7 17:29 rabbit_vhost.DCD
-rw-r--r-- 1 rabbitmq rabbitmq 289 Jun 7 17:32 rabbit_vhost.DCL
-rw-r--r-- 1 rabbitmq rabbitmq 19108 Jun 7 17:25 schema.DAT
-rw-r--r-- 1 rabbitmq rabbitmq 233 Jun 7 17:25 schema_version
最后但并非最不重要的一点很明显,日志说没有配置文件,
[/var/log/rabbitmq]# cat rabbit\@ip-0-0-0-0.log | grep config
config file(s) : (none)
config file(s) : (none)
RabbitMQ 版本:{rabbit,"RabbitMQ","3.1.5"}
有人知道这里发生了什么吗?我很惊讶当我启动rabbitmq-server 时没有看到任何错误。我自己创建配置文件吗?
更新:
我正在为我的 Apache Airflow 设置集群环境,因此我使用 CeleryExecutor 对其进行配置,并将队列设置为 RabbitMQ。结果我正在使用不包含systemd 的 Amazon Linux 1 运行我的 EC2-Instance,因此我无法正确安装 RabbitMQ。如果我使用 Amazon Linux 2 或 Ubuntu 或任何其他不糟糕的 Linux 制作我的服务器,我可能会进一步安装 RabbitMQ 并让它与 Airflow 一起工作。所以我继续使用 AWS SQS 作为我的队列,然后运行 into this error。所以到现在为止,我已经浪费了两天半的时间来尝试排队使用 Celery 和 Airflow,我读到了this article,它说 Airbnb(Airflow 的创建者)正在使用带有 Redis 的 Celery 作为他们的队列。所以我试了一下,实际上我花了三分钟的时间才完成,而且它工作得完美无瑕……我所做的只是使用sudo yum install redis 下载 Redis,然后我安装了 Redis。 I started Redis usingredis-server。然后我将我的airflow.cfg broker_url 字段更改为broker_url = redis://,运行airflow initdb,重新启动调度程序airflow scheduler,然后启动一个工作程序airflow worker,然后BAM 我的DAG 开始使用Redis 队列和CeleryExecutor 运行。 哈利路亚只需使用 Redis 作为您的队列....
【问题讨论】:
标签: amazon-ec2 rabbitmq airflow airflow-scheduler