docker+ubuntu+ambari+HDP ╰+攻爆jí腚メ 2022-05-27 11:12 208阅读 0赞 ### 1.调研: ### ##### 先明确几个概念: ##### 1). Ambari只能安装Hortonworks Data Platform,即Hortonworks的开源Hadoop,不支持Apach的Hadoop平台; 2). 对于已经安装了Apach Hadoop或者其他Hadoop平台的,不能使用Ambari来管理; docker ubuntu14.04 一台master 两台client Ambari-2.5.2.0 HDP 2.6.2 Ambari-server Ambari-client Docker安装: 必须安装docker CE:http://www.mamicode.com/info-detail-2129876.html sudo docker pull ubuntu:14.04 ### 2.制作镜像: ### #### 换清华源 #### apt-get update apt-get install vim apt-get install openssh-service apt-get install ntp #### 设置root密码,方便后续ssh免密码登录,密码统一设置为123: #### passwd root 123 123 vim /etc/ssh/sshd_config 替换#PermitRootLogin without-password为PermitRootLogin yes 修改默认端口22为2222 #### 配置hosts文件 #### vim /etc/hosts 10.108.113.168 client1.gtensor.com 10.108.112.177 client2.gtensor.com10.108.114.228 master.gtensor.com # stackc client1 # stackd client2 # stacke master #### 关闭防火墙 #### #关闭防火墙。不关闭防火墙,会导致hadoop集群通信出现问题。不仅是server机器需要关闭防火墙,建议集群内每台机器也关闭防火墙,在自动化安装过程中,某些端口被占用导致它们通信出现问题,结果最后证明是防火墙的问题。 # 在容器中部署docker服务,而docker服务又会使用到iptables,因此在启动容器时,也会同时启动容器内的iptables。但iptables必须工作在容器的privileged模式下,否则就会如上报错。如果不是以--net=host的方式进入docker没可能会出现关闭防火墙异常 apt-get install ufw ufw status ufw disable #### 关闭SElinux #### 提示,先检查SElinux状态,若为关闭,则无需再次关闭 #### openssl更新可以先不用管 #### # ubuntu14.04不升级出现错误 openssl升级为2016版:https://blog.csdn.net/why101010/article/details/51954827 3:获取最新版本 wget http://www.openssl.org/source/openssl-1.0.1t.tar.gz 4:解压缩 tar -zxvf openssl-1.0.1t.tar.gz 5:进入目录 `这里写代码片`cd openssl-1.0.1t 6:编译安装 ./config --prefix=/usr/local/ssl make depend make make install 7:#修改历史的OpenSSL文件设置备份mv mv /usr/bin/openssl /usr/bin/openssl.old mv /usr/include/openssl /usr/include/openssl.old 8:#设置软连接使其使用新的OpenSSL版本 ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl ln -s /usr/local/ssl/include/openssl /usr/include/openssl 9:#更新动态链接库数据 echo "/usr/local/ssl/lib" >> /etc/ld.so.confldconfig -v 这里写代码片如果是 1.0.1t,说明你安装正确了 #### 保存镜像 #### 再打开一个命令行窗口,保存镜像 sudo docker commit sudo docker tag f1f1ad34d048 ambari:v1.0重命名 sudo docker save -o ambari_1.0.tar imagesID保存至本地 通过scp拷贝至远程服务器 sudo docker load -i ambari_1.0.tar载入镜像 #### 可能用到的docker命令: #### sudo docker ps -a sudo docker kill imagesID 杀死docker进程 sudo docker rm imagesID 删除docker进程 #### 启动命令 #### sudo docker run -itd -h client1.gtensor.com --privileged=True --net=host --name="net_host-hdp-client1" -v /home:/home ambari-agent:v1.0 /bin/bash sudo docker run -itd -h client2.gtensor.com --net=host --privileged=True --name="net_host-hdp-client2" -v /home:/home ambari-agent:v1.0 /bin/bash sudo docker run -itd -h master.gtensor.com --net=host --privileged=True --name="net_host-hdp-server" -v /home:/home ambari-server:v1.0 /bin/bash sudo docker exec -it imagesID /bin/bash 这里必须采用--net=host的方式启用docker,因为若是再用默认,则不同节点之间的端口不能通信,除非在启用的时候用-p参数指出。 用--net=host模式,修改docker内部容器ssh的端口号为2222,因为ssh默认端口号为22,这个端口号被物理主机占用。 #### 分别配置免密码ssh登录: #### ssh-keygen -t rsa ssh-copy-id -i /root/.ssh/id_rsa.pub root@client1.gtensor.com -p2222 ssh-copy-id -i /root/.ssh/id_rsa.pub root@client2.gtensor.com -p2222 ssh-copy-id -i /root/.ssh/id_rsa.pub root@master.gtensor.com -p2222 测试:ssh -p2222 root@client2.gtensor.com ### 2.Ambari安装 ### #### 2.2.Ambari Server安装 #### ##### 在线安装: ##### 参考文献:https://blog.csdn.net/ggz631047367/article/details/50491616 1.wget -O /etc/apt/sources.list.d/ambari.list http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.5.2.0/ambari.list 或者vim /etc/apt/sources.list.d/ambari.list,里面输入:#VERSION_NUMBER=2.5.2.0-298 deb http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.5.2.0 Ambari main 两个方法效果相同 Ambari2.5.2下载链接:http://archive.apache.org/dist/ambari/ambari-2.5.2/ 注意:在后续步骤中AmbariServer会自动安装Ambari Agent到刚才指定的机器列表 2.apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CADapt-get updateapt-get install ambari-server (download ambari-server deb) 3.ambari-server setup (download java jdk) 4.ambari-server start 5.浏览器输入:http://master.gtensor.com:8080 6.账号密码默认都是:admin #### 离线安装: #### 1、下载Ambari文件,网址:https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.2.0/bk_ambari-installation/content/ambari_repositories.html 2、用Python建立最简单的web服务器 eg: mkdir web_server cd web_server vim aaa.txt(输入hello world!!作为测试) python3 -m http.server 2345 浏览器访问: http://localhost:2345/aaa.txt(在浏览器输入这个网址就可以访问刚刚建立的aaa.txt,显示hello world!) 将下载好的Ambari文件解压后,拷贝到web_server目录; 在浏览器输入:http://localhost:2345/ambari测试是否能访问到;这个网址即为下一步的baseurl。 Ambari: http://10.108.113.24:2345/ambari/ubuntu14/ HDP: http://10.108.113.24:2345/HDP/ubuntu14/ HDP-UTILS: http://10.108.113.24:2345/HDP-UTILS-1.1.0.21/repos/ubuntu14/ 3、配置 vim /etc/apt/source.list.d/ambari.list 输入内容:deb http://10.108.113.24:2345/ambari/ubuntu14/ Ambari main 然后添加秘钥:apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD 这一步参考官网:https://docs.hortonworks.com/HDPDocuments/Ambari-2.5.2.0/bk_ambari-installation/content/download_the_ambari_repo_ubuntu14.html 这一步需要注意,如果为内网,需要配置代理,用如下命令: 注意:这一条命令在所有节点上都要执行 apt-key adv --keyserver-options http-proxy="http://192.168.0.1:8001" --keyserver hkp://keyserver.ubuntu.com:80 --recv B9733A7A07513CAD apt-key adv --keyserver-options http-proxy="http://ip:8001" --keyserver hkp://keyserver.ubuntu.com:80 --recv B9733A7A07513CAD 4、验证配置是否成功 输入: apt-get update apt-cache showpkg ambari-server apt-cache showpkg ambari-agent apt-cache showpkg ambari-metrics-assembly 如果没有报错,则配置成功 5、安装ambari-agent ambari-agent不需要自己手动安装,在后面的步骤中,master会在验证ssh之后,在节点上安装,这一步不需要联网!! 6、安装ambari-server 在主节点上执行: apt-get update apt-get install ambari-server 在线配置ambari-server: ambari-server setup ############### 注意:自己部署JDK有风险 如果出现错误:_ssl.c:510: EOF occurred in violation of protocol 则说明是JDK的问题,请使用ambari自己下载的JDK 离线配置ambari-server: 其中,ambari-server setup是需要联网,下载java JDK的。如果为内网,可以手动下载安装JDK; JDK安装参考链接:https://blog.csdn.net/zht741322694/article/details/78960174 配置完环境变量之后 source ~/.bashrc,然后测试: java -version # jdk1.8.0_171 /usr/jdk64/jdk1.8.0_112 ############### ambari-server setup 1).遇到Customize user account for ambari-server daemon选择n,这样ambari就会在root下执行。 接下来需要配置JDK,将下载好的JDK解压到/opt/目录下 sudo tar -xvzf jdk-8u112-linux-x64.tar.gz -C /optsudo mv /opt/jdk-* /opt/jdk 2).在配置ambari的JDK的时候,选择3,输入JAVA_HOME为/opt/jdk,其他的一直回车就好了。 启动ambari-server sudo ambari-server start 在浏览器中,输入http://master.hadoop:8080开始安装,账号和密码为admin。 * 在内网中搭环境,通常需要配置ubuntu本地源: 参考连接:ubuntu 镜像,使用本地源:[https://blog.csdn.net/u012461550/article/details/42608853][https_blog.csdn.net_u012461550_article_details_42608853] deb http://10.108.113.24:2345/ubuntu/ trusty main restricted universe multiverse deb http://10.108.113.24:2345/ubuntu/ trusty-security main restricted universe multiverse deb http://10.108.113.24:2345/ubuntu/ trusty-updates main restricted universe multiverse deb http://10.108.113.24:2345/ubuntu/ trusty-backports main restricted universe multiverse deb http://10.108.113.24:2345/ubuntu/ trusty-proposed main restricted universe multiverse ### 3.Ambari界面下HDP的安装 ### #### 1.在线安装 #### 在线安装较为简单,参考官网链接:https://docs.hortonworks.com/HDPDocuments/Ambari-2.5.2.0/bk_ambari-installation/content/hdp_start_the_ambari_server.html #### 2.离线安装 #### 问题记录:ERROR 2018-07-04 07:02:56,804 NetUtil.py:96 - [Errno 8] _ssl.c:510: EOF occurred in violation of protocolERROR 2018-07-04 07:02:56,804 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions. Refer to: https://bugzilla.redhat.com/show_bug.cgi?id=1022468 for more details. 问题原因:openssl版本太低,需要升级; 操作: 参考链接:https://www.cnblogs.com/findumars/p/6278906.html 查看openssl版本:openssl version 显示为2014版,则需要升级到2016版; 在终端使用wget下载最新没有漏洞的版本 wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz tar xvf openssl-1.1.0c.tar.gz cd openssl-1.1.0c.tar.gz ./config apt-get install zlib1g-dev make clean make -j4 make install ![这里写图片描述][70] ![这里写图片描述][70 1] ![这里写图片描述][70 2] ![这里写图片描述][70 3] ![这里写图片描述][70 4] ![这里写图片描述][70 5] ![这里写图片描述][70 6] ### 保存镜像 ### 当运行好以后,启动服务,保存镜像。 需要用到docker commit命令等! ### 分布式环境启动脚本: ### 当机房断电后,或者其它因素导致需要重启时,壳执行下面脚本,快速启动; #### 以基础镜像v2版进行使用为例 #### 基础镜像分为两个镜像server和 client版 1) 镜像导入 在master节点导入server镜像 在每个client节点导入client镜像 查看docker images 是否有hdp-server hdp-client镜像 2) 镜像启动配置 Server启动脚本(新建容器) sudo docker stop ambari-hdp-server sudo docker rm ambari-hdp-server sudo docker run -itd -h master.gtensor.com --privileged=True -v /home:/home --net=host --name="ambari-hdp-server" ambari-hdp-server:v1.0 bash sudo docker exec ambari-hdp-server service ssh start sudo docker exec ambari-hdp-server ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime sudo docker exec ambari-hdp-server ntpd sudo docker exec -it ambari-hdp-server bash 在docker里执行 ambari-server restart ambari-agent restart ################################## Client 启动命令(新建容器) sudo docker stop ambari-hdp-agent sudo docker rm ambari-hdp-agent sudo docker run -itd -h {与物理主机ip对应的hosts} --privileged=True -v /home:/home --net=host --name="ambari-hdp-agent" ambari-hdp-agent:v1.0 bash #sudo docker run -itd -h client1.gtensor.com --privileged=True -v /home:/home --net=host --name="ambari-hdp-agent" ambari-hdp-agent:v1.0 bash #sudo docker run -itd -h client2.gtensor.com --privileged=True -v /home:/home --net=host --name="ambari-hdp-agent" ambari-hdp-agent:v1.0 bash sudo docker exec ambari-hdp-agent service ssh start sudo docker exec ambari-hdp-agent ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime sudo docker exec ambari-hdp-agent ntpd sudo docker exec -it ambari-hdp-agent bash 在docker里执行 ambari-agent restart 测试1: 查看系统时间 启动后查看docker内系统时间是否正确 不正确自行调整时间 测试2: 查看免密登陆 分别 ssh master.gtensor.com ssh client1.gtensor.com ssh client2.gtensor.com 查看是否需要密码 警告: 容器创建脚本只需要执行一次,再执行会把原有容器删除 [https_blog.csdn.net_u012461550_article_details_42608853]: https://blog.csdn.net/u012461550/article/details/42608853 [70]: /images/20220527/56f00f0ef9e847bfb276ae4681b04718.png [70 1]: /images/20220527/e156a8460ae44c24b122e4b8947ec9b6.png [70 2]: /images/20220527/aab7c43eb73940e19ac8e7d4e4dec609.png [70 3]: /images/20220527/9ce2d44a4e6a40a4a494f98cdede6dcd.png [70 4]: /images/20220527/fc01da5567cf484eb58cbe0144711d0c.png [70 5]: /images/20220527/50fb8364647e44578b58165cc5014243.png [70 6]: /images/20220527/db12833b7dc3482390afefe6763cb653.png
还没有评论,来说两句吧...