当我们学习玩搭建hadoop的时候,未免也会遇见很多繁琐的事情,比如很多错误,需要解决。在以后公司,也不可能让你一个一个搭建hadoop,成千上万的电脑,你在一个个搭建,一个个报错,而且每台电脑错误还不一样,这就造成了很大的困扰,所以直接就用ambari里面集成的hadoop生态来用即可在这里,在这里我将写给出如何搭建Ambari以及搭建hadoop生态圈。
前提注意:
1.要是三个虚拟机都要操作的话,我会特意写出来,没特地说明就是只用在虚拟机操作
2.在这个期间不要提前乱改一些配置文件,不要因为提前就已知一些事后问题了,就开始提前修改或者注释一些文件。
3.最好搭建的时候不要中途断网或者什么一系列操作,或者就是说一会干干这一会干干那的,要做就要做一步到位是最好的!
4.Centos7的语言选择用英文的,不要用中文的,听别人说输入一些英文符号可能中文会识别解码,造成一些不必要的错误,毕竟这些东西是老外开发的,国际英文还是占据首要第一语言。
5.尽量在XShell里面操作虚拟机。
声明:
我写这个博客是基于上一个博主写的,博主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无可视化界面,看个人喜好)
(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--------------------------------------------------------
(1)在VMware Workstation 17 Pro安装CentOS-7-x86_64-DVD-2009.iso
图片顺序就是安装的顺序
选好自己的路径,我感觉有很多学计算机的同学还是喜欢把东西放在C盘,尽量把东西往D盘移动,并且在D盘单独创建一个文件夹专门搭建ambari。
这个文件路径就放在你当前创建的虚拟机文件下路径下即可,不要乱放别处。创建完之后
先不要着急开机,
找到自己电脑里面的Centos7镜像
然后点击下面的确定,之后开启虚拟机
选择Install CentOS 7
然后就是等待,出现配置界面
选择英文!
步骤顺序(先了解顺序,选择下面会写):这个一个个来就好,第一步是DATE & TIME,第二步是KEYBOARD, 第三步是LANGUANGE,第四步是INSTALLATION SOURCE,第五步是SOFTWARE SELECTION。
第六步是INSTALLATION,第七步是KDUMP,第八步是NETWORK & HOST NAME, 第九步是SECURITY POLICY
------------------------------------------------------配置Centos7开始----------------------------------------------------
第一步:选择shanghai
第二步:选择English键盘
第三步:选择语言
第四步:默认不动即可
第五步:这个就是我之前在软件预备那里说的Centos7有专门的一个mini版,选择1的话,就是无可视化,也就是纯纯的命令框,选择2的话是有可视化版本的,就是有桌面,因为本人搭建ambari的时候看文件夹喜欢从可视化里面找,所以就安装GNOME Desktop了。
第六步:鼠标点两下那个磁盘,其他不变
第七步:不要勾选这个Enable kdump
第八步:网卡打开,
第九步:这个不用管。
然后就点击下方的
这里两个都设置一下(实际上要是你只设置第一个的话,那么你进入系统还是要设置第二个,而且也比较繁琐,所以两个都设置比较好)
第一个:上下密码设置一样(建议设置简单的,因为后续在虚拟机操作需要输入很多次密码!)
这里的Done点击两下
第二步:这个也是一样,只不过多了个用户名,我设置的是young,密码还和第一步一样,Done一样点击两下
然后等待。。。。。进入系统,等待这个加载完
然后完成安装
依然是配置
第一步:打勾
第二步:
第三步:点击右下角
接下来就是进入用户了,点击用户
输入你之前设置的密码,可能出现输入不了数字,就是刚打开虚拟机的时候,数字键盘那个Num Lock灯灭了,按一下就能输入数字了。这个是虚拟机的通病。
继续选English,点击右上角的Next
选择English(US)下一步
默认的就好,继续Next
点击右上角的skip,这个时候Centos7终于安装好了!
------------------------------------------------------安装ambari开始------------------------------------------------------
本人一般是在XShell连接虚拟机下操作的,所以在这里不讲怎么用XShell连接虚拟机,网上也有教程。
一、换镜像源
首先要换到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
二、安装初始软件
export JAVA_HOME=/opt/jdk1.8.0_112
export PATH=${JAVA_HOME}/bin:$PATH
三、安装JDK
下载文末网盘资源中的文件:jdk-8u112-linux-x64.tar.gz
借助工具(比如xftp, lrzsz, Winscp)将上面文件上传到虚拟机master
(1)安装(本人喜欢把软件放在/opt目录下)
解压jdk-8u112-linux-x64.tar.gz
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
(2) 测试jdk是否安装成功
java -version
当出现这个界面的时候,说明jdk安装成功
四、关闭防火墙,SElinux,PackageKit,检测umask值,最大文件描述
(1)关闭防火墙
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld #关闭开机启动
systemctl status firewalld #查看防火墙状态
(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
(2)如果系统有安装 PackageKit,需要修改配置文件vim /etc/yum/pluginconf.d/refresh-packagekit.conf
先检测有没有PackageKit文件
rpm -qa | grep PackageKit
弹出下面这些东西就说明有PackageKit
修改vim /etc/yum/pluginconf.d/refresh-packagekit.conf(里面就是什么东西都没有,不用疑惑或者猜想配置文件里面有一大堆东西而怀疑自己)
enabled=0
(3)确保umask值为0022
#查看
umask
#修改为0022
umask 0022
针对所有交互用户进行永久性修改
echo umask 0022 >> /etc/profile
(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
(1)修改IP地址
先看一下自己虚拟机的ip地址
ifconfig
我的虚拟机给我分配的192.168.114.145这个后面的145这个网段,那么一会我下面我就把ip最后的网段设置145
修改配置文件: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
查看
红色的就是你自己的网段(注意,不要设置我的网段了,你是多少你就写多少)
如下图所示的配置截图,则需要把上面配置项修改为
192.168.114.2这个不要变,因为2是默认的子网掩码。
IPADDR="192.168.114.145"
GATEWAY="192.168.114.2"
重启网络
/etc/init.d/network restart
然后关机
克隆主机
然后克隆三个虚拟机出来,被克隆的作为母机,防止以后三个虚拟机崩溃然后重新装系统。建议在克隆的时候,单独创建三个文件夹,定义好名字,然后克隆放到相应的文件夹就好
第一步点击鼠标右键,然后二三步点击左键就好
点击下一步
选择这个选项
解释一下,第一步就是你想起的名字(不影响虚拟机里面的主机名,能够在外面区分master,slave1,slave2即可),第二步就是选择的文件夹,第三步就是放在三个文件夹下面,最好是单独创建三个文件夹,master,slave1,slave2各方进一个文件夹就好,然后完成,就开始克隆了,克隆三个,记住,克隆三个!。
克隆好之后,三个虚拟机全部打开(建议是一个一个打开,三个打开一般电脑遭不住)
进入虚拟机里面修改主机名,这个主机名也就是要设置的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.146后面是146,那我后面三个就是147,148,149,不能超过255)
IPADDR="192.168.114.146"
GATEWAY="192.168.114.2"
三个设置好之后全部重新启动
六、hosts配置,同步时钟
(1)hosts配置
在主机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/
(2)同步时钟
**目的:**在master服务器上启动ntp服务,然后slave1和slave2每10分钟同步一次时间
在master主机下操作
配置vi /etc/ntp.conf
第1个就只用把restrict192.168.114.0这个前面三个改成自己虚拟机里面的网段就行。
设置自动启动
systemctl start ntpd.service #启动服务
systemctl enable ntpd.service #开机启动
slave1、slave2主机(只在slave1和slave2主机下操作)
在slave2和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.gz
、HDP-2.6.3.0-centos7-rpm.tar.gz
、HDP-UTILS-1.1.0.21-centos7.tar.gz
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.91.128
成功的话网页就是出现一个巨大的Test 123。。。
3. 制作本地源
3.1 安装本地源制作相关工具
yum install yum-utils createrepo yum-plugin-priorities repolist -y
createrepo /var/www/html
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/
(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.91.128 master
192.168.91.129 slave1
192.168.91.130 slave2