问题描述
TL; DR - Dockerized Ambari在Ubuntu 14.04泊坞窗容器在启动时使用默认配置会抛出错误
TL;DR - Dockerized Ambari on Ubuntu 14.04 Docker container throws error upon startup with default configurations
我试图Dockerize的Ambari部署以支持运行它的旁边我Hadoop的容器。这里是我的Dockerfile:
I'm attempting to Dockerize an Ambari deployment to support running it along side my Hadoop containers. Here is my Dockerfile:
FROM ubuntu:14.04
ENV AMBARI_HOME /opt/ambari
ENV AMBARI_VERSION 2.2.0.0
RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get update \
&& apt-get -y install wget software-properties-common python-software-properties openssh-client openssh-server
# Install Java.
RUN \
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
add-apt-repository -y ppa:webupd8team/java && \
apt-get update && \
apt-get install -y oracle-java8-installer && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/oracle-jdk8-installer
# Define commonly used JAVA_HOME variable
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
RUN mkdir -p "$AMBARI_HOME"
WORKDIR $AMBARI_HOME
# passwordless ssh
RUN export DEBIAN_FRONTEND=noninteractive \
&& echo -e 'y\n'|ssh-keygen -q -t rsa -N "" -f /root/.ssh/id_rsa \
&& cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
RUN export DEBIAN_FRONTEND=noninteractive \
&& wget -nv http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.2.0.0/ambari.list -O /etc/apt/sources.list.d/ambari.list \
&& apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD \
&& apt-get update \
&& apt-get -y install ambari-server
#Disable SELinux
RUN echo SELINUX=disabled >> /etc/selinux/config
EXPOSE 8080
RUN ambari-server setup -s --verbose --java-home $JAVA_HOME
CMD ambari-server start
当我启动容器我碰到下面的错误 -
When I start the container I get the following error -
Using python /usr/bin/python2
Starting ambari-server
Ambari Server running with administrator privileges.
About to start PostgreSQL
Organizing resource files at /var/lib/ambari-server/resources...
WARNING: setpgid(73, 0) failed - [Errno 13] Permission denied
Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start.........
ERROR: Exiting with exit code -1.
REASON: Ambari Server java process died with exitcode -1. Check /var/log/ambari-server/ambari-server.out for more information.
似乎没有要在ambari-server.log的或.OUT
There doesn't seem to be anything useful in the ambari-server.log or .out
我发现了一个问题,为警告:setpgid(73,0)失败 - [错误13]许可被拒绝
在这里固定:的
I found an issue for WARNING: setpgid(73, 0) failed - [Errno 13] Permission denied
fixed here: setpgid issue
从阅读HortonWorks文档部署到Ubuntu 14.04,这应该工作:
From reading the HortonWorks docs for deploying to Ubuntu 14.04, this should work:
在Ubuntu上安装Ambari 14.04
我试图与嵌入式Postges部署,以及一个外部具有相同的结果。
I've tried to deploy with the embedded Postges as well as an external one with the same results.
一个有趣的注意的是,即使有错误,Ambari似乎是了,我可以登录为默认的admin /管理员,但是打电话时`ambari服务器一站式'它说没有进程正在运行...
One interesting note is that even with the error, Ambari appears to be up and I can login as the default admin/admin, but when calling `ambari-server stop' it says no process is running...
root@3e6d778b43f8:/opt/ambari# ambari-server stop
Using python /usr/bin/python2
Stopping ambari-server
Ambari Server is not running
root@3e6d778b43f8:/opt/ambari# jps
868 AmbariServer
955 Jps
我会在我的Ubuntu盒明天复制此设置,看看同样的事情发生。
I'll replicate this setup on my Ubuntu box tomorrow and see if the same thing happens.
谢谢!
编辑#1:泊坞窗信息
vagrant@vagrant-ubuntu-trusty-64:/vagrant/scripts$ docker info
Containers: 14
Images: 161
Server Version: 1.9.1
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 189
Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-44-generic
Operating System: Ubuntu 14.04.1 LTS
CPUs: 1
Total Memory: 3.861 GiB
Name: vagrant-ubuntu-trusty-64
ID: 7AD6:Z5TH:76NW:G54B:IHVK:PWKP:E2LI:CRPI:MIGM:STJU:3D2B:K7EQ
WARNING: No swap limit support
vagrant@vagrant-ubuntu-trusty-64:/vagrant/scripts$ docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:12:04 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:12:04 UTC 2015
OS/Arch: linux/amd64
泊坞窗是一个流浪VirtualBox虚拟实例中运行(V1.8.1)
docker is running inside of a Vagrant Virtualbox instance (v1.8.1)
推荐答案
我曾与内部在Ubuntu 14.04泊坞窗ambari服务器同样的问题。你可以尝试以下
I had same problem with ambari-server inside docker on ubuntu 14.04. Could you try the following
里面的/ etc /默认/泊坞窗添加
Inside /etc/default/docker add
DOCKER_OPTS = - 存储驱动程序= devicemapper
和重启泊坞窗服务。需要注意的是在此之后所有的图像将消失()。重建图像。
and restart the docker service. Note that after this all your images will disappear (http://muehe.org/posts/switching-docker-from-aufs-to-devicemapper/). Rebuild your images.
说实话我不是100%肯定,如果确实需要这一部分。
To be honest I'm not 100% sure if this part is really needed.
从AUFS切换后devicemapper您可能会收到以下错误:
After switching from aufs to devicemapper you might get the following error:
找不到容器
解决的办法是删除旧的AUFS db和任何现有的容器:
The solution was to remove the old AUFS db and any existing containers:
sudo rm -rf /var/lib/docker/containers/*
sudo rm -rf /var/lib/docker/linkgraph.db
重新启动您的码头工人,图像/容器现在应该在devicemapper发动机的正常工作。
Restarting your docker images/containers should now work on the devicemapper engine.
在 /etc/apparmor.d/docker
注释掉(#)行否认@ {PROC} / {*,** ^ [ 0-9 *],SYS /内核/ SHM * WKX}
,它在某种程度上混淆了AppArmor的utils的。不是运行
Inside /etc/apparmor.d/docker
comment out (#) line deny @{PROC}/{*,**^[0-9*],sys/kernel/shm*} wkx,
, it somehow confuses apparmor utils. Than run
sudo的AA-抱怨/etc/apparmor.d/docker
如果AA-抱怨罚球找不到命令,安装:
If aa-complain throws command not found, install:
sudo apt-get install apparmor-utils
开始后容器ambari服务器开始为我工作。
After starting the container ambari-server started working for me.
我不知道怎么泊坞窗依托这里的AppArmor,即什么样的风险上面的操作引入...
I dont know how docker relies here on apparmor, i.e. what risks the operation above introduces...
这篇关于Ambari 2.2 - 在Ubuntu 14.04多克尔容器非零状态code退出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!