大家好,我是怀瑾握瑜,家有两只吞金兽,嘉与嘉 大数据萌新,期待与您共同成长 可关注企鹅号【怀瑾握瑜的嘉与嘉】,获取资源下载方式
1. 服务地址
172.29.30.61
172.29.30.62
172.29.30.63
172.29.30.64
172.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=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=172.29.30.61
NETMASK=255.255.255.0
GATEWAY=192.168.105.1
DNS1=114.114.114.114
DNS2=8.8.8.8
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=eno1
UUID=6c053b64-6581-4665-b3fc-c22f79c58848
DEVICE=eno1
ONBOOT=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 -version
openjdk 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 java
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.212-0.c061.el7_7.x86_64
python-javapackages-3.4.1-11.el7_7.noarch
tzdata-java-2018d-1.el7_7.noarch
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-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/hosts
172.29.30.61 sy-ykcl-172-029-030-061 ykcs1.hadoop.com
172.29.30.62 sy-ykcl-172-029-030-062 ykcs2.hadoop.com
172.29.30.63 sy-ykcl-172-029-030-063 ykcs3.hadoop.com
172.29.30.64 sy-ykcl-172-029-030-064 ykcs4.hadoop.com
172.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 anaconda
NETWORKING=yes
HOSTNAME=master
[root@master ~]# hostnamectl set-hostname master
[root@master ~]# hostname
master
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 Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2020-03-02 15:41:28 CST; 23h ago
Main PID: 3909 (ntpd)
CGroup: /system.slice/ntpd.service
└─3909 /usr/sbin/ntpd -u ntp:ntp -g
Mar 02 15:41:28 master ntpd[3909]: Listen normally on 4 lo ::1 UDP 123
Mar 02 15:41:28 master ntpd[3909]: Listen normally on 5 eno1 fe80::7b94:c6e6:5673:c105 UDP 123
Mar 02 15:41:28 master ntpd[3909]: Listening on routing socket on fd #22 for interface updates
Mar 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 restart
Mar 02 15:41:28 master ntpd[3909]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
Mar 02 15:41:28 master ntpd[3909]: 0.0.0.0 c011 01 freq_not_set
Mar 02 15:41:35 master ntpd[3909]: 0.0.0.0 c614 04 freq_mode
Mar 02 15:58:21 master ntpd[3909]: 0.0.0.0 0612 02 freq_set kernel 8.697 PPM
Mar 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=1024000
DefaultLimitNPROC=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 mysql
mysql: /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 mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -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/mysql
chmod -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/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_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/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
10、登录mysql,修改密码(密码为步骤6生成的临时密码)
[root@centos807 bin]# mysql -u root -p
mysql: 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 restart
Redirecting 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]# ls
ambari-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]# ls
ambari 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]# ls
ambari-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]# ls
ambari 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.json
name=ambari Version - ambari-2.7.4.0
baseurl=http://172.29.30.61:8001/ambari/centos7/2.7.4.0-118
gpgcheck=1
gpgkey=http://172.29.30.61:8001/ambari/centos7/2.7.4.0-118/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=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.0
baseurl=http://172.29.30.61:8001/HDP/centos7/3.1.4.0-315
gpgcheck=1
gpgkey=http://172.29.30.61:8001/HDP/centos7/3.1.4.0-315/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://172.29.30.61:8001/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://172.29.30.61:8001/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=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 setup
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? n
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
Enter choice (1): 2
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: /app/tools/java/jdk1.8.0_201
Validating JDK on Ambari Server...done.
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? n
Configuring database...
Default properties detected. Using built-in database.
Configuring ambari database...
Checking PostgreSQL...
Running initdb: This may take up to a minute.
Initializing database ... OK
About to start PostgreSQL
Configuring local database...
Configuring PostgreSQL...
Restarting PostgreSQL
Creating 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 start
Using python /usr/bin/python
Starting ambari-server
Ambari 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.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start...........................................
Server started listening on 8080
DB 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.sql
show 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 setup
Using python /usr/bin/python
Setup ambari-server
Checking 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)? y
Customize user account for ambari-server daemon [y/n] (n)? y
Enter 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)? y
Checking JDK... #设置JDK。输入:2
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
Enter choice (1): 2 #输入你自己的jdk位置/usr/java/jdk1.8.0_201-amd64
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: /usr/java/jdk1.8.0_201-amd64
Validating JDK on Ambari Server...done.
Check JDK version for Ambari Server...
JDK version found: 8
Minimum 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.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? n
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? y #数据库配置。选择:y
Configuring 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] - BDB
Enter choice (1): 3 #选择mysql数据库类型。输入:3
# 设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。
Hostname (localhost):
Port (3306):
Database name (ambari):
Username (ambari): ambari
Enter Database Password (bigdata): ambari
Re-enter password: ambari
Configuring 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.sql
Proceed with configuring remote database connection properties [y/n] (y)? y
Extracting 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 start
Using python /usr/bin/python
Starting ambari-server
Ambari 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.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start...........................................
Server started listening on 8080
DB 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 -p
mysql> 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=false
hive.create.as.insert.only=false
metastore.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
结束语
如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~ 可关注企鹅号【怀瑾握瑜的嘉与嘉】,获取资源下载方式