Ambari本地源搭建hdp+spark集群
RHEL 7
选择一台节点单独作为apache web服务,并通过yum来安装;
启动和停止
#systemctl enable httpd.service
# systemctl start httpd.service启动
# systemctl restart httpd.service重新启动
# systemctl stop httpd.service停止服务
# echo"www.linuxidc.local" > /var/www/html/index.html
# echo"good 好 web服务" >> /var/www/html/index.html
然后在浏览器中输入:http://hostname会出现以上输入的文字
1、在Apache http web服务上的默认根目录:/var/www/html/
注:此例是下载ambari 2.4.1.0,请下载最新版本
Base URL |
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0 |
Repo File |
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0/ambari.repo |
Tarball md5 |asc |
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0/ambari-2.4.1.0-centos7.tar.gz |
把下载ambari.repo、ambari-2.4.1.0-centos7.tar.gz文件
拷贝到web服务器上Ambari/centos7/ 目录下
注:此例是下载hdp2.5.0,请下载最新版本
HDP |
Version Definition File (VDF) |
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.0.0/HDP-2.5.0.0-1245.xml |
Base URL |
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.0.0 |
|
Repo File |
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.0.0/hdp.repo http://s3.amazonaws.com/public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.3.0/hdp.repo |
|
Tarball md5 |asc |
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.0.0/HDP-2.5.0.0-centos7-rpm.tar.gz |
|
HDP-UTILS |
Base URL |
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7 |
Tarball md5 |asc |
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz |
把下载hdp.repo、HDP-2.5.0.0-centos7-rpm.tar.gz拷贝到web服务器上/hdp/centos7/ 目录下
把下载HDP-UTILS-1.1.0.21-centos7.tar.gz拷贝到web服务器上/hdpUtils/centos7/目录下
把以上拷贝的*.repo更新到/etc/yum.repos.d/上:
# cp *.repo /etc/yum.repos.d/
# yum repolist
在web服务器上上执行:
1、Ambari:
# createrepo AMBARI-2.4.1.0
#
2、HDP:
# createrepo HDP
# createrepo HDP2.5.3
3、HDP UTILS:
# createrepo HDP-UTILS-1.1.0.21
a) vim /etc/hosts :
b) vim /etc/hostname
修改各个主机各自的主机名分别为
master、slave01、slave02、slave03、slave04
a) 检查防火墙状态:systemctl status firewalld.service
b) 设置开机禁止防火墙:systemctl disable firewalld.service
c) 关闭防火墙:systemctl stop firewalld.service
命令:
vim /etc/selinux/config
设置:set SELINUX=disabled
查看默认权限: $umask
设置权限: echoumask 0022 >> /etc/profile
Ambary-server(master)所在的机器必须对集群其他机器有ssh免密权限。
官方建议选用root用户进行ssh配置。试过新建一个用户,然后做ssh免密,然后安装HDP过程中会报权限方面的错误。
a) 打开ssh配置
每台主机都执行vim /etc/ssh/sshd_config
开启选项:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
b) 生成ssh密钥
每台主机执行:ssh-keygen -t rsa ,回车到底生成rsa类型密钥,存在~/.ssh/目录下,有公钥文件:id_rsa.pub,私钥文件:id_rsa。
c) 把集群中所有主机的公钥都考到master主机上,命令:ssh-copy-id root@master。
d) 在master主机上执行:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,会生成文件 ~/.ssh/authorized_keys。内容如下:
e) 把该文件拷贝到集群中其他所有节点主机:
scp ~/.ssh/authorized_keys root@slave01/2/3/4:~/.ssh/,并修改所有主机的.ssh/目录和相应文件权限,执行:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
f) 重启ssh服务,然后测试各个主机之间能否连接
systemctl restart sshd.service
ssh hostname.spark
a) 在每个节点执行:yum -y install ntp ntpdate
b) 检查ntpd服务是否启动 systemctl is-enabled ntpd
c) 设置为开启自动启动:systemctl enable ntpd
d) 启动ntp service: systemctl start ntpd
e) 安装完毕执行 sudo service ntpd restart
a) 选取master作为内部时间服务器,使用命令vim /etc/ntp.conf,修改配置文件如下
b) 保存退出,重启服务,查看监听
c) 修改其他另一个节点主机配置文件
d) 将配置文件发送给其他所有节点,并同步到服务器节点。ntpdate –u 172.21.9.106
e) 重启后查看各节点服务状态
1、limits.conf查看最大文件、进程数限制
注:采用这种方式
vi /etc/security/limits.conf
增加:
/* 原来
* - nproc 65535
* - nofile 65535
*/
* - nofile 32768
* - nproc 65536
rpm -qa|grep mariadb
rpm-e mariadb-libs-5.5.50-1.el7_2.x86_64 --nodeps
新建文件目录/usr/local/mysql,并解压文件包到该目录:
tar -xvfmysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
依次执行命令安装一下四个包(按顺序执行,因为有依赖关系)
rpm -ivhmysql-community-common-5.7.18-1.el7.x86_64.rpm
rpm -ivhmysql-community-libs-5.7.18-1.el7.x86_64.rpm
rpm -ivhmysql-community-client-5.7.18-1.el7.x86_64.rpm
rpm -ivhmysql-community-server-5.7.18-1.el7.x86_64.rpm
在 *nix 系统中,为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
mysqld --initialize --user=mysql
如果是以 mysql 身份运行,则可以去掉 --user 选项。
另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。
这里演示使用的 --initialize 初始化的,会生成一个 root 账户密码,执行cat /var/log/mysqld.log 查看:
上图里的最后一行则给出了生成的密码,现在就可以启动数据库了,然后使用上面的密码登陆。
启动mysqld服务:systemctl start mysqld
登录mysql: mysql –u root –p
以前的 password()函数将会被抛弃,官方建议使用下面的命令来修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
同时,如果你设置的密码过于简单也会报错。如果是生产使用,需要设置复杂密码。然而若是用来内部测试,设置简单密码可以很方便操作,关闭简单密码校验的方法是:在配置文件/etc/mysql/conf 中加入validate_password=off ,然后重启即可。
温馨提示:如果服务器是虚拟机,建议在此添加快照,因为一旦安装不成功,重装时删除会很麻烦,有可能删不彻底。
1、配置repo:将repo文件下载到目录/etc/yum.repo.d/目录下
2、查看repository的配置:yum repolist
注: hostname是apache web服务器
# vim ambari.repo
[Updates-ambari-2.4.1.0]
name=ambari-2.4.1.0 – Updates
baseurl=http://hostname/Ambari/centos7/AMBARI-2.4.1.0
gpgcheck=0
gpgkey=http://public-repo-1.hortonworks.com/ambari/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
编辑/etc/yum.repos.d/hdp.repo
注:先下载hdp.repo如上
[HDP-2.5.0.0]
name=HDP Version - HDP-2.5.0.0
baseurl= http://hostname/hdp/centos7/HDP
gpgcheck=0
gpgkey=http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.0.0/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://hostname/hdpUtils/centos7/HDP-UTILS-1.1.0.21
gpgcheck=0
gpgkey=http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
结果如下:(由于使用本地源,直接加上本地源地址)
a) yum install -y ambari-server
b) 安装mysql-jdbc-java
yum install mysql-connector-java
c) ambari-server setup--jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
(注意看/usr/share/java/目录下有没有该文件,没有需要复制进去)
d) 设置: ambari-server setup
然后按照下图依次选择
mysql数据库相关信息:
数据库名: ambari 用户名:ambari / ambari
create database ambari;
use ambari;
//添加用户
CREATE USER 'ambari'@'%'IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.*TO 'ambari'@'%';
CREATE USER'ambari'@'localhost' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.*TO 'ambari'@'localhost';
CREATE USER 'ambari'@'slave04'IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.*TO 'ambari'@'slave04';
FLUSH PRIVILEGES;
在数据库ambari中建立数据库表
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
执行ambari-server start,启动后通过浏览器输入172.21.9.106:8080进入ambari登录,初始用户名和密码都是admin,然后按照提示依次进行集群配置即可。