大家好,我是怀瑾握瑜,家有两只吞金兽,嘉与嘉 大数据萌新,期待与您共同成长 可关注企鹅号【怀瑾握瑜的嘉与嘉】,获取资源下载方式
1. 服务地址
172.29.30.61172.29.30.62172.29.30.63172.29.30.64172.29.30.65
账号密码:
root/Root123
2. Ambari搭建前环境准备
2.1. 版本介绍
截止到2020.03.03,Ambari的最新版本为2.7.5,HDP的最新版本为3.1.5
通过 https://supportmatrix.hortonworks.com/ 可以查询Ambari和HDP各个版本支持情况
2.2. 搭建环境
2.2.1. 所用环境列表
| 环境 | 版本 |
|---|---|
| Linux | Centos7物理机*5(英文系统) |
| Ambari | 2.7.4 |
| HDP | 3.1.4 |
| HDP-UTILS | 1.1.0.2 |
| MySQL | 5.7 |
| OracleJDK8 | 1.8.0_201 |
2.2.2. 环境下载
使用迅雷,直接复制连接
(外部提供)鉴于有很多用户反映离线包已收费,这里提供一下白度云地址:链接: https://pan.baidu.com/s/1obECabArXjHmZXVuxxpdYQ 提取码: ma4e
2.3. 修改网络配置(所有节点)
PS.目前由运维提供的环境,改配置已修改好,查看无误后可以略过
用xshell连接执行
# cd /etc/sysconfig/network-scripts

找到ifcfg-en开头,后面的数字由每台机器生成各有不同,直接vi编辑即可
修改前:
修改后:
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticIPADDR=172.29.30.61NETMASK=255.255.255.0GATEWAY=192.168.105.1DNS1=114.114.114.114DNS2=8.8.8.8DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=eno1UUID=6c053b64-6581-4665-b3fc-c22f79c58848DEVICE=eno1ONBOOT=yes
重启网络服务:# service network start
ping一下局域网其他机器 通了即可
``
3. 系统环境配置
3.1. 安装JDK(所有节点)
Linux自带的jdk或者是通过yum安装的jdk都是openjdk
最好是使用开源的oracle jdk,缺失部分功能,如果直接安装oracle的jdk,第三方的依赖包不会安装,我们这里是通过yum安装openjdk,并同时安装了第三方依赖包,然后卸载openjdk,通过自己来安装oracle的jdk,就能解决依赖问题。
3.1.1. 卸载OpenJDK
[root@master ~]# java -versionopenjdk version "1.8.0_212"OpenJDK Runtime Environment (build 1.8.0_212-c061)OpenJDK 64-Bit Server VM (build 25.212-c061, mixed mode)[root@master ~]# rpm -qa|grep javajavapackages-tools-3.4.1-11.el7.noarchjava-1.8.0-openjdk-1.8.0.212-0.c061.el7_7.x86_64python-javapackages-3.4.1-11.el7_7.noarchtzdata-java-2018d-1.el7_7.noarchjava-1.8.0-openjdk-headless-1.8.0.212-0.c061.el7_7.x86_64[root@master ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.212-0.c061.el7_7.x86_64[root@master ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.212-0.c061.el7_7.x86_64
注意变更当前机器的OpenJDK版本
3.1.2. 安装运维提供的JDK
拷贝打包好的jdk文件,创建相应目录,拷贝过去后解压缩,配置环境变量,注意更换jdk.tar所在路径
# mkdir -p /app/tools/java/# cd /app/tools/java/# cp -f /root/jdk.tar ./# tar -xvf jdk.tar# export JAVA_HOME=$JAVA_HOME:/app/tools/java/jdk1.8.0_201# export PATH=$PATH:/app/tools/java/jdk1.8.0_201/bin# export CLASSPATH=$CLASSPATH:/app/tools/java/jdk1.8.0_201/lib/dt.jar:/app/tools/java/jdk1.8.0_201/lib/tools.jar
3.2. 修改节点名称(所有节点)
3.2.1. 修改/etc/hosts文件(所有节点)
# vi /etc/hosts172.29.30.61 sy-ykcl-172-029-030-061 ykcs1.hadoop.com172.29.30.62 sy-ykcl-172-029-030-062 ykcs2.hadoop.com172.29.30.63 sy-ykcl-172-029-030-063 ykcs3.hadoop.com172.29.30.64 sy-ykcl-172-029-030-064 ykcs4.hadoop.com172.29.30.65 sy-ykcl-172-029-030-065 ykcs5.hadoop.com
3.2.2. 修改/etc/sysconfig/network(所有节点)
PS.该配置项不配置,也可用hostname进行ping通,检查无误后可略过
各节点改成相对应的节点名即可
[root@master ~]# vi /etc/sysconfig/network# Created by anacondaNETWORKING=yesHOSTNAME=master[root@master ~]# hostnamectl set-hostname master[root@master ~]# hostnamemaster
3.3. 更新阿里巴巴yum源(所有节点)
阿里巴巴开发者社区url: https://developer.aliyun.com/mirror/
选择Centos

可直接运行如下
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# yum makecache
3.4. 同步时间ntp
3.4.1. 安装ntp服务(所有节点)
# yum -y install ntp
启动服务,查看状态并设置开机自启
[root@master ~]# systemctl start ntpd.service[root@master ~]# systemctl status ntpd.service● ntpd.service - Network Time ServiceLoaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2020-03-02 15:41:28 CST; 23h agoMain PID: 3909 (ntpd)CGroup: /system.slice/ntpd.service└─3909 /usr/sbin/ntpd -u ntp:ntp -gMar 02 15:41:28 master ntpd[3909]: Listen normally on 4 lo ::1 UDP 123Mar 02 15:41:28 master ntpd[3909]: Listen normally on 5 eno1 fe80::7b94:c6e6:5673:c105 UDP 123Mar 02 15:41:28 master ntpd[3909]: Listening on routing socket on fd #22 for interface updatesMar 02 15:41:28 master systemd[1]: Started Network Time Service.Mar 02 15:41:28 master ntpd[3909]: 0.0.0.0 c016 06 restartMar 02 15:41:28 master ntpd[3909]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPMMar 02 15:41:28 master ntpd[3909]: 0.0.0.0 c011 01 freq_not_setMar 02 15:41:35 master ntpd[3909]: 0.0.0.0 c614 04 freq_modeMar 02 15:58:21 master ntpd[3909]: 0.0.0.0 0612 02 freq_set kernel 8.697 PPMMar 02 15:58:21 master ntpd[3909]: 0.0.0.0 0615 05 clock_sync[root@master ~]# systemctl enable ntpd.service

3.5. 关闭防火墙(所有节点)
查看防火墙状态
# systemctl status firewalld.service
关闭防火墙
# systemctl stop firewalld.service
设置开机不启动
# systemctl disable firewalld.service
查看是否成功
# systemctl is-enabled firewalld.service

3.6. 关闭Selinux和THP(所有节点)
3.6.1. 关闭Selinux
查看Selinux状态
# sestatus
关闭Selinux,提示没有vim用yum装一个或者用vi
# vim /etc/sysconfig/selinux

3.6.2. 关闭THP
查看状态
[root@yum ~]# cat /sys/kernel/mm/transparent_hugepage/defrag[always] madvise never[root@yum ~]# cat /sys/kernel/mm/transparent_hugepage/enabled[always] madvise never
关闭THP并给予文件权限
# vim /etc/rc.d/rc.local
3.7. 修改文件打开最大限制(所有节点)
(单独设置需要重启机器)
设置并查看
[root@master ~]# vim /etc/security/limits.conf# End of file* soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072[root@master ~]# ulimit -Sn[root@master ~]# ulimit -Hn# vim /etc/systemd/system.conf
修改如下内容
DefaultLimitNOFILE=1024000DefaultLimitNPROC=1024000
3.8. SSH无密码登录(主节点)
回车通过,输入密码等确认通过即可
# ssh-keygen -t rsa

# ssh-copy-id ykcs1.hadoop.com# ssh-copy-id ykcs2.hadoop.com# ssh-copy-id ykcs3.hadoop.com# ssh-copy-id ykcs4.hadoop.com# ssh-copy-id ykcs5.hadoop.com

测试是否实现无密码登录,无输入密码即可通过
# ssh ykcs1.hadoop.com date ;ssh ykcs2.hadoop.com date;ssh ykcs3.hadoop.com date;ssh ykcs4.hadoop.com date;ssh ykcs5.hadoop.com date;

将刚刚创建的秘钥拷出来,后面ambari安装的时候需要上传这个秘钥。创建秘钥是在隐藏文件夹/root/.ssh/下面的,所以需要先把秘钥拷贝到可见区域,然后拷贝到本机上。
# cd /root/.ssh/# cp id_rsa /root/# ls /root/

到这里我们先reboot重启一下
3.9. 安装MYSQL
3.9.1. 安装前准备
1、检查是否已经安装过mysql,执行命令
rpm -qa | grep mysql
2、已经安装了mysql,执行删除命令
rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
3、再次执行查询命令,查看是否删除
rpm -qa | grep mysql
4、查询所有Mysql对应的文件夹
[root@localhost /]# whereis mysqlmysql: /usr/bin/mysql /usr/include/mysql[root@localhost lib]# find / -name mysql/data/mysql/data/mysql/mysql
5、删除相关目录或文件
rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql
6、检查mysql用户组和用户是否存在,如果没有,则创建
cat /etc/group | grep mysqlcat /etc/passwd |grep mysqlgroupadd mysqluseradd -r -g mysql mysql
3.9.2. 安装Mysql
1、解压
tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
2、改名
cd /usr/local/mv mysql-5.7.32-linux-glibc2.12-x86_64 mysql
3、创建data目录
mkdir /usr/local/mysql/data
4、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
chown -R mysql:mysql /usr/local/mysqlchmod -R 755 /usr/local/mysql
5、检查该链接库文件有没有安装使用 命令进行核查
rpm -qa|grep libaio
系统中无该链接库文件则需要安装
yum install libaio-devel.x86_64
5、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
cd /usr/local/mysql/bin./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
6、运行初始化命令成功后,输出日志如下:
记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。
7、编辑配置文件my.cnf,添加配置如下
vi /etc/my.cnf[mysqld]datadir=/usr/local/mysql/dataport=3306sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESsymbolic-links=0max_connections=600innodb_file_per_table=1lower_case_table_names=1character_set_server=utf8
相关参数解释
lower_case_table_names:是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:
character_set_server:设置数据库默认字符集,如果不设置默认为latin1
innodb_file_per_table:是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;
8、测试启动mysql服务器
/usr/local/mysql/support-files/mysql.server start

9、添加软连接,并重启mysql服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlln -s /usr/local/mysql/bin/mysql /usr/bin/mysqlservice mysql restart
10、登录mysql,修改密码(密码为步骤6生成的临时密码)
[root@centos807 bin]# mysql -u root -pmysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory[root@centos807 bin]#
如果登录报错,需要执行以下操作:
修改密码
mysql> set password for root@localhost = password('123456');
11、开放远程连接
use mysql;update user set user.Host='%' where user.User='root';flush privileges;
12、设置开机自动启动
#将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
赋予可执行权限
chmod +x /etc/init.d/mysqld
添加服务
chkconfig --add mysql
显示服务列表
chkconfig --list
4. 实现离线安装,更换yum源
4.1. 文件目录展示
4.1.1. http服务方式
[root@master ~]# yum -y install httpd[root@master ~]# service httpd restartRedirecting to /bin/systemctl restart httpd.service[root@master ~]# chkconfig httpd on
安装完成后,会生成/var/www/html目录(相当于Tomcat的webapps目录)
将之前下的Ambari、HDP、HDP-UTILS三个包放到 /var/www/html 下
[root@master ~]# cd /var/www/html/[root@master html]# mkdir ambari
拷贝文件到ambari下面
[root@master html]# cd ambari/[root@master ambari]# lsambari-2.7.4.0-centos7.tar.gz HDP-3.1.4.0-centos7-rpm.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz[root@master ambari]# tar -zxvf ambari-2.7.4.0-centos7.tar.gz[root@master ambari]# tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz[root@master ambari]# mkdir HDP-UTILS[root@master ambari]# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C HDP-UTILS[root@master ambari]# rm -rf ambari--2.7.4.0-centos7.tar.gz HDP-2.6.3.0-centos7-rpm.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz[root@master ambari]# lsambari HDP HDP-UTILS
4.1.2. nginx服务方式
找到nginx的配置, 在nginx server中的location中增加:
server {listen 8001;location / {root /www//html/ambari/;autoindex on;autoindex_localtime on;autoindex_exact_size off;}}
参数说明:
root /data/image/
你需要开启浏览的目录,放访问
http://IP 时候显示的就是/data/image目录下的内容
autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间
autoindex_exact_size off;
默认为on,显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
listen 8001;
访问端口号
[root@master ~]# cd /var/www/[root@master html]# mkdir ambari
拷贝文件到ambari下面
[root@master html]# cd ambari/[root@master ambari]# lsambari-2.7.4.0-centos7.tar.gz HDP-3.1.4.0-centos7-rpm.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz[root@master ambari]# tar -zxvf ambari-2.7.4.0-centos7.tar.gz[root@master ambari]# tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz[root@master ambari]# mkdir HDP-UTILS[root@master ambari]# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C HDP-UTILS[root@master ambari]# rm -rf ambari--2.7.4.0-centos7.tar.gz HDP-2.6.3.0-centos7-rpm.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz[root@master ambari]# lsambari HDP HDP-UTILS

访问http://172.29.30.61/ambari/ 看是否能访问
4.2. 制作本地源
4.2.1. 安装本地源制作相关工具(主节点)
# yum install yum-utils createrepo yum-plugin-priorities -y# createrepo ./
4.2.2. 修改文件里面的源地址(主节点)
注意文件路径,以自己为准
[root@master ambari]# vi ambari/centos7/2.7.4.0-118/ambari.repo#VERSION_NUMBER=2.7.4.0-118[ambari-2.7.4.0]#json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.jsonname=ambari Version - ambari-2.7.4.0baseurl=http://172.29.30.61:8001/ambari/centos7/2.7.4.0-118gpgcheck=1gpgkey=http://172.29.30.61:8001/ambari/centos7/2.7.4.0-118/RPM-GPG-KEY/RPM-GPG-KEY-Jenkinsenabled=1priority=1[root@master ambari]# cp ambari/centos7/2.7.4.0-118/ambari.repo /etc/yum.repos.d/[root@master ambari]# vi HDP/centos7/3.1.4.0-315/hdp.repo#VERSION_NUMBER=3.1.4.0-315[HDP-3.1.4.0]name=HDP Version - HDP-3.1.4.0baseurl=http://172.29.30.61:8001/HDP/centos7/3.1.4.0-315gpgcheck=1gpgkey=http://172.29.30.61:8001/HDP/centos7/3.1.4.0-315/RPM-GPG-KEY/RPM-GPG-KEY-Jenkinsenabled=1priority=1[HDP-UTILS-1.1.0.22]name=HDP-UTILS Version - HDP-UTILS-1.1.0.22baseurl=http://172.29.30.61:8001/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22gpgcheck=1gpgkey=http://172.29.30.61:8001/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkinsenabled=1priority=1[root@master ambari]# cp HDP/centos7/3.1.4.0-315/hdp.repo /etc/yum.repos.d/
以上就已经创建好了
使用yum的命令清一下缓存
# yum clean all# yum makecache# yum repolist
4.2.3. 将创建好的源文件拷贝到子节点(主节点)
#cd /etc/yum.repos.d# scp ambari.repo ykcs2.hadoop.com:/etc/yum.repos.d/# scp ambari.repo ykcs3.hadoop.com:/etc/yum.repos.d/# scp ambari.repo ykcs4.hadoop.com:/etc/yum.repos.d/# scp ambari.repo ykcs5.hadoop.com:/etc/yum.repos.d/# scp hdp.repo ykcs2.hadoop.com:/etc/yum.repos.d/# scp hdp.repo ykcs3.hadoop.com:/etc/yum.repos.d/# scp hdp.repo ykcs4.hadoop.com:/etc/yum.repos.d/# scp hdp.repo ykcs5.hadoop.com:/etc/yum.repos.d/
5. 安装ambari-server
这里介绍两种模式,一种是默认postgresql数据库的安装方式,还有就是mysql方式,这里我们用到的是mysql,大家根据自身选一种即可
无论是用哪种,首先都要安装ambari-server
# yum -y install ambari-server
5.1. 默认数据库PostgreSQL安装方式(主节点)
[root@master yum.repos.d]# ambari-server setupUsing python /usr/bin/pythonSetup ambari-serverChecking SELinux...SELinux status is 'disabled'Customize user account for ambari-server daemon [y/n] (n)? nAdjusting ambari-server permissions and ownership...Checking firewall status...Checking JDK...[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8[2] Custom JDKEnter choice (1): 2WARNING: 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: /app/tools/java/jdk1.8.0_201Validating JDK on Ambari Server...done.Completing setup...Configuring database...Enter advanced database configuration [y/n] (n)? nConfiguring database...Default properties detected. Using built-in database.Configuring ambari database...Checking PostgreSQL...Running initdb: This may take up to a minute.Initializing database ... OKAbout to start PostgreSQLConfiguring local database...Configuring PostgreSQL...Restarting PostgreSQLCreating schema and user...done.Creating tables...done.Extracting system views...ambari-admin-2.7.4.0-118.jar...........Adjusting ambari-server permissions and ownership...Ambari Server 'setup' completed successfully.启动ambari[root@master yum.repos.d]# ambari-server startUsing python /usr/bin/pythonStarting ambari-serverAmbari Server running with administrator privileges.Organizing resource files at /var/lib/ambari-server/resources...Ambari database consistency check started...Server PID at: /var/run/ambari-server/ambari-server.pidServer out at: /var/log/ambari-server/ambari-server.outServer log at: /var/log/ambari-server/ambari-server.logWaiting for server start...........................................Server started listening on 8080DB configs consistency check: no errors and warnings were found.Ambari Server 'start' completed successfully.
成功启动后在浏览器输入Ambari地址:
http://172.29.30.61:8080 即可看到页面
5.2. MySql安装方式(主节点)
5.2.1. 安装MySql
[root@master ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm[root@master ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm[root@master ~]# yum install mysql-community-serve
5.2.2. 启动mysql,设置开机启动
[root@master ~]# service mysqld start[root@master ~]# vi /etc/rc.local#添加service mysqld start
5.2.3. 登录进mysql,初始化设置root 密码
[root@master ~]# mysql -uroot设置登录密码mysql> set password for 'root'@'localhost' = password('yourPassword');添加远程登录用户mysql> grant all privileges on *.* to 'root'@'%' identified by 'yourPassword';远程登录#mysql -uroot -h ip(远程的ip地址) -p
5.2.4. 登录mysql,执行以下语句
CREATE DATABASE ambari;use ambari;CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambar';GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';CREATE USER 'ambari'@'master' IDENTIFIED BY 'ambari';GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'master';FLUSH PRIVILEGES;source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sqlshow tables;use mysql;select Host User Password from user where user='ambari';CREATE DATABASE hive;use hive;CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';CREATE USER 'hive'@'master' IDENTIFIED BY 'hive';GRANT ALL PRIVILEGES ON *.* TO 'hive'@'master';FLUSH PRIVILEGES;CREATE DATABASE oozie;use oozie;CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';CREATE USER 'oozie'@'localhost' IDENTIFIED BY 'oozie';GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'localhost';CREATE USER 'oozie'@'master' IDENTIFIED BY 'oozie';GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'master';FLUSH PRIVILEGES;
5.2.5. 建立mysql与ambari-server的jdbc连接
[root@master yum.repos.d]# yum install mysql-connector-java[root@master yum.repos.d]# ls /usr/share/java[root@master yum.repos.d]# cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar[root@master yum.repos.d]# vi /etc/ambari-server/conf/ambari.properties添加server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
5.2.6. 设置ambari-server
[root@master yum.repos.d]# ambari-server setupUsing python /usr/bin/pythonSetup ambari-serverChecking SELinux...SELinux status is 'enabled'SELinux mode is 'permissive'WARNING: SELinux is set to 'permissive' mode and temporarily disabled.OK to continue [y/n] (y)? yCustomize user account for ambari-server daemon [y/n] (n)? yEnter user account for ambari-server daemon (root):ambari #ambari-server 账号。如果直接回车就是默认选择root用户如果输入已经创建的用户就会显示:Adjusting ambari-server permissions and ownership...Checking firewall status...WARNING: iptables is running. Confirm the necessary Ambari ports are accessible. Refer to the Ambari documentation for more details on ports.OK to continue [y/n] (y)? yChecking JDK... #设置JDK。输入:2[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8[2] Custom JDKEnter choice (1): 2 #输入你自己的jdk位置/usr/java/jdk1.8.0_201-amd64WARNING: 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: /usr/java/jdk1.8.0_201-amd64Validating JDK on Ambari Server...done.Check JDK version for Ambari Server...JDK version found: 8Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.Checking GPL software agreement...GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.htmlEnable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? nCompleting setup...Configuring database...Enter advanced database configuration [y/n] (n)? y #数据库配置。选择:yConfiguring database...Choose one of the following options:[1] - PostgreSQL (Embedded)[2] - Oracle[3] - MySQL / MariaDB[4] - PostgreSQL[5] - Microsoft SQL Server (Tech Preview)[6] - SQL Anywhere[7] - BDBEnter choice (1): 3 #选择mysql数据库类型。输入:3# 设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。Hostname (localhost):Port (3306):Database name (ambari):Username (ambari): ambariEnter Database Password (bigdata): ambariRe-enter password: ambariConfiguring ambari database...Configuring remote database connection properties...WARNING: Before starting Ambari Server, you must run the following DDL directly from the database shell to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sqlProceed with configuring remote database connection properties [y/n] (y)? yExtracting system views...ambari-admin-2.7.4.0.118.jar....Ambari repo file contains latest json url http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json, updating stacks repoinfos with it...Adjusting ambari-server permissions and ownership...Ambari Server 'setup' completed successfully.[root@master yum.repos.d]# ambari-server startUsing python /usr/bin/pythonStarting ambari-serverAmbari Server running with administrator privileges.Organizing resource files at /var/lib/ambari-server/resources...Ambari database consistency check started...Server PID at: /var/run/ambari-server/ambari-server.pidServer out at: /var/log/ambari-server/ambari-server.outServer log at: /var/log/ambari-server/ambari-server.logWaiting for server start...........................................Server started listening on 8080DB configs consistency check: no errors and warnings were found.Ambari Server 'start' completed successfully.
如果启动失败建议查看
日志在/var/log/ambari-server/ambari-server.log里面
重置ambari-server
[root@master ~]# ambari-server stop[root@master ~]# ambari-server reset[root@master ~]# ambari-server setup
如果选择的是mysql方式,就需要先执行上面的语句,然后手动将mysql里面创建的数据库进行删除
[root@master ~]# mysql -uroot -pmysql> show databases;+--------------------+| Database |+--------------------+| information_schema || ambari || hive || oozie || performance_schema |+--------------------+rows in set (0.00 sec)mysql> drop database ambari;mysql> drop database hive;mysql> drop database oozie;
如果在安装的过程中出现了错误,又想重新安装,可以在ambari-server开启的情况下,执行下面的语句来移除已安装的包,然后再通过不同的情况选择上面两种方式的一种对ambari-server进行重置
python /usr/lib/python2.6/site-packages/ambari_agent/HostCleanup.py --silent
5.3. Mysql驱动检查
为了后续安装HDP时hive可以正常安装,此处需要检查mysql驱动是否符合要求
第一:数据库、用户名、密码是否正确,安装驱动
yum install mysql-connector-java
第二:mysql驱动是否存在
1. /usr/share/java/mysql-connector-java.jar 是否有mysql驱动
2. vim /etc/ambari-server/conf/ambari.properties
配置文件添加server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
第三:设置ambari的mysql驱动
在master主机命令行界面执行即可(前提是上面第二条件都满足)
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
6. 安装配置部署HDP集群
6.1. 登录过程
如果你以上安装成功
输入主机ip:8080则会看到如下界面
账户:admin 密码:admin
6.2. 安装向导

6.2.1. 配置集群名字

6.2.2. 选择版本并修改为本地源地址

Centos的选择rathat7,HDP和DHP-UTILS的url地址填上之前改好的
使用当前安装包需要修改HDP,HDP-3.1.4.0
ambari确认过了就next继续了
6.2.3. 安装配置
6.2.4. 确认安装ambari的agent
确认安装ambari的agent,并检查出现的问题,这个地方经常出现错误
如图就出现了错误,点击Failed的查看错误日志

我这里的错误是ambari的8040等端口无法访问的问题,我放开了8000-9000的端口就可以了,我之前也遇到很多其他的问题,具体问题具体分析,多查谷歌,百度,国外的网站更容易解决问题
检查主机可能会发现之前漏下的问题,比如说我这里防火墙没关他就会出现提示
检查无误,NEXT→通过即可
如果这个步骤失败了错误,记得多看日志,多找问题,如果还不行的话,回档咯
[root@master ~]# # ambari-server stop #停止命令[root@master ~]# # ambari-server reset #重置命令[root@master ~]# # ambari-server setup #重新设置[root@master ~]# # ambari-server start #启动命令
6.2.5. 大数据服务组件安装
勾选你所需要的
6.2.6. 节点分配

6.2.7. 分配主从

6.2.8. 安装配置
hive和oozie的数据库用户密码填上之前创建好的
如果安装了hive,ooize等,需要修改成我们本地建好的库,jdbc-mysql也要配置好



6.2.9. 概况部署




警告这里我这就忽略掉了,后期我们再修复

7. 集群配置
7.1. hive配置更新
修改hive配置,关闭acid
hive.strict.managed.tables=falsehive.create.as.insert.only=falsemetastore.create.as.acid=false
新增hive-site配置,关闭客户端校验
hive.metastore.client.capability.check = false
设置数据库路径访问权限(KUDU使用)
hdfs dfs -chmod -R 777 /warehouse/tablespace/managed/hive
hive所用的mysql执行语句,解决中文乱码问题
use hive;alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;alter table PARTITION_PARAMS modify column PARAM_VALUE mediumtext character set utf8;(该语句需要看下原数据字段是什么类型,可能是varchar(4000) 或mediumtext)alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;commit;
7.2. hdfs配置更新
增加配置项,方便查看文件,新增默认用户
hadoop.http.staticuser.user=hdfs
7.3. Spark配置更新
关闭hiveacid后,访问metastore值需要配置,该配置项为spark度metastore文件默认配置,原值为spark,读自己的
metastore.catalog.default=hive
结束语
如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~ 可关注企鹅号【怀瑾握瑜的嘉与嘉】,获取资源下载方式

