三台服务器,配置都一样,一台作为master,两台作为slaver,如下所示:
os | cpu(核) | memory(G) | 系统盘(G) | 数据盘 |
---|---|---|---|---|
CentOS 7.2 | 2*8core | 128 | 600 | 12*4 SATA |
CentOS 7.2 | 2*8core | 128 | 600 | 12*4 SATA |
CentOS 7.2 | 2*8core | 128 | 600 | 12*4 SATA |
一、修改Hosts
1、vi /etc/hosts#三台服务器相同
加入三行:
10.64.27.66master master.data-u.com
10.64.27.67slaver1 slaver1.data-u.com
10.64.27.68slaver2 slaver2.data-u.com
2、vi /etc/sysconfig/network
NETWORK=yes
HOSTNAME=master.data-u.com/slaver1.data-u.com/slaver2.data-u.com#为Master/Slaver1/Slaver2分别设置为
二、配置免密码ssh登陆
1、在三个服务器上都用root登陆,都执行ssh-keygen-t rsa,然后三下回车,就会在 /root/.ssh/目录下生成两个文件:
id_rsa和id_rsa.pub
2、全都执行cp id_rsa.pub authorized_keys,把公钥复制到authorized_keys里
3、进入到Slaver1和Slaver2的/root/.ssh/目录下,分别执行:
scpauthorized_keys root@Master.busymonkey:/root/.ssh/s1_keys
scpauthorized_keys root@Master.busymonkey:/root/.ssh/s2_keys
把Slaver1和Slaver2的公钥都拷到Master上。
4、进入到Master的/root/.ssh/目录下,执行cats1_keys >> authorized_keys 和 cat s2_keys >>authorized_keys,把Slave1和Slaver2的公钥追加到Master的authorized_keys里
5、把Master的authorized_keys分发到Slaver1和Slaver2,命令是:
scpauthorized_keys root@Slaver1.busymonkey:/root/.ssh/authorized_keys
scp authorized_keysroot@Slaver2.busymonkey:/root/.ssh/authorized_keys
这样就实现了ssh免密码登陆。
三、配置DNS
vi/etc/resolv.conf,加入一行:
nameserver8.8.8.8
不配置的话会影响后面的wget等操作。
四、分区及挂载
sda为系统盘;
sdb为raid1磁盘,用于存放用户数据,由两块物理磁盘组成;
sdc、sdd、sde、sdf、sdg、sdh、sdi、sdj、sdk、sdl十块磁盘为raid0磁盘,用于做HDFS
sdb分成三个区,1000G用于/dyhome,1000G用于/backup,2000G用于/data,操作过程如下:
0、在根目录下先建好/dyhome,/backup,/data三个文件夹,用于最后的挂载
1、输入parted /dev/sdb
2、输入mklabel gpt #将MBR磁盘格式化为GPT
3、输入mkpart primary 0% 25%分出第一个分区(1T)
4、输入mkpart primary 25% 50%分出第二个分区(1T)
5、输入mkpart primary 50% 100%分出第三个分区(2T)
6、(可选)输入print可以查看当前的分区方式
7、输入quit退出分区
8、输入lsblk查看磁盘分区情况,可以看到多了/dev/sdb1、/dev/sdb2、/dev/sdb3
9、输入mkfs.ext4 /dev/sdb1、mkfs.ext4/dev/sdb2、mkfs.ext4 /dev/sdb3将三个分区都格式化为ext4
10、输入mount /dev/sdb1 /dyhome、mount/dev/sdb1 /backup、mount /dev/sdb1 /data分别挂载三个分区
11、输入df –Th可以看到磁盘挂载情况及分区格式等
而raid0的10块磁盘都做成一个分区,以sdc为例,分区过程如下:
0、在根目录下先建好/hdfs/data01-10文件夹,用于最后的挂载
1、输入parted /dev/sdc
2、输入mklabel gpt #将MBR磁盘格式化为GPT
3、输入mkpart primary 0% 100%将整块磁盘分为一个主分区
4、(可选)输入print可以查看当前的分区方式
5、输入quit退出分区
6、输入lsblk查看磁盘分区情况,可以看到多了一个/dev/sdc1
7、输入mkfs.ext4 /dev/sdc1将这个分区格式化为ext4
8、输入mount /dev/sdc1 /hdfs/data01
9、输入df –Th可以看到磁盘挂载情况及分区格式等
对于sdd、sde、sdf、sdg、sdh、sdi、sdj、sdk、sdl,也都执行上述操作,进行分区、挂载。然后再输入partprobe使新分区生效。挂载完成后,如果服务器重启,则挂载信息会丢失,为了保存挂载信息,使得系统在每一次启动时都正确挂载,需要修改/etc/fstab文件,加入如下内容:
五、关闭防火墙/dev/sdc1 /hdfs/data01 ext4 defaults 0 0
/dev/sdd1 /hdfs/data02 ext4 defaults 0 0
/dev/sde1 /hdfs/data03 ext4 defaults 0 0
/dev/sdf1 /hdfs/data04 ext4 defaults 0 0
/dev/sdg1 /hdfs/data05 ext4 defaults 0 0
/dev/sdh1 /hdfs/data06 ext4 defaults 0 0
/dev/sdi1 /hdfs/data07 ext4 defaults 0 0
/dev/sdj1 /hdfs/data08 ext4 defaults 0 0
/dev/sdk1 /hdfs/data09 ext4 defaults 0 0
/dev/sdl1 /hdfs/data10 ext4 defaults 0 0
/dev/sdb1 /dyhome ext4 defaults 0 0
/dev/sdb2 /backup ext4 defaults 0 0
/dev/sdb3 /data ext4 defaults 0 0
六、开启时间同步systemctl statusfirewalld.service#查看firewall状态
systemctl stopfirewalld.service #停止firewall
systemctldisable firewalld.service #禁止firewall开机启动
在master和slaver上都安装ntp:
1、rpm -q ntp#检查是否安装ntp
2、yum -y install ntp#安装ntp
3、systemctl enable ntpd#开机自动启动
4、systemctl start ntpd#启动服务
安装完成并启动服务后:
1、把时区改成中国时区:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、使用命令同步时间,本机与外部时间服务器时间差距太大,让ntpd不能正常同步:ntpdate -u cn.pool.ntp.org
3、按照http://blog.csdn.net/sunny05296/article/details/65980897修改/etc/ntp.conf
七、安装jdk
1、下载安装文件(先下载到master上,然后master scp到slaver上):
wget --header"Cookie: oraclelicense=accept-securebackup-cookie"http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm
2、安装:yum localinstall jdk-8u151-linux-x64.rpm,默认安装路径为/usr/java
3、设置环境变量:vi /etc/profile,加入以下内容:
#set java home
JAVA_HOME=/usr/java/default
JRE_HOME=/usr/java/default/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOMEJRE_HOME CLASS_PATH PATH
4、使环境生效:source /etc/profile
5、验证是否成功配置:
①java –version,正确配置的话应显示:
javaversion "1.8.0_151"
Java(TM)SE Runtime Environment (build 1.8.0_151-b12)
JavaHotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
②echo$JAVA_HOME,正确配置的话应显示:
/usr/java/default
八、关闭SELinux
输入setenforce0临时关闭,Master和Slaver都做
然后vi /etc/sysconfig/selinux,把SELINUX=enforcing改成SELINUX=disabled,使重启后也能生效。
(经验证:需要重启后才生效)
九、安装Ambari
十、部署FTP服务器9.1 制作本地源
1、安装Apache HTTP服务器
yum installhttpd#安装http服务器
firewall-cmd--add-service=http#防火墙暂时开放http服务
firewall-cmd--permanent --add-service=http#防火墙永久开放http服务
systemctl starthttpd.service#启动http服务
systemctl enablehttpd.service#允许http服务开机启动
cd/var/www/html/ #进入网站根目录
mkdir ambari#创建ambari目录
2、制作本地源
①下载Ambari 、HDP 、HDP-UTILS 源包(共8.2G,略大),把下面三个链接分三行放在repo.txt文件里:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari-2.4.2.0-centos7.tar.gz
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/HDP-2.4.2.0-centos7-rpm.tar.gz
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gz
然后输入:
mkdir /root/hadoop#在root目录下建hadoop文件夹用于存放下载的文件
cd /root/hadoop
wget -b -i repo.txt#-b表示后台wget,-i 表示从文本文件内读取网址。下载日志会保存在wget-log中,可以通过tail wget-log查看进度。
cd/var/www/html/ambari#进入到ambari的网站目录
tar –xzvf /root/hadoop/ambari-2.4.2.0-centos7.tar.gz#解压ambari
tar –xzvf /root/hadoop/HDP-2.4.2.0-centos7-rpm.tar.gz#解压HDP
tar –xzvf /root/hadoop/HDP-UTILS-1.1.0.20-centos7.tar.gz#解压HDP-UTILS
3、下载repo:
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari.repo-O /etc/yum.repos.d/ambari.repo#下载ambari的repo到/etc/yum.repos.d里
wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/hdp.repo-O /etc/yum.repos.d/HDP.repo#下载HDP的repo到/etc/yum.repos.d里
4、修改repo
打开/etc/yum.repos.d/ambari.repo,把其中的baseurl和gpgkey改成如下:
baseurl=http://10.64.27.66/ambari/AMBARI-2.4.2.0/centos7/2.4.2.0-136
gpgkey=http://10.64.27.66/ambari/AMBARI-2.4.2.0/centos7/2.4.2.0-136/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
打开/etc/yum.repos.d/hdp.repo把HDP的baseurl和gpgkey改成如下:
baseurl=http://10.64.27.66/ambari/HDP/centos7/2.x/updates/2.4.2.0
gpgkey=http://10.64.27.66/ambari/HDP/centos7/2.x/updates/2.4.2.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
把HDP-UTILS的baseurl和gpgkey改成如下:
baseurl=http://10.64.27.66/ambari/HDP-UTILS-1.1.0.20/repos/centos7
gpgkey=http://10.64.27.66/ambari/HDP/centos7/2.x/updates/2.4.2.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
注意其中的路径要跟/var/www/html/ambari里的各个目录一致。
9.2安装ambari服务器
yum installambari-server –y
9.3配置ambari服务器
ambari-serversetup#配置ambari server
1、是否自定义:y
2、输入ambari账号:dyambari
3、选择jdk:3
4、输入JAVA_HOME:/usr/java/default
5、配置数据库:y
6、选择数据库类型:1
7、输入数据库名称:ambari
8、输入schema名称:ambari
9、输入用户名:dyambari
10、输入密码:
11:重复输入密码:
到此,Ambari Server配置完成。
9.4启动ambari服务器
ambari-serverstart
9.5修改端口号
vi /etc/ambari-server/conf/ambari.properties
加入一行:client.api.port=12345
ambari-server restart
9.6安装hdp集群
输入集群名字:
选择版本及repo地址。
输入节点及私钥信息(master私钥)。
安装成功(之前slaver1一直失败,可能是因为不小心更新了一下系统,vi /etc/python/cert-verification.cfg,把verify=disable就可以了,参考:http://blog.csdn.net/xfg0218/article/details/78067541)
确认安装:
选择安装哪些组件:
选择部署服务的节点:
安装客户端(最后一列的client全勾上):
其他都没问题,就是smartsense启动失败,貌似是要收费的,后来关掉它就好了。
开启namenode的HA模式