基于Ambari的大数据平台搭建
同CDH部署类似,步骤分为ambari的部署和hdp的部署,先以1台为例(内存>6G,磁盘划分/至少40G,/data/10G),后续节点可以通过扩容方式加入集群,可参考:https://blog.csdn.net/qq_32593713/article/details/81429573
一、安装环境准备
1、安装包准备
需要下载jdk-8u144-linux-x64.tar.gz,ambari-xx-centos7.tar.gz,HDP-xx-centos7-rpm.tar.gz,HDP-UTILS-xx-centos7.tar.gz到本地(rpm包非常大),链接:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.5/ambari-2.6.1.5-centos7.tar.gz
https://download.csdn.net/download/ljk168/10351315
http://public-repo-1.hortonworks.com/HDP-GPL/centos7/2.x/updates/2.6.4.0/HDP-GPL-2.6.4.0-centos7-rpm.tar.gz
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.4.0/HDP-2.6.4.0-centos7-rpm.tar.gz
2、主机准备。
修改虚拟机的网络设置、禁用SElinux、修改主机名、关闭防火墙、ssh免密、开启http服务、设置时钟同步;对于网络的要求是:NAT模式下,所有主机在同网段,且能访问外网。修改IP、网关、DNS;
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改ifcfg-en33的dhcp自动分配修改为静态寻址,增加ip/掩码/网关配置;(网关不管怎么配,都不要配192.168.x.1,因为1号IP是VMnet8网卡的IP)
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="5ed941c2-deb4-48ae-a76d-838503c8683c"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.242.111"
GATWAY="192.168.242.2"
NETMASK="255.255.255.0"
DNS1="192.168.242.2"
配置完成后通过service network restart 重启网卡设置,依然无法连接外网(ping www.baidu.com),可以增加默认dns;
route add default gw 192.168.242.2
其次,增加主机和主机名映射(/etc/hosts),关闭防火墙,关闭SElinux,设置多主机免密,开启http服务;
192.168.242.134 hadoop1
#关闭防火墙,centos7之前版本
systemctl disable firewalld
systemctl stopfirewalld
#关闭防火墙,centos7之后版本
systemctl disable firewalld.service
#重启生效
#vi /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
主机免密的方法:
主机A/B/C为例,设置免密登录的方法:
① 每台机器上执行 ssh-keygen -t rsa ,敲3次回车会在家目录/home/csap下生成隐藏的.ssh目录,首先需要给此目录赋权限700: chmod 700 .ssh;这个目录下有两个文件:id_rsa 私钥和id_rsa.pub 公钥;
② 在此目录中创建 authorized_keys 文件并赋权:
cd .ssh
touch authorized_keys
chmod 644 authorized_keys
③ 以机器A为例,执行以上操作后,如果不知道其他机器的密码,比如绑定4A;把自己的 id_rsa.pub 公钥 以及其他两台机器的公钥粘贴到 authorized_keys文件中,然后把这个文件复制到其他2台机器即可。等于所有机器都有其他机器的公钥,即可完成ssh 免密登录;
④ 如果知道其他机器密码,可以直接执行这个把公钥写到其他机器的authorized_keys文件中:ssh-copy-id -i ~/.ssh/id_rsa.pub?root@127.0.0.1
时钟同步(保证其他节点同ambari主节点时钟一致):
1、所有机器安装ntp :yum -y install ntp
2、主节点配置时钟与自己同步:vim /etc/ntp.conf,删除其他server,加入:
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
3、其他机器同步主节点的时间,vim /etc/ntp.conf,加入:
server xxx.xxx.xxx.xx
4、重启所有机器的ntp服务
systemctl restart ntpd或者service ntpd restart
systemctl status ntpd或者service ntpd status
5、验证同步
所有节点执行ntpq –p,左边出现*号表示同步成功。
6、若不成功;
/usr/sbin/ntpdate stdtime.gov.hk
ntpdate xxx.xxx.xxx.xxx
手动同步时间
开启http服务,/var/www/html/目录下会自动创建cm和cdh目录
yum -y install httpd
systemctl start httpd 或service httpd start
安装jdk,配置JAVA_HOME;
# 卸载其他jdk,使用下面的命令查看当前所有的Java环境的安装包
rpm -qa | grep java
# 使用下面的命令删除所有的Java安装包
rpm -e --nodeps 包名
# 安装jdk
mkdir /data/jdk
cd /data/jdk
tar -xvf jdk-8u144-linux-x64.tar.gz
# 修改环境变量,配置java的路径
vi ~/.bash_profile
# 增加配置:
JAVA_HOME=/data/jdk/jdk1.8.0_144
PATH=$PATH:$HOME/bin:${JAVA_HOME}/bin:${JAVA_HOME}/sbin
# 使生效
source ~/.bash_profile
#java -version 指令查看是否生效
3、配置mariaDB。作为hive和ambari的元数据库
# 安装数据库
yum -y install mariadb-server
# 启动
systemctl start mariadb.service
systemctl enable mariadb.service
#首先是设置密码,会提示先输入密码,直接回车,设置密码123456,一路回车
mysql_secure_installation
# 配置数据库
mysql -u root -p 123456
# (1)创建ambari数据库及用户:
create database ambari;
CREATE USER 'ambari'@'%'IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
# (2)创建Hive数据库和用户 再执行下面的语句:
create database hive;
CREATE USER 'hive'@'%'IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON . TO 'hive'@'%';
FLUSH PRIVILEGES;
# (3)创建Oozie数据库和用户 再执行下面的语句:
create database oozie;
CREATE USER 'oozie'@'%'IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON . TO 'oozie'@'%';
FLUSH PRIVILEGES;
# 最后,安装数据库的jdbc
yum -y mysql-connector-java
# jdbc的安装路径:/usr/share/java/mysql-connector-java.jar
4、上传安装包,创建本地yum源,开始安装ambari。
配置yum源(所有节点),删除/etc/yum.repos.d/下面的所有repo文件,清除之前的缓存yum clean all,虚拟机设置的选项中勾选“已连接”:
# 挂载文件(注意这里使用的是当时生效,关机后会失效。建议设置永久挂载文件):
mount /dev/cdrom /mnt/
# 设置自己的yum源
vi /etc/yum.repos.d/my.repo
[myrepo]
baseurl=file:///mnt
enabled=1
gpgcheck=0
下载到本地的hdp和ambari的RPM文件上传到/var/wwww/html/ambari目录下,有文件过大(>4G),xshell的rz指令无法直接上传,可以参考帖子:https://blog.csdn.net/FLawiet/article/details/89597389
# 解压安装包
cd /var/www/html/ambari/
tar -zxvf ambari-2.6.1.5-centos7.tar.gz -C /var/www/html/ambari
tar -zxvf HDP-2.6.4.0-centos7-rpm.tar.gz -C /var/www/html/ambari
mkdir /var/www/html/ambari/HDP-UTILS/
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz /var/www/html/ambari/HDP-UTILS/
# 解压后,需要删除目录下所有的html文件,不然后续会卡主,避免出错;
cd /var/www/html/ambari/
find . -name *.html
# html文件集中在一个文件夹下;
cd ./HDP/centos7/2.6.4.0-91/
rm *.html
# 解压后会在文件夹最底层内生成ambari.repo和hdp.repo和hdp-utils.repo文件
# 修改每个url后,拷贝到/etc/yum.repos.d/目录下,作为本地yum源;
# ① 在 /etc/yum.repos.d文件夹内修改ambari.repo,确保能够http访问baseurl;
cat ambari.repo # 内容如下
#VERSION_NUMBER=2.6.1.5-3
[ambari-2.6.1.5]
name=ambari Version - ambari-2.6.1.5
baseurl=http://192.168.242.111/ambari/ambari/centos7/2.6.1.5-3/
gpgcheck=1
gpgkey=http://192.168.242.111/ambari/ambari/centos7/2.6.1.5-3/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
# ② 在 /etc/yum.repos.d文件夹内修改hdp.repo,确保能够http访问baseurl;
cat hdp.repo # 内容如下
#VERSION_NUMBER=2.6.4.0-91
[HDP-2.6.4.0]
name=HDP Version - HDP-2.6.4.0
baseurl=http://192.168.242.111/ambari/HDP/centos7/2.6.4.0-91/
gpgcheck=1
gpgkey=http://192.168.242.111/ambari/HDP/centos7/2.6.4.0-91/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://192.168.242.111/ambari/HDP-UTILS/centos7/1.1.0.22
# baseurl=http://192.168.242.111/ambari/HDP-UTILS
gpgcheck=1
gpgkey=http://192.168.242.111/ambari/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
# gpgkey=http://192.168.242.111/ambari/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
开始安装ambari-server。
# 安装
yum install -y ambari-server
# 配置
ambari-server setup
配置中会提示输入JAVA_HOME和ambari元数据库的登录密码:
登录ambari数据库,对数据库进行初始化
mysql -uroot -p123456
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
show tables;
完成数据库的初始化后,启动 ambari-server start,如果中间报错可以看日志:/var/log/ambari-server/ambari-server.log,一般是数据库权限的问题,类似CDH的cm,安装成功后web访问(admin,admin);
5、开始使用ambari界面化操作,配置HDP。
按照指引操作,选择HDP的rmp包的位置:
可能出现的错误:Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password),请看一下authorized_keys 文件是否有服务器自己的公钥内容。出现错误:NetUtil.py:124 - Server at https://hadoop1:8440 is not reachable, sleeping for 10 seconds...", None)参考:https://blog.csdn.net/qq_41805514/article/details/88871477
组件安装,由于资源有限,这里只安装hdfs,mr,yarn,zk和spark组件为例。
本文分享自微信公众号 - 数据社(DataClub)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
3分钟短文 | Laravel 根据关联模型条目数量排序,怎么做?
引言 在laravel中我们使用模型操作数据库表,同时使用 hasOne belongTo hasMany 等关联关系模型 建立不同模型之间的关联。对于简单的查询操作这完全应付的来。 可是现实的业务需求往往充满变数,今天我们就说一个需求, 根据关联模型的数量进行排序,应该如何写代码。 学习时间 我们用实例进行解释,首先是表结构,为了简化操作,只罗列出主要的字段。首先是 hackathons 表的两个字段: id name begins ends description 然后是 user 表的字段: id name 还有一个关联表 hackathon_user 字段: hackathons_id user_id 好了,基础数据已经建立,接着我们使用laravel的模型操作数据库表。首先声明 Hackathons 模型: class Hackathon extends Model { protected $fillable = ['name', 'begins', 'ends', 'description']; protected $table = 'hackathons'...
- 下一篇
白话K8S核心组件概念
背景 前不久公司领导跟我聊天,K8S是什么? 它能干什么? 二话不说,直接搬出概念,它的本质是工业级编排平台,负责容器的弹性、管理和编排。 我之前没有怎么接触K8S相关的概念,啥是容器?怎么弹性?如何管理和编排? 容器是利用了集装箱的思想,把可运行程序打包成可运行、自包含、标准化的镜像。通过K8S能够管理和编排我们打的镜像,举例来说,如果你想运行两个副本,直接在编排文件中配置replicas为2即可,你也可以使用HPA通过检测CPU、内存使用率实现自动扩缩容。 又是镜像,又是编排,引入这么多新概念,能hold住?你就给我说说,它和SpringCloud、dubbo...等微服务框架有什么不同? SpringCloud、dubbo等框架和K8S切入点不同,K8S能够支撑所有框架和语言,并提供了平台级别的服务;而SpringCloud仅仅是整合了Java库以及各种运行时概念,是通过JVM级别来管理的。 到此结束吧,说到底,还是没有讲清楚它的本质、不能用通俗易懂的语言说清楚K8S到底是什么! 对于一个没有接触到云原生概念的人,如何讲清楚云原生时代的操作系统K8S到底是什么?和普通微服务框架有...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Red5直播服务器,属于Java语言的直播服务器
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)