拉取Docker镜像:在宿主机上执行命令docker pull ubuntu:14.04从远端仓库中获取Ubuntu的镜像,也可以获取其他OS的镜像,本文以Ubuntu为例

启动Docker容器:执行如下命令,以ubuntu:14.04镜像为基础启动容器:

docker run -itd --name ambari_new -p 8080:8080 -p 3306:3306 -v /Users/yuxiaolei/Workspace/dockerShared:/dockerShared ubuntu:14.04 /bin/bash

由于Ambari启动Web程序的时候占用8080端口,因此要从Docker宿主机上访问Ambari页面,需要通过参数 -p 来制定端口映射;

作为新手,笔者在容器内部署好Ambari之后,才发现Web页面的8080端口和MySQL的3306端口(可选)没有暴露给Docker宿主机,也就没法从宿主机上通过浏览器来登陆Ambari,因此必须想办法在已有容器上开放端口。

有两个方法:

1)如果宿主机为Linux系统,则修改iptables防火墙来指定端口映射规则;

2)如果是非Linux系统,可以将已装Ambari的容器commit为新的镜像,再基于该镜像创建新的容器。此时,就可以在docker run命令中添加参数 -p 来指定端口映射了。

还有一个问题,Ambari将其数据存储在数据库中,支持MySQL、PostgreSQL等数据库;容器内安装MySQL之后,基于上一步创建的新容器里,会发现MySQL启动不起来,执行命令/etc/init.d/mysql restart启动失败,在/var/log/mysql/error.log日志文件中打印有170802 14:02:59 [ERROR] Fatal error: Can't open and lock privilege tables: Got error 140 from storage engine的错误,经过网上查资料,需要在创建容器的时候添加参数-v /var/lib/mysql将MySQL数据存储路径声明为数据卷,即可解决问题。

启动容器之后,执行命令docker exec -it ambari /bin/bash进入容器内部。

Ambari安装

配置Ubuntu的软件仓库源:

国内建议采用阿里云的软件源,在root账号下用vim打开/etc/apt/sources.list文件,删除文件所有内容,粘贴如下内容:deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

执行命令apt-get update完成软件列表更新

安装Ambari所依赖的软件apt-get install software-properties-common

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

sudo apt-get install oracle-java8-set-default

完成安装之后,在 ~/.bashrc 文件末尾添加命令 `export JAVA_HOME=/usr/lib/jvm/java-8-oracle ` 以配置JAVA\_HOME 环境变量。

create database ambari;use ambari;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root_password' WITH GRANT OPTION;FLUSH PRIVILEGES;exit;

由于Ambari的数据存储在MySQL数据库中,这里为Ambari单独创建了database,并为其赋了完全控制权限;说明:假设MySQL数据库root用户的密码为:root\_password

修改 `/etc/mysql/my.conf`,将`skip-external-locking`注释掉,并确保 `bind-address = 0.0.0.0` 配置,以使MySQL可被远程主机访问。

执行命令`/etc/init.d/mysql restart`重启MySQL 服务。

时间同步服务器ntp:执行命令apt-get install ntp安装ntp时间同步服务器,以便于集群环境中各节点的时钟一致;执行命令sudo service ntp restart重启ntp服务。

MySQL:执行命令apt-get install mysql-server安装MySQL服务器,安装完成后执行命令mysql -uroot -proot进入MySQL客户端,执行如下SQL代码:

Oracle JDK:逐条执行如下命令,以添加WebUpd8团队(https://launchpad.net/~webupd8team/+archive/ubuntu/java)提供的Oracle JDK仓库源,并从该仓库安装JDK:

下载Ambari仓库文件

进入cd /etc/apt/sources.list.d目录,执行命令wget http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.5.2.0/ambari.list从HortonWorks仓库中下载Ambari源文件,下载后切勿修改list文件名;

执行命令apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD以信任远端仓库的GPG签名

执行命令apt-get update更新Ambari软件源

执行命令apt-get install ambari安装Ambari套件,由于软件包较大(700多MB),这里情耐心等待,不过apt-get支持断点下载,网络终端后重新执行命令时不会从零开始下载

配置Ambari:

执行命令mysql -uroot -proot进入MySQL客户端,执行命令source ambari进入ambari的数据库,并执行命令source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql来完成Ambari的数据库表初始化操作;

执行命令ambari-server setup启动Ambari的引导式配置操作,根据指导做配置即可。需要注意的是,JDK不要选择由Ambari从网络下载,应该选择自定义路径,然后输入/usr/lib/jvm/java-8-oracle即可;

启动Ambari:执行命令ambari-server start,启动日志存储路径为/var/log/ambari-server/ambari-server.log

启动之后,由于我们之前做了Docker容器的端口映射,因此可以在宿主机上打开浏览器输入http://localhost:8080即可访问Ambari登陆页面

登陆用户名和密码均为admin,登陆之后就可以看到Ambari的首页了,如下图:

{% asset_img

mysql启动集群报连接本地失败_Docker的mysql集群节点可以正常创建,但无法正常连接到宿主机的mysql应该如何解决?...相关推荐

  1. Docker容器的程序连接宿主机的MySQL

    docker里面的代码生成的数据需要写入到宿主机的Mysql服务器上,想要用本地的数据库测试自己的代码正确性,项目程序安装在docker容器中,于是必定要在docker容器里访问到本地的数据库. (1 ...

  2. mysql启动集群报连接本地失败_启动本地安装的pxc集群失败,前面的步骤都检查没错了...

    在真是的华为云linux centos7.4 上执行 systemctl start mysql@bootstrap.service 启动失败了 ● mysql@bootstrap.service - ...

  3. plm系统连接服务器失败,金蝶PLM常见问题集(doc 51页)

    第一章 数据库性能优化篇 5 1. 如何在Windows32位系统中,提高SQL Server服务性能? 5 2. 如何通过重建索引提高数据库访问性能? 5 第二章 安装.登录.服务器篇 6 1. 客 ...

  4. 更改主机名后mysql无法启动_主机名变更导致MySql启动失败

    问题描述 mySql 启动时,报错ERROR! The server quit without updating PID file (/usr/local/var/mysql/bogon.pid) 解 ...

  5. nginx集群报错“upstream”directive is not allow here 错误 [

    nginx集群报错"upstream"directive is not allow here 错误 搭建了一个服务器, 采用的是nginx + apache(多个) + php + ...

  6. mysql连接本地数据路命令_MYSQL 连接数据库命令收藏

    一.MySQL 连接本地数据库,用户名为"root",密码"123"(注意:"-p"和"123" 之间不能有空格)C:\ ...

  7. eclipse链接mycat报数据源初始化失败

    程序环境: maven + eclispe + mycat 1.6 + mysql5.6 程序启动的时候报数据源初始化失败,错误日志如下: 2018-03-16 17:41:23 [ERROR]-[c ...

  8. docker连不上宿主机mysql_宿主机连接docker中的mysql

    宿主机连接docker中的mysql dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 3306: ...

  9. Remix连接本地项目(Solidity)

    在做项目当中很多人都是用到网页版得Remix,但是Remix网页版得代码都是存在缓存内存当中,很容易就会丢失自己得代码,所以需要从本地把项目connect 起来使用,这样有效得防止代码得丢失等,也方便 ...

最新文章

  1. 转 使用putty从linux主机上面往windows主机下面拷贝文件
  2. python raise 引起的异常
  3. ubuntu18.04下利用deepin-wine-wechat安装微信显示问题
  4. 线程间的通信方式1--共享变量(内存)
  5. 【坐在马桶上看算法】算法10:二叉树
  6. react学习(32)----onref
  7. 使用EasyExcel导入导出Excel报表-JAVA解析Excel工具
  8. 双目相机定位3d python_用深度学习实现 2D 到 3D 的转换
  9. antd 能自适应吗_我文笔不好,不太会写文章,能做好自媒体吗?
  10. 计算机基础知识必刷,《2019年江苏专转本考试-计算机基础必刷题题库(第四章)》...
  11. mysql从只有一个备份文件(多个数据库的备份)中恢复数据到指定数据库
  12. ROS-Kinetic安装turtlebot-3并仿真
  13. android 关闭线程句柄,android进程与线程详解三:AsyncTask
  14. rufus 制作 Android U盘启动盘的方法
  15. WPF NotifyIcon使用
  16. 使用BarTender连接Excel文件批量打印图片
  17. 破解虚拟机ESXi服务器密码,esxi虚机Windows server 2012忘记密码解决办法
  18. Echarts与bmap结合使用百度地图系统自带的12个个性化模板mapStyle列表
  19. 2020-11-20
  20. 泛泰升级包下载工具Windows版介绍_下载_使用说明_编写原理[2014.3.24更新v0.3]

热门文章

  1. AcWing 1022 宠物小精灵之收服
  2. 【论文简述】Rethinking Depth Estimation for Multi-View Stereo: A Unified Representation(CVPR 2022)
  3. 次坐标从0开始_定位基础-坐标变换
  4. 玩转SQLite5:使用Python来读写数据库
  5. matlab m序列扩频,基于matlab的移位寄存器法m序列的产生
  6. crc16modbus查表法_分别用定义法和查表法求取MODBUS_CRC16的值
  7. Java Ucase_JSP页面中的变量和方法声明(Declaration)、表达式(Expression)和Java程序片(Scriptlet)统称为JSP标记。...
  8. Nebula Graph 在企查查的应用
  9. 仿企查查、天眼查关系图以及架构图(双向树,集团图谱,组织架构图谱,企业图谱,网络拓扑,人物关系网络)
  10. NeuralProphet之七:NeuralProphet + Optuna