当前位置: 首页 > article >正文

基于Ambari搭建hadoop生态圈+Centos7安装教程V2.0优化版(本篇博客写的较为详细,可能比较多,请耐心看)

当我们学习搭建hadoop的时候,未免也会遇见很多繁琐的事情,比如很多错误,需要解决。在以后公司,也不可能让你一个一个搭建hadoop,成千上万的电脑,你再一个个搭建,一个个报错,而且每台电脑错误还不一样,这就造成了很大的困扰,所以直接就用ambari里面集成的hadoop生态来用即可在这里,在这里我将写给出如何搭建Ambari以及搭建hadoop生态圈。

本片博客也有写的不好的地方,还请各位同学指正!感谢!

同学在看我文章的时候,要是没安装Centos7可以从头看,装的话直接跳到标题三:开始安装ambari即可。

前提注意(特别建议看)

1.要是三个虚拟机都要操作的话,我会特意写出来,没特地说明就是只用在虚拟机master里面操作

2.在这个期间不要提前乱改一些配置文件,不要因为提前就已知一些事后问题了,就开始提前修改或者注释一些文件内容。

3.最好搭建的时候不要中途断网或者什么一系列操作,或者就是说一会干干这一会干干那的,要做就要做一步到位是最好的!

4.Centos7的语言选择用英文的,不要用中文的,听别人说输入一些英文符号可能中文会识别解码,造成一些不必要的错误,毕竟这些东西是老外开发的,国际英文还是占据首要第一语言。

5.尽量在XShell里面操作虚拟机。

6.记住要在某一步,感觉自己前面做的很好,留快照!!!(快照不知道啥作用的也不会操作的在网上搜索补充和学习)

声明:

我写这个博客是基于上一个博主写的,博主csdn链接基于Ambari搭建大数据分析平台-CSDN博客,因为本人是按照他的博客完成的ambari操作,很多图片也是引用他的,本人感觉他的博客只能算是完成了百分之90,也就是相当于一个受伤的野马在奔跑,总会要摔倒的,所以我在这里基于他的博客做了一个优化和补充。

一、安装ambari预备

软件预备:这个在官网下载也可以,也可以用镜像下载,但是不建议在官网,建议在以下网盘下载或者镜像

链接:https://pan.baidu.com/s/18SGZkYnyq9AAjp5SLYqpZA?pwd=jiau

密码:jiau

(1)VMware Workstation 17 Pro

(2)CentOS-7-x86_64-DVD-2009.iso(mini版本也可以,差别就是mini无可视化界面,看个人喜好,网盘里面给的是mini版的,想找我写的版本可以去网上找,应该是在阿里云镜像里面有)

(3)ambari-2.6.0.0-centos7.tar.gz

(3)HDP-2.6.3.0-centos7-rpm.tar.gz

(4)HDP-UTILS-1.1.0.21-centos7.tar.gz

(5)jdk-8u112-linux-x64.tar.gz

(6)MySQL-5.6.46-1.el7.x86_64.rpm-bundle.tar

(7)mysql-connector-java-5.1.40.jar

(8)XShell,Xftp

首先在网上自行搜索安装VMware Workstation 17 Pro以及破解教程。

二、安装Centos7

2.1在VMware Workstation 17 Pro安装CentOS-7-x86_64-DVD-2009.iso

图片顺序就是安装的顺序

44f60733c1394d17a98fd3a4ffd5ec49.png

5854729f95c34599be1c88aaefb297b2.png

088d0a3be3be445594d50de9c922d482.png005d0492a4af45e28de207fffc8cd6b3.png

选好自己的路径,我感觉有很多学计算机的同学还是喜欢把东西放在C盘,尽量把东西往D盘移动,并且在D盘单独创建一个文件夹专门搭建ambari。

951e93950f6a4825aa0aeab7059152d3.png

选择4*2

029e9f1bd71f42d59079af380e9a64ad.png

选择4GB

aa2e7a38003e4bfd85df63adb844d2b2.png6a80c2cd634c4a3aa9e28c09ae7059c7.png

 7ef9255c322d4791b1018a5ef29ab39d.pngbc76d017ef904a529b03f5fff72c72b6.png

这里需要40GB

79fd936c2c424c1aa0cb0e0f2b0ee0a7.png 这个文件路径就放在你当前创建的虚拟机文件下路径下即可,不要乱放别处。8a29700a16f54c8598d3a576dd8a0da7.png895805527df746b0a0bb914ff6486ef9.png创建完之后

397cff65e9ff457e80e7813098a57f4e.png先不要着急开机,

找到自己电脑里面的Centos7镜像

8c9679604833453abbe295df0d1892c4.pngf39d69adcc744abf906bc21c4fd72f90.png

然后点击下面的确定,之后开启虚拟机

选择Install CentOS 7

5d27f0615cda429eb26649dfe5fbd60e.png然后就是等待,出现配置界面

选择英文!

141bb482d7a946ec93316ad3455a7fe0.png96a1adff009043479ce87bdc377cef50.png

步骤顺序(先了解顺序,选择下面会写):这个一个个来就好,第一步是DATE & TIME,第二步是KEYBOARD, 第三步是LANGUANGE,第四步是INSTALLATION SOURCE,第五步是SOFTWARE SELECTION。

a92db33ce432473a82afb5b0d5f46851.png第六步是INSTALLATION,第七步是KDUMP,第八步是NETWORK & HOST NAME, 第九步是SECURITY POLICY

------------------------------------------------------配置Centos7开始----------------------------------------------------

第一步:选择shanghai

e555f2759aea449f84386f92c35eaf78.png

第二步:选择English键盘

e0459aa31a004f72acf84b30b4db2924.png第三步:选择语言

633d1d37e72940e297bfd11716d7eadb.png

第四步:默认不动即可

7cb99c84011b44f6b43b4955b40646c3.png第五步:这个就是我之前在软件预备那里说的Centos7有专门的一个mini版,选择1的话,就是无可视化,也就是纯纯的命令框,选择2的话是有可视化版本的,就是有桌面,因为本人搭建ambari的时候看文件夹喜欢从可视化里面找,所以就安装GNOME Desktop了。

43006a3fdcb94a42b3ce6633b8569f5a.png

第六步:鼠标点两下那个磁盘,其他不变

f34d8a73ac9f4d96ac2fae6e12fd76a3.png第七步:不要勾选这个Enable kdump

9dd68a8dc64e448bb0c35be3ed388d64.png第八步:网卡打开,

e7afb81216a84f8ba4c26410bfa818f9.png第九步:这个不用管。

640ed50c089b4bdf95c12c0487224f9e.png

然后就点击下方的

90d103a21ec04b76a9ce16919dde3c3a.png

这里两个都设置一下(实际上要是你只设置第一个的话,那么你进入系统还是要设置第二个,而且也比较繁琐,所以两个都设置比较好)

03cc9d1e10754eac840421864a6f5cbb.png第一个:上下密码设置一样(建议设置简单的,因为后续在虚拟机操作需要输入很多次密码!)

这里的Done点击两下

cb48565cb479468facb66ed1261a6a34.png第二步:这个也是一样,只不过多了个用户名,我设置的是young,密码还和第一步一样,Done一样点击两下

1b6a711b8ae949c5a9e50c2cce26202f.png

然后等待。。。。。进入系统,等待这个加载完

a1a3dac8b4454f0aafbb1bbfc4da4e17.png然后完成安装

1e1b7ae1fbdb47d9aa83a422f424b0aa.png

依然是配置

d7148e42b483452283fe71c2c87a0df6.png第一步:打勾

ec66fadf46da4a8abb745799ca6f9b6e.png第二步:

1bfd18ca45f84a9cb8f64782db18dee2.png

第三步:点击右下角6b1c92d696174c41bf59ba290ce1717f.png

接下来就是进入用户了,点击用户

8d41531cbe4142a0a604aa8a89dbf32c.png

输入你之前设置的密码,可能出现输入不了数字,就是刚打开虚拟机的时候,数字键盘那个Num Lock灯灭了,按一下就能输入数字了。这个是虚拟机的通病。

413766761ad2428f8af189b12b953e5e.png

继续选English,点击右上角的Next

2f4a0395d3d94e808d4cb34537521369.png

选择English(US)下一步

a32fa47ebf4340208faf0ca7fb67b5a8.png

默认的就好,继续Next

796bec5a9c1d4b8e8e539b1ad18f1781.png

点击右上角的skip,这个时候Centos7终于安装好了!

cf00f6490add41729cd75e3cc2383ce0.png

三、开始安装ambari

本人一般是在XShell连接虚拟机下操作的,所以在这里不讲怎么用XShell连接虚拟机,网上也有教程。

3.1换镜像源

首先要换到root用户下操作这些命令,在命令框或者XShell输入进入管理员用户(也就是获得管理员权限)

su root

然后进去yum.repos.d文件,更换镜像源,你可以一步一步复制下来操作。

//进入yum.repos.d文件
cd /etc/yum.repos.d

//换第一个镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

//换第二个镜像源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

//清理原来的镜像缓存
yum clean all

//更新镜像源
yum makecache

3.2安装初始软件

yum -y install ntp openssh wget  vim  openssh-clients openssl gcc openssh-server  python-devel 

3.3安装JDK

下载网盘资源中的文件:jdk-8u112-linux-x64.tar.gz

借助工具(比如xftp, lrzsz, Winscp)将上面文件上传到虚拟机master

3.3.1安装jdk

解压jdk-8u112-linux-x64.tar.gz(本人喜欢把软件放在/opt目录下)

tar -xvf jdk-8u112-linux-x64.tar.gz -C /opt 

运行命令 vi /etc/profile修改环境变量,在文件末尾添加如下内容

export JAVA_HOME=/opt/jdk1.8.0_112
export PATH=${JAVA_HOME}/bin:$PATH

执行如下命令使环境变量生效

source /etc/profile

3.3.2测试jdk是否安装成功

java -version

 当出现这个界面的时候,说明jdk安装成功268a838d8fed41d197dfc0d6bff40216.png

3.4关闭防火墙,SElinux,PackageKit,检测umask值,最大文件描述

3.4.1关闭防火墙

systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld  #关闭开机启动
systemctl status firewalld	#查看防火墙状态

3.4.2关闭SELinux

setenforce 0

修改配置文件进行配置: vim /etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#   enforcing - SELinux security policy is enforced.

#   permissive - SELinux prints warnings instead of enforcing.

#   disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#   targeted - Targeted processes are protected,

#   mls - Multi Level Security protection.

SELINUXTYPE=targeted

如果系统有安装 PackageKit,需要修改配置文件vim /etc/yum/pluginconf.d/refresh-packagekit.conf

先检测有没有PackageKit文件

rpm -qa | grep PackageKit

弹出下面这些东西就说明有PackageKit

8343085a52494c138dcfbcff066fd9af.png

修改vim /etc/yum/pluginconf.d/refresh-packagekit.conf(里面就是什么东西都没有,不用疑惑或者猜想配置文件里面有一大堆东西而怀疑自己)

enabled=0

3.4.3修改umask

确保umask值为0022

#查看
umask
#修改为0022
umask 0022

针对所有交互用户进行永久性修改

echo umask 0022 >> /etc/profile

3.4.4修改最大文件描述

最大文件描述至少需要10000,可通过如下命令查看

ulimit -Sn

ulimit -Hn

可通过如下命令修改(说明,公司一般需要设置65535,我们自己用10000也可以,但是我建议设置65535比较好)

ulimit -n 65535

修改配置文件vi /etc/security/limits.conf,在文件尾部添加如下代码即可:

# End of file
* soft nofile 65535
* hard nofile 65535
* soft nproc 131072
* hard nproc 131072

四、设置静态IP

4.1修改IP地址

先看一下自己虚拟机的ip地址

ifconfig

 我的虚拟机给我分配的192.168.114.145这个后面的145这个网段,那么一会我下面我就把ip最后的网段设置145

741eafdcb04e46289c70efb82cb19c9c.png

修改配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33(我建议你把里面的文件全删了,换成我这个就好,然后在改动一点东西)

TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.91.129"
NETMASK="255.255.255.0"
GATEWAY="192.168.91.2"
DNS1="114.114.114.114"
DNS2="8.8.8.8"

注意,IP段需要查看VMware的虚拟网络配置情况,可以通过菜单编辑 -> 虚拟网络编辑器 -> VMnet8查看

红色的就是你自己的网段(注意,不要设置我的网段了,你是多少你就写多少)

bfc107cdae7a4a5abf39d7626f6f16c5.png

如下图所示的配置截图,则需要把上面配置项修改为

192.168.114.2这个不要变,因为2是默认的子网掩码。

IPADDR="192.168.114.145"
GATEWAY="192.168.114.2"

重启网络

/etc/init.d/network  restart

然后关机

8d564c489fb54dbb96bf7d7a80951eb7.png

五、克隆主机

然后克隆三个虚拟机出来,被克隆的作为母机,防止以后三个虚拟机崩溃然后重新装系统。建议在克隆的时候,单独创建三个文件夹,定义好名字,然后克隆放到相应的文件夹就好

第一步点击鼠标右键,然后二三步点击左键就好

32f3bf314d364963aa9072fbf70296bc.png

点击下一步

998b6c1601e843738802f0f72376bfb1.png

选择这个选项

10806758f5264ad7a364e2717a5128c8.png

解释一下,第一步就是你想起的名字(不影响虚拟机里面的主机名,能够在外面区分master,slave1,slave2即可),第二步就是选择的文件夹,第三步就是放在三个文件夹下面,最好是单独创建三个文件夹,master,slave1,slave2各方进一个文件夹就好,然后完成,就开始克隆了,克隆三个,记住,克隆三个!。

3921772fe8f34c2d87c35828cf12088b.png

克隆好之后,三个虚拟机全部打开(建议是一个一个打开,三个一起打开一般电脑遭不住)

0bb84c483c154c92aebf724a12cadb93.png

从这往下到同步时钟之前,三个虚拟机都要操作

进入虚拟机里面修改主机名,这个主机名也就是要设置的master,slave1,slave2。

hostnamectl --static set-hostname (主机名)

设置静态IP(因为是克隆母机的,这三个IP全部都一样)

 修改配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.91.129"
NETMASK="255.255.255.0"
GATEWAY="192.168.91.2"
DNS1="114.114.114.114"
DNS2="8.8.8.8"

 如下图所示的配置截图,则需要把上面配置项修改为(这个时候看看母机最后是多少,接着往往后走就行,比如我母机192.168.114.145后面是145,那我后面三个克隆主机,也就是master,就是146,147,148,不能超过255)

IPADDR="192.168.114.146"
GATEWAY="192.168.114.2"

 重启网络

/etc/init.d/network  restart

设置完之后重新开机 

三个设置好之后全部重新启动

六、hosts配置,同步时钟

6.1hosts配置

在主机master配置vi /etc/hosts,在文件末尾添加如下内容:

192.168.114.146 master
192.168.114.147 slave1
192.168.114.148 slave2

使用scp同步到salve1, slave2

scp /etc/hosts root@slave1:/etc/
scp /etc/hosts root@slave2:/etc/

6.2同步时钟

**目的:**在master服务器上启动ntp服务,然后slave1和slave2每10分钟同步一次时间

在master主机下操作

配置vi /etc/ntp.conf

第1个就只用把restrict192.168.114.0这个前面三个改成自己虚拟机里面的网段就行。

3849e689a7df406a83c0b08927c8d0e6.png

设置自动启动

systemctl start ntpd.service       #启动服务
systemctl enable ntpd.service      #开机启动

slave1、slave2主机(只在slave1和slave2主机下操作)

在slave1和slave2的主机上运行如下命令,可以让它们的时间与master服务器同步

ntpdate master

将时间同步设为定时任务,运行如下命令设置定时任务

crontab -e

编辑如下内容

*/10 * * * * /usr/sbin/ntpdate master

七、免密登录

这步操作要在三个虚拟机都要操作

这里只演示master主机操作(其他两个同样)

ssh-keygen -t rsa       #大概按3-4次下Enter键,到方框之后在按一下,开始下面操作
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

测试,如果不需要输入密码而顺利打印出时间信息,则免密登录设置成功

ssh slave1 date; ssh slave2 date; ssh master date;

八、创建本地源

这部分操作只需要在master主机上操作即可

下载网盘资源中的文件:ambari-2.6.0.0-centos7.tar.gzHDP-2.6.3.0-centos7-rpm.tar.gzHDP-UTILS-1.1.0.21-centos7.tar.gz

借助工具(比如xftp, lrzsz, Winscp)上传到虚拟机master用户,在master用户下用mv命令移动到/root目录。

mv ambari-2.6.0.0-centos7.tar.gz /root
mv HDP-2.6.3.0-centos7-rpm.tar.gz /root
mv HDP-UTILS-1.1.0.21-centos7.tar.gz /root

1. 安装httpd服务

yum -y install httpd      #安装httpd
systemctl restart httpd.service   #开启httpd服务
systemctl enable httpd.service    #开机启动

2. 将包放到/var/www/html目录

tar -zxvf /root/ambari-2.6.0.0-centos7.tar.gz -C /var/www/html/
tar -zxvf /root/HDP-2.6.3.0-centos7-rpm.tar.gz -C /var/www/html/
mkdir /var/www/html/HDP-UTILS
tar -zxvf /root/HDP-UTILS-1.1.0.21-centos7.tar.gz -C /var/www/html/HDP-UTILS

试试能否成功访问:http://192.168.114.146(解释:这个是master的IP)

成功的话网页就是出现一个巨大的testing 123。。。

3. 制作本地源

3.1 安装本地源制作相关工具

yum install yum-utils createrepo yum-plugin-priorities repolist -y
createrepo /var/www/html

3.2 修改源地址

3.2.1修改ambari.repo

vi  /var/www/html/ambari/centos7/2.6.0.0-267/ambari.repo

修改内容如下:

#VERSION_NUMBER=2.6.0.0-267
[ambari-2.6.0.0]
name=ambari Version - ambari-2.6.0.0
baseurl=http://master/ambari/centos7/2.6.0.0-267
gpgcheck=1
gpgkey=http://master/ambari/centos7/2.6.0.0-267/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
cp /var/www/html/ambari/centos7/2.6.0.0-267/ambari.repo  /etc/yum.repos.d/

3.2.2修改hdp.repo

vi /var/www/html/HDP/centos7/2.6.3.0-235/hdp.repo

内容如下

#VERSION_NUMBER=2.6.3.0-235
[HDP-2.6.3.0]
name=HDP Version - HDP-2.6.3.0
baseurl=http://master/HDP/centos7/2.6.3.0-235
gpgcheck=1
gpgkey=http://master/HDP/centos7/2.6.3.0-235/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

[HDP-UTILS-1.1.0.21]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.21
baseurl=http://master/HDP-UTILS
gpgcheck=1
gpgkey=http://master/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

cp /var/www/html/HDP/centos7/2.6.3.0-235/hdp.repo /etc/yum.repos.d/

上面就创建好了主机上的文件,然后可以通过下面命令清除yum的缓存

yum clean all
yum makecache
yum repolist

可以打开浏览器查看一下:
http://master/ambari/centos7/
http://master/HDP/centos7/

如果希望在本地计算机上使用http://master/ambari/centos7/和http://master/HDP/centos7/访问, 需要配置本机的hosts文件(这一步需要在windows下获得管理员权限,自己对windows操作不熟悉的话,建议不要用,等用的时候老师会讲)

C:\Windows\System32\drivers\etc\hosts, 添加如下内容即可:

192.168.114.146 master
192.168.114.147 slave1
192.168.114.148 slave2

 3.3 同步源文件

cd /etc/yum.repos.d
scp ambari.repo slave1:/etc/yum.repos.d/ambari.repo
scp ambari.repo slave2:/etc/yum.repos.d/ambari.repo
scp hdp.repo slave1:/etc/yum.repos.d/hdp.repo
scp hdp.repo slave2:/etc/yum.repos.d/hdp.repo

九、安装Ambari

Ambari有两种安装模式

一种是使用默认postgresql数据库的存储安装元数据
使用第三方数据库作为Ambari元数据库
我们这里使用mysql数据库作为Ambari元数据库  MySQL-5.6.46-1.el7.x86_64.rpm-bundle.tar、mysql-connector-java-5.1.40.jar

借助工具(比如xftp, lrzsz, Winscp)上传到虚拟机master用户,在master用户下用mv命令移动到/root目录。

mv MySQL-5.6.46-1.el7.x86_64.rpm-bundle.tar /root
mv mysql-connector-java-5.1.40.jar /root

9.1安装Ambari服务

yum install ambari-agent  //这一命令三个虚拟机都要执行安装

接下来就只用在master操作就好 

yum -y install ambari-server

如果出现安装失败,请检查本地源创建是否成功

9.2 配置Ambari

9.2.1 卸载MariaDB 和 已有MySQL

rpm -qa | grep -i mariadb

这里要注意的是,不要跟这我贴这个图片删除,你上面显示的是多少版本,你就改多少就可以,例如我的是mariadb-libs-5.5.68-1.el7.x86_64,那我就把下面这个里面的52换成68就可以

rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

卸载MySQL

rpm -qa | grep -i mysql

删除服务

systemctl list-unit-files --type=service | grep -i mysql

如果查找到mysql服务,使用下面的命令进行删除

chkconfig --del mysql

9.3 安装mysql数据库

安装依赖

yum -y install perl autoconf

这里用的离线安装(在线安装自行搜索网上教程)

因为前面都已经把MySQL相关的软件放到/root用户目录下了,所以需要进入到/root,本人是把/root里面的mysql软件解压到/opt了,同学们自己可以指定想要解压的目录

tar -xvf MySQL-5.6.46-1.el7.x86_64.rpm-bundle.tar -C /opt
cd /opt
rpm -ivh MySQL-client-5.6.46-1.el7.x86_64.rpm
rpm -ivh MySQL-server-5.6.46-1.el7.x86_64.rpm

#查看安装时产生的随机密码
cat /root/.mysql_secret

#启动mysql
service mysql start    


mysql -uroot -p    #登入mysql
Enter password:    #输入刚才查看的随机密码
mysql> set password for 'root'@'localhost' = password('123456');   #修改密码
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
mysql> flush privileges;   #刷新
mysql> exit

#MySQL服务自启动
chkconfig mysql on

MySQL 中 user 表中主机配置

mysql -uroot -p123456

mysql> show databases;   #显示数据库

mysql> use mysql;		#使用mysql数据库

mysql> show tables;		#显示数据库mysql中的所有表

mysql> desc user;		#显示user表的结构

mysql> select User,Host,Password from user;   #查看User表


# 删除 root 用户的其他 host
mysql> 
delete from user where Host='master';
delete from user where Host='127.0.0.1';
delete from user where Host='::1';

mysql> flush privileges;   #刷新

mysql> quit;

配置Mysql驱动

mkdir /usr/share/java
cp /root/mysql-connector-java-5.1.40.jar  /usr/share/java/mysql-connector-java.jar

修改ambari.properties,添加mysql驱动路径

vi /etc/ambari-server/conf/ambari.properties

在文件末尾添加如下内容:

server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar

在MySQL中创建数据库

实际上同学们可以创建完ambari就够了,后续再装的话老师会讲,也就是CREATE DATABASE hive;之后(包括此语句)都可以不用做了

mysql -uroot -p123456

mysql> CREATE DATABASE ambari;  
mysql> use ambari;  
mysql> CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambarizk123';  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';  
mysql> CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambarizk123';  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';  
mysql> CREATE USER 'ambari'@'master' IDENTIFIED BY 'ambarizk123';  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'master';  
mysql> FLUSH PRIVILEGES;  
mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql  
mysql> show tables;  
mysql> use mysql;  
mysql> select Host,User,Password from user where user='ambari';  
mysql> CREATE DATABASE hive;  
mysql> use hive;  
mysql> CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';  
mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';  
mysql> CREATE USER 'hive'@'master' IDENTIFIED BY 'hive';  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'master';  
mysql> FLUSH PRIVILEGES;  
mysql> CREATE DATABASE oozie;  
mysql> use oozie;  
mysql> CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';  
mysql> CREATE USER 'oozie'@'localhost' IDENTIFIED BY 'oozie';  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'localhost';  
mysql> CREATE USER 'oozie'@'master' IDENTIFIED BY 'oozie';  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'master ';  
mysql> FLUSH PRIVILEGES; 

配置Ambari

ambari-server setup

下面是配置执行流程,按照提示操作

(1)提示是否自定义设置。输入: y

Customize user account for ambari-server daemon [y/n] (n)? y

(2)ambari-server 账号, 如果直接回车就是默认选择 root 用户(按回车就行)

Enter user account for ambari-server daemon (root):

(3)设置JDK。输入:3

Checking JDK...
Do you want to change Oracle JDK [y/n] (n)? y
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==================================================================
============
Enter choice (1): 3

如果上面选择 3 自定义 JDK,则需要设置 JAVA_HOME。输入:/opt/jdk1.8.0_112(这个是我的jdk路径,你们一定要写后面的版本号,不要只写个jdk)

WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use
Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all
hosts.
Path to JAVA_HOME: /opt/jdk1.8.0_112
Validating JDK on Ambari Server...done.
Completing setup...

(4)数据库配置。选择:y

Configuring database...
Enter advanced database configuration [y/n] (n)? y

(5)选择数据库类型。输入:3

Configuring database...
==================================================================
============
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
==================================================================
============
Enter choice (3): 3

(6)设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。
如果想重命名,就输入。

Hostname (localhost): master    
Port (3306):
Database name (ambari):
Username (ambari): 
Enter Database Password (bigdata):ambarizk123    (这里输入时不会显示)
Re-enter password:ambarizk123 (这里输入时不会显示)

(7)将 Ambari 数据库脚本导入到数据库

WARNING: Before starting Ambari Server, you must run the following DDL against the
database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-
CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)?

9.4 启动 Ambari

ambari-server start 

成功启动后在浏览器输入Ambari地址测试:http://master:8080 (需要配置hosts, 没配置时可以直接访问 192.168.114.146:8080)

错误处理
如果出现错误,请注意查看日志,根据具体的错误内容进行处理,默认ambari-server的日志在/var/log/ambari-server/ambari-server.log里面。如果在处理日志的过程中或者后面安装的过程中出现一些莫名的错误,可以重置的安装。如果上面进行的默认数据库的配置,可以使用下面的代码重置ambari-server

ambari-server stop
ambari-server reset
ambari-server setup

十、搭建集群

10.1 登录

登录界面,默认管理员账户登录http://master:8080/ (需要配置hosts, 没配置时可以访问 192.168.114.146:8080), 账户:admin 密码:admin

注意,如果在windows上要访问master,需要配置 C:\Windows\System32\drivers\etc\hosts

10.2 安装向导

10.3 配置集群的名字为hadoop

10.4 选择版本和本地库

在redhat7后面填写:

//master的ip地址
http://192.168.114.146/HDP/centos7/2.6.3.0-235
http://192.168.114.146/HDP-UTILS

在这里,你一定要把redhat7放到第一位,也就是你可以把其他的删除了,什么ubuntu,别的系统给移除了,也就是Remove,留下一个redhat7就可以

10.4.1安装配置

填写主机地址以及主节点的id.rsa文件

需要首先把master节点为的私密(/root/.ssh/id_rsa)拷贝到windows:

这里把id_rsa放到windows还是有点讲究的。我用的是Xftp传到windows

先到虚拟机下执行以下命令

//在root管理员的权限下

cd /root/.ssh //进入该目录

ls //查看当前文件下的所有文件

//如果看见有id_rsa这个文件,就说明在root用户下,不在的话自己找一下,
这个文件是看不见的,一般来说是在root目录下。

cp id_rsa /home/用户名 //复制到主目录下

cd /home/用户名

chmod -R 777 /home/用户名/id_rsa  //修改权限才能传到windows桌面下

浏览那里选择,你把虚拟机里面的id_rsa放到windows下的文件,找到windows下的id_rsa选择即可

10.5 安装ambari的agent,同时检查系统问题

在这里,我要着重讲解以下,要是同学们安装的时候这三个显示的是preparing的话,先等10分钟左右,如果还是在preparing的话,那基本是前面某个步骤是没操作好,可以先看日志,实在不行就回到快照,最后的办法就是重装。按理说这三个刚开始就显示installing。

注意,出现preparing估计要重装了。。。。

如果同学们出现的是installing,那么大概率是失败的,最后出现的是Failed。

出现Failed的解决办法

修改配置文件 vim /etc/ambari-agent/conf/ambari-agent.ini, 在[security]模块末尾添加如下信息:

三个虚拟机都要添加

[security]
force_https_protocol=PROTOCOL_TLSv1_2

然后再重试,也就是点击Retry,成功之后往后进行

10.6 选择要安装的服务

这里其实只用安装HDFS,YARN+MapReduce2,HBASE,Pig,Sqoop,ZooKeeper,Flume就可以

10.7 分配主节点

虚拟机的配置有限,实验时采用默认的方式即可。(不用修改什么,直接进行下一步就好)

10.8 分配从节点

注意,不要勾选NFS,Phonenix这两列就行,其他勾选上

10.9 自定义服务

10.9.1 检查

Admin Name : admin

Cluster Name : hadoop

Total Hosts : 3 (3 new)

Repositories:

redhat7 (HDP-2.6):
http://192.168.91.128/HDP/centos7/2.6.3.0-235
redhat7 (HDP-UTILS-1.1.0.21):
http://192.168.91.128/HDP-UTILS
Services:

HDFS
DataNode : 3 hosts
NameNode : master
NFSGateway : 0 host
SNameNode : slave1
YARN + MapReduce2
App Timeline Server : slave1
NodeManager : 3 hosts
ResourceManager : slave1
Tez
Clients : 3 hosts
HBase
Master : master
RegionServer : 3 hosts
Phoenix Query Server : 0 host
Pig
Clients : 3 hosts
Sqoop
Clients : 3 hosts
ZooKeeper
Server : 3 hosts
Flume
Flume : 3 hosts
Ambari Metrics
Metrics Collector : slave2
Grafana : master
Kafka
Broker : master
SmartSense
Activity Analyzer : master
Activity Explorer : master
HST Server : master
Slider
Clients : 3 hosts

10.10 安装

遇到出错,需要查看日志文件,进行相应解决,遇见如下错误:

Traceback (most recent call last):
File "/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_client.py", line 73, in <module>
 HdfsClient().execute()
File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 367, in execute
 method(env)
File "/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_client.py", line 37, in install
 self.install_packages(env)
File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 803, in install_packages
 name = self.format_package_name(package['name'])
File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 538, in format_package_name
 raise Fail("Cannot match package for regexp name {0}. Available packages: {1}".format(name, self.available_packages_in_repos))
resource_management.core.exceptions.Fail: Cannot match package for regexp name hadoop_${stack_version}. Available packages: ['accumulo', 'accumulo-conf-standalone', 'accumulo-source', 'accumulo_2_6_3_0_235', 'accumulo_2_6_3_0_235-conf-standalone', '
123456789101112

 这时候要注释掉script.py第533行

vim /usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py

vim /usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py

#package_version = None  //在533行前面加上#, 缩进和上面#对齐


可能用到的命令
set nu //显示行

 然后重新尝试,最后三个都会出现SUCCESS

10.11 查看&管理集群

 这就安装成功了,这里面就可以监视hadoop生态圈的信息和数据了。

十一、添加服务(这一步做给自己看的,大家不要跟着操做)

我们将要添加hive服务,先运行如下命令:

ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

11.1 选择要添加的服务:

11.2 分配主机

11.3 分配从服务器和客户端

11.4 设置Hive服务

 11.5 安装

附语:还要学习HDFS命令操作。。。。(自行网上搜索)


http://www.kler.cn/a/321725.html

相关文章:

  • 基于VUE实现语音通话:边录边转发送语言消息、 播放pcm 音频
  • 系统架构设计师第二版口诀
  • postgresql.conf与postgresql.auto.conf区别
  • 【卡尔曼滤波】数据融合Fusion的应用 C语言、Python实现(Kalman Filter)
  • Unity图形学之Blend指令
  • Iotop使用
  • Android在外部存储上读写图片文件
  • 【python】range 语句
  • NLP 生成式任务核心梳理
  • react通过下拉框选择多个,并展示在下方的方式
  • 看Threejs好玩示例,学习创新与技术(React-three-fiber)
  • 【C++篇】从零实现 C++ Vector:深度剖析 STL 的核心机制与优化
  • SpringCloud源码:客户端分析(二)- 客户端源码分析
  • ArduSub程序学习(11)--EKF实现逻辑①
  • [AI问答] Auto-sklearn和Auto-Keras对比
  • Ubuntu20.04.6 环境下docker设置proxy
  • SpringBoot-Starter2.7.3自动装配Redisson升级版本运行时的问题
  • 自动驾驶技术:人工智能驾驶的未来
  • tauri程序加载本地图片或者文件在前端页面展示
  • ModStartCMS v8.9.0 图片上传优化,富文本编辑器修复
  • Spring Boot 实战:使用观察者模式实现实时库存管理
  • localectl 命令:系统语言、键盘布局和区域设置
  • CORE 中间件、wwwroot
  • C++11中引入的thread
  • 正向科技|格雷母线定位系统的设备接线安装示范
  • 脚手架是什么?详细版+通俗易懂版!!!!!!