问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...但无法正常连接到宿主机的mysql应该如何解决?

发布网友 发布时间:2024-03-23 20:32

我来回答

2个回答

热心网友 时间:2024-04-02 23:55



Ambari是Apache的开源项目,它帮助用户在GUI页面上简单的部署、管理、监控Hadoop集群环境。Ambari支持的Hadoop组件包括HDFS、Hive、HBase、Spark、Yarn等,HortonWorks官方也是采用Ambari来完成自家HDP套件的安装、管理及监控的。除了预置的组件之外,Ambari还支持自定义组件的安装,同时,支持RESTful的API,继而可以通过命令行等方式调用Ambari来完成一些自动化的任务。

本文共分为两部分,第一部分介绍如何在Docker虚拟化环境中部署Ambari;第二部分介绍如何基于Ambari来部署和管理Hadoop集群。

### 环境信息
* Docker发行版:Docker for Mac
* Docker版本:17.06.2-ce
* Docker容器OS:Ubuntu 14.04
* Ambari版本:2.5.2.0

Docker环境准备

拉取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

热心网友 时间:2024-04-02 23:49

1、用docker ps查看一下node1是否正常运行了;
2、如果运行,进入容器 docker exec -it node1 bash,运行mysql -uroot -p
试试刚才的密码是否正确
3、进入mysql后,查看是否允许远程连接mysql
如果有问题,再提。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
适合玩剑三的电脑配置剑网3配置要求是什么 唐·璜(第三场) 净水器哪个牌子好质量好又安全?苏泊尔净水器质量怎么样 苏泊尔(SUPOR)净水器-适用对象 苏泊尔超滤净水器-适用对象 净水器苏珀尔和美的哪个好一点?净水器苏珀尔和美的哪个牌子好_百度知 ... 苏泊尔净水器怎么样 苏泊尔三百块的净水器怎么样 苏泊尔净水器质量怎么样 网签有哪些材料 ...柔段誉颜值垫底、“老婆团”抢眼,新《天龙八部》有哪些看点和槽点... 陶壶可以用电陶炉烧水吗? 用电陶炉加热时为什么总有一股难闻的气味?这气味是怎样产生的?如何防 ... 锥体系会引发共济失调吗? 简述锥体系的功能。[5分] 锥体系的生理功能是: 10年工龄期间的加班费年休费有权索赔吗 工资的组成部分一般分为几项?199 工资月总收入是什么含(五险一金算吗19 北京市的警察一个月发多少工资?110 被别人注销该怎么办? 我的被别人注销了怎么找回来? 是别人的实名但一直是我使用,被别人注销了,怎么办? 珍珠鸟羽毛蓬松没精神 美团外卖兼职骑手一个月能挣多少钱 女人如茶慢慢品,对联1 现实社会女人如茶越品越醇香浓郁. 男人如茶女人如书,人生如棋是啥意思18 为什么女人如茶越品越醇香浓郁.6 用茶比喻女人20 女人喝红酒好吗423 求黑道网游或纯西方式网游 我爸得肺气肿,在医院住了一个星期,回到家还是不能动,一动就喘不过气... 女性喝什么酒对身体最好58 喝什么酒对女性有好处?具体有什么好处? 女性喝红酒对身体有哪些好处?285 女人玩上喝点白酒对身体有好处吗198 女人喝酒有哪些好处?323 女人喝红酒对身体有什么好处?292 高启强为什么雇人砍自己 支付宝财富有什么用 支付宝财富有什么用 财富是什么意思(财富黑金卡) 支付宝发了一张财富要不要领 支付宝新出的财富是什么?推出这个的目的是什么? 支付宝财富v1收费吗 支付宝的财富收费吗 冬天分体空调应该怎样加氟冬天分体空调使用时发现制 今天朋友给我打电话说让我往他码里发个验证码,说是他码长... 中国十大品牌化妆品都有什么牌子125