1、集群准备:Master、node1、node2
机器配置:
master:内存4G,磁盘50G
node1:内存2G,磁盘50G
node2:内存2G,磁盘50G
三台机子修改对应的主机名:
查看主机名:
hostname
localhost.localdomain
修改主机名:
vi /etc/hostname
localhost.localdomain改为:master/node1/node2
重启主机名服务使立即生效:
systemctl restart systemd-hostnamed
三台机子修改/etc/hosts文件
添加ip映射:
192.168.237.128 master
192.168.237.133 node1
192.168.237.135 node2
三台安装jdk,并配置环境变量(常规操作不做详述)
我的jdk解压在:/usr/local/soft/java/jdk1.8.0
--------------------------------------------三台机子进行快照处理(快照1:用于重置)---------------------------------------------------------------
三台都下载wget工具:
sudo yum -y install wget
2、关闭防火墙(三个节点都要做)
关闭当前:sudo systemctl stop firewalld
永久关闭:sudo systemctl disable firewalld.service
3、关闭selinux(全集群)
在master:
vi /etc/sysconfig/selinux
将SELINUX=enforcing 改为 SELINUX=disabled ,保存退出
将这个文件发送到node1和node2:
scp /etc/sysconfig/selinux node1:/etc/sysconfig/selinux
scp /etc/sysconfig/selinux node2:/etc/sysconfig/selinux
4、配置master对其他节点实现免密登陆
在master上执行:
cd ~ //进入家目录
ssh-keygen -t rsa
一路回车,根据提示,可以设置名称添加密码等,最后生成一对私钥和公钥
ssh-copy-id node1
ssh-copy-id node2
设置master对自己免密
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
不用再去node1和node2上做免密登录,因为master是主节点,master做了就没有问题了
5、修改yum源为阿里云镜像
在三台机子上面执行:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bk (使老的失效)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache (出现:Metadata Cache Created 表示成功)
yum repolist
6、安装ntp服务,用于时间统一
在三台机子上执行:
yum install -y ntp
systemctl enable ntpd (开机自启)
systemctl start ntpd.service (本次ntp服务启动)
注意查看时间是不是24小时制:
date
如果不是需要设置成24小时制
tzselect
根据提示选择
5 –> 9–>1–>1–>ok
然后执行下面这两条命令
rm /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
7、关闭HTP服务,这个服务会影响hdfs的性能
在三台机子上执行:
运行时禁用:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
永久禁用:
vi /etc/rc.d/rc.local
在后面加入语句:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
exit 0
保存退出,再赋予rc.local可执行权限
chmod +x /etc/rc.d/rc.local
此时我们查看应该就是never了:
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
8、配置UMASK
初始化每创建的新的文件的权限设置为 755
三台都要:
umask 0022
9、禁止镜像源离线更新
三台都要:
systemctl disable packagekit-offline-update.service //虚拟机暂找不到服务单元,跳过
systemctl status packagekit-offline-update.service //查看状态
10、三台机子全部重启:
reboot
11、ambari搭建
11.1 制作本地源,因为我已经有了ambari的安装包了,所以配置本地源从我本地的安装包装就行,大概每秒2-3百兆。
三台都要配置HTTPD服务:
yum -y install httpd (安装httpd)
systemctl enable httpd.service (开机自启httpd服务)
systemctl start httpd.service (本次开启)
systemctl status httpd.service (查看状态)
11.2 安装本地源工具
master上:
yum install yum-utils createrepo yum-plugin-priorities -y
vi /etc/yum/pluginconf.d/priorities.conf
在后面添加:
gpgcheck = 0
保存退出。
11.3 上传解压4个tar包和1个jar包:
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
HDP-GPL-3.1.4.0-centos7-gpl.tar.gz
mysql-connector-java.jar
master上:
sftp将5个包上传到 /usr/local/soft/ambari
注意:我们会将四个tar包解压到/var/www/html/下
解压ambari:
tar -zxvf /usr/local/soft/ambari/ambari-2.7.4.0-centos7.tar.gz -C /var/www/html/
在/var/www/html/ambari/centos7/2.7.4.0-118目录下将:
hotfix_index.html、index.html、private_index.html、public_index.html这4个文件全部重命名在后面加.bk
解压hdp的大数据安装包:
tar -zxvf /usr/local/soft/ambari/HDP-3.1.4.0-centos7-rpm.tar.gz -C /var/www/html/hdp/
在/var/www/html/hdp/HDP/centos7/3.1.4.0-315目录下将:
hotfix_index.html、index.html、private_index.html、public_index.html这4个文件全部重命名在后面加.bk
解压hdp-utils
tar -zxvf /usr/local/soft/ambari/HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/
解压HDP-GPL
tar -zxvf /usr/local/soft/ambari/HDP-GPL-3.1.4.0-centos7-gpl.tar.gz -C /var/www/html/hdp/
解压后即可在网页中访问:(如果访问不到,请重新检查)
http://master/ambari/centos7/2.7.4.0-118
http://master/hdp/HDP/centos7/3.1.4.0-315
http://master/hdp/HDP-UTILS/centos7/1.1.0.22/
http://master/hdp/HDP-GPL/centos7/3.1.4.0-315
-------------------------------------------------------------三台机子进行快照处理(快照2:用于重置)------------------------------------------------------
11.4 创建本地源
master上:
// 需要约1分钟的时间
createrepo /var/www/html/
11.5 将ambari的存储库的文件下载到安装主机上的目录中
master上:
//下载ambari.repo文件,但是这个网址已经变更了,所以会出现403 forbidded,可以直接编辑
wget -O /etc/yum.repos.d/ambari.repo "http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari.repo"
修改编辑ambari.repo
vi /etc/yum.repos.d/ambari.repo
将下面的内容复制过来,读者注意你们的版本号哦。
#VERSION_NUMBER=2.7.4.0-118
[ambari-2.7.4.0-118]
#json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
name=ambari Version - ambari-2.7.4.0-118
baseurl=http://master/ambari/centos7/2.7.4.0-118
gpgcheck=0
gpgkey=http://master/ambari/centos7/2.7.4.0-118/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
修改hdp-utils.repo
vi /var/www/html/hdp/HDP-UTILS/centos7/1.1.0.22/hdp-utils.repo
修改为:
[HDP-UTILS-1.1.0.22]
name=Local Utils Version - HDP-UTILS-1.1.0.22
baseurl=http://master/hdp/HDP-UTILS/centos7
gpgcheck=0
enabled=1
priority=1
修改hdp.repo
vi /var/www/html/hdp/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://master/hdp/HDP/centos7/3.1.4.0-315
gpgcheck=0
gpgkey=http://master/hdp/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://master/hdp/HDP-UTILS/centos7
gpgcheck=0
gpgkey=http://master/hdp/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
11.6 yum安装mysql
master上:
见mysql安装文档(读者自行安装mysql)
-----------------------------------------------------------------三台机子进行快照处理(快照3:用于重置)----------------------------------------------------
11.7 ambari安装
master上:
yum install ambari-server
//询问输入:y
注意:安装过程中发现几十兆/秒的,说明本地源安装正确,如果几kb/秒的说明本地源安装不正确。检查ambari.repo等文件是否正确。
将mysql-connector-java.jar 传到/usr/local/soft/mysql/的目录下,这个依赖包在移动硬盘里有:
mkdir /usr/share/java
cp /usr/local/soft/ambari/mysql-connector-java.jar /usr/share/java/mysql-connector-java.jar (要改名)
cp /usr/local/soft/ambari/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar (要改名)
修改ambari的配置文件,添加jdbc驱动:
vi /etc/ambari-server/conf/ambari.properties
在文件最后加入:
server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
安装ambari-agent:ambari-agent相当于每个机子上的管理员,它与ambari服务进行数据交互
master上:
scp /etc/yum.repos.d/ambari.repo node1:/etc/yum.repos.d/
scp /etc/yum.repos.d/ambari.repo node2:/etc/yum.repos.d/
三台节点上执行:
//安装ambari-agent
yum install ambari-agent
询问输入:y
//三台机子修改ambari-agent.ini中hostname为ambari服务所在的主节点主机名:master
vi /etc/ambari-agent/conf/ambari-agent.ini
//修改
hostname=master 注意这里三台都写master
11.8 mysql的ambari的操作
master上:
进入mysql:
mysql -uroot -p123456
create database ambari;
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
GRANT ALL PRIVILEGES ON *.* To 'root'@'%' IDENTIFIED BY '123456';
flush privileges;
mysql的hive的配置:
create database hive;
11.9 ambari的配置
master上:
ambari-server setup
注意:下图的GPL的配置不要直接回车,选择y,后续在web页面配置GPL的路径
jdk路径:/usr/local/soft/java/jdk1.8.0
11.10 ambari的启动
master上:
ambari-server start //master启动
ambari-agent start //三台节点启动
下面是关闭命令:
ambari-agent stop //三台节点关闭
ambari-server stop //ambari关闭
启动后在网页访问:
master:8080
默认的账号密码都是:admin
12、部署Hadoop集群、yarn、MapReduce、zookeeper、Tez、ambari Mterics
登录后:
http://master/hdp/HDP/centos7/3.1.4.0-315/
http://master/hdp/HDP-GPL/centos7/3.1.4.0-315/
http://master/hdp/HDP-UTILS/centos7/1.1.0.22/
home/.ssh/id_rsa 这个文件是隐藏文件,在xftp中需要手输才能看到。
学习使用,暂时先装四个服务:hdfs、yarn+MapReduce、zookeeper、ambari Metrics
hive先不装。
下面注意修改的参数:
在yarn中:ResourceManager Java heap size:2048m,1024容易出现内存不足的问题
备注:smartsense是hortonworks一个商业的组件功能,作用是监控集群,并提供建议,建议是不使用。通常,此组件是安装ambari的时候的一个必选项,也就是说在安装ambari的时候它就强制绑定安装了。可以删除此服务,在ambari界面的action:先点击stop,再点击Delete Service
13、设置namenode的高可用:
(…)这里忘了截图了,就是跟着ambari的提示执行zookeeper初始化的命令,注意要到ambari指定的主机上执行,不能出错。
到这里hdfs的HA就配置完成了。