集群规划
集群节点分配 |
|
主机名 |
主机 IP |
master |
192.168.100.100 |
slave1 |
192.168.100.101 |
slave2 |
192.168.100.102 |
slave3 |
192.168.100.103 |
软件版本 |
|
软件名称 |
版本号 |
Java |
1.8.0_152 |
CentOS |
CentOS-7-x64-1708 |
Hadoop |
2.7.5 |
MySQL |
5.7.20 |
Hive |
2.3.2 |
各软件安装路径 |
|
Hadoop |
/opt/SoftWare/Hadoop/ |
Java |
/opt/SoftWare/Java/ |
Hive |
/opt/SoftWare/Hive |
MySQL |
/opt/SoftWare/MySQL |
各主机基础软件安装及操作
由于使用的是最小化安装,因此这里需要安装不少软件才能进行后续操作。
openssh 安装,便于远程上传文件
1
| [root@master ~]# sudo yum -y install openssh-clients openssh-server
|
安装完成后,可以使用下面命令进行测试:
ssh localhost
输入 root 账户的密码,如果可以正常登录,则说明 SSH 安装没有问题。测试正常后使用 exit 命令退出 ssh。
同步时间工具
1 2 3 4 5 6
| #安装ntpdate工具 [root@master ~]# yum -y install ntp ntpdate #设置与网络时间同步 [root@master ~]# ntpdate cn.pool.ntp.org #系统时间写入硬件时间 [root@master ~]# hwclock --systohc
|
文件上传 (rz) 下载 (sz) 工具
可以在 Xshell 工具中通过 rz 调出上传文件的窗口进行文件上传,也可以通过 sz 文件名下载某一个文件。
1
| [root@master ~]# yum -y install lrzsz
|
安装网络下载 yum 工具 wget
1
| [root@test ~]# yum -y install wget
|
关闭防火墙
1 2 3 4 5 6 7 8 9 10 11 12
| #查看防火墙开启状态 [root@test ~]# systemctl status firewalld #关闭防火墙 [root@test ~]# systemctl stop firewalld #禁止开机启动防火墙 [root@test ~]# systemctl disable firewalld #开启防火墙 [root@test ~]# systemctl start firewalld #设置开机启动防火墙 [root@test ~]# systemctl enable firewalld #重启防火墙 [root@test ~]# systemctl restart firewalld
|
配置 SSH 免密码登录
四台主机均按照步骤 2 安装基础软件工具(这里不再过多叙述)
修改 hosts 文件,添加以下内容,四台主机均进行操作
1 2 3 4 5 6 7
| [root@master ~]# vi /etc/hosts #127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 #::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.100.100 master 192.168.100.101 slave1 192.168.100.102 slave2 192.168.100.103 slave3
|
配置 SSH 免密码登录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| #每台机器先使用ssh执行以下,以在主目录产生一个.ssh 文件夹 [root@master ~]# ssh master #然后输入no即可 #每台机器均进入~/.ssh 目录进行操作 [root@master ~]# cd ~/.ssh #输入以下命令,一路回车,用以产生公钥和秘钥 [root@master .ssh]# ssh-keygen -t rsa -P '' #出现以下信息说明生成成功 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:6YO1h1emM9gcWvv9OT6ftHxLnjP9u8p25x1o30oq3No root@master The key's randomart image is: +---[RSA 2048]----+ | | | | | | | . | | S o o | | + O * . | | . B.X. o.+.| | +o=+=**%| | .oEo*^^| +----[SHA256]-----+ #将每台机器上的id_rsa.pub公钥内容复制到authorized_keys文件中 [root@master .ssh]# cp id_rsa.pub authorized_keyscd #将所有的authorized_keys文件进行合并(最简单的方法是将其余三台slave主机的文件内容追加到master主机上) [root@slave1 .ssh]# cat ~/.ssh/authorized_keys | ssh root@master 'cat >> ~/.ssh/authorized_keys' [root@slave2 .ssh]# cat ~/.ssh/authorized_keys | ssh root@master 'cat >> ~/.ssh/authorized_keys' [root@slave3 .ssh]# cat ~/.ssh/authorized_keys | ssh root@master 'cat >> ~/.ssh/authorized_keys' #查看master上的authorized_keys文件内容,类似如下即可 [root@master .ssh]# more authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5iw8+LlLxo0d77uaTChOKKJqfMHzp2jgzqV2hFAneFXqqWmr Z4/FrMUPenmdss19bP4Up9G7PGbJu29yZDvkDwlmuqnVajYyDOsCl7PPXPWXMIlxMGUHgSXLnQQi6QnWp04vJKDs0EbiRTd0ZYCSQefzJcZ8jbQ7bLYt6jtil7FfUupTdHTeexKKd8Mq3K7YFZHumKvhzs6wWiM+n41jANS083ss3OYmAdO2cU0w1BhLVvJhdzd6fNG3RXVCXI2v0XxCUHiqI9Oewl2qPOfKzeyy09bJxo371Ezjmt8GMrkA/Ecepkvx12qwNzC9bSPLfbnPWVo2gIxe4mMaFqCFJ root@master ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3CkB3Jejavt+yFphsbciktWciJmbcUBOv3ZLPVLW18ZxXGZK vG50EPXo/4By7P6IRW0wCa5YuckQEW+q6kmSatxqJ8e/K9a1mAk13N4f7V7M71Nn8IkujlF3gHYjKrmnEWpGJCy5YBURzywIQTRArlIac1xj2SeM6q+gTMV9WrAKJupIRHli+W0kHVaYHNdKl7KMUT4KVrSl+h4wFwAd7Tcyj7JIbUcCCL6o/v/LqGFwpcJfbfUsuKJJho+tImh41j7mSXR8kRbTSZkcq5KX+iANrANwOHZ58tV5KXmMQjuVq7aJ985C16hHssB6zq/zjAxpxAyQIeE8Incc8U8ix root@slave1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC//uaMbzbkYqxdgZJSdq+gdQYldzMQ7D3SxsUaNO5oVnVOszw +mbNnmL8vp1EUUehabQHPCAvCmLKUPXzfcxlyJEF/pnY77u4ySwsRVEpHvsDZbrclgCOrS6hW00sSx303KHLOgXT70LfrmnohfUhvTxajzLXT+C8f5ZfTZ8meKD73HKl16jRwZQ8YhW9GUyuCkgQTGtKtTKPsRUd9LpAc/7/u8xvvvNvTYPxgyTJcUMzGSOHh8J3upI54ykY0FgBkjs1fCUaDalxAgsHw9B1iyx706WbcT6ymiQVMKGnnnM6k2KPvUvfDswVfUSG+4ZsYSRHRTgWuiBbHoIr7DVd root@slave2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDTzTTdGRTd1zts3m7uKobcgRom4lVyF9EdNOdbBWMucYjbCs BgP1ideDDQed2TyBj3Szz3Yx6h1L4McGmATY/D9qRLml26VW/x0Tod8JYkqOQpQL9knLW2cwITnhLzq5VDugOix06r/uweP3Zed9CO7ld3jUxJJNZCYpsNz+eUKq9SWM5+ehUu9pfZZu9zUk7Q01js3uCHzu1AhsajgNzgB4+YLLccdHBfxGg4ix5wuaF82PlEEh70hTdfRkq8pqPMZ+FIQtTgfD5XllKTcnPItUY23hc7Umx4I3ujOd810vzffWYK07cOtv1r7LEcYtYqbZ6zIvII+M775iRkzQX root@slave3
#将master上的authorized_keys文件分发到其他主机上 [root@master .ssh]# scp ~/.ssh/authorized_keys root@slave1:~/.ssh/ [root@master .ssh]# scp ~/.ssh/authorized_keys root@slave2:~/.ssh/ [root@master .ssh]# scp ~/.ssh/authorized_keys root@slave3:~/.ssh/ #每台机器之间进行ssh免密码登录操作,包括自己与自己 [root@master ~]# ssh master [root@master ~]# ssh slave1 [root@slave1 ~]# ssh master [root@master ~]# ssh slave2 [root@slave2 ~]# ssh master [root@master ~]# ssh slave3 [root@slave3 ~]# ssh master [root@master ~]# ssh slave1 [root@slave1 ~]# ssh slave1 [root@slave1 ~]# ssh slave2 [root@slave2 ~]# ssh slave1 [root@slave1 ~]# ssh slave3 [root@slave3 ~]# ssh slave1 [root@slave1 ~]# ssh slave2 [root@slave2 ~]# ssh slave2 [root@slave2 ~]# ssh slave3 [root@slave3 ~]# ssh slave2 [root@slave2 ~]# ssh slave3 [root@slave3 ~]# ssh slave2 [root@slave2 ~]# ssh slave3 [root@slave3 ~]# ssh slave3
|
安装配置 Java 环境并测试
下载 jdk
使用 yum 来安装 1.8 版本 OpenJDK:
1
| sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
|
安装完成后,输入 java 和 javac 命令,如果能输出对应的命令帮助,则表明jdk已正确安装。
配置 JAVA 环境变量
执行命令:编辑~/.bashrc,在结尾追加:
1
| export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
|
保存文件后执行下面命令使 JAVA_HOME 环境变量生效:
为了检测系统中 JAVA 环境是否已经正确配置并生效,可以分别执行下面命令:
1 2
| java -version $JAVA_HOME/bin/java -version
|
若两条命令输出的结果一致,且都为我们前面安装的openjdk-1.8.0的版本,则表明JDK环境已经正确安装并配置。
安装配置 Hadoop 并配置
下载 Hadoop 到本地
1
| wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz
|
上传至 master 节点
1 2 3 4 5
| #上传 [root@master ~]# cd /opt/SoftWare/Hadoop [root@master Hadoop]# rz #解压 [root@master Hadoop]# tar -zxvf hadoop-2.7.5.tar.gz
|
创建目录
1 2 3 4 5 6 7
| #进入hadoop-2.7.5主目录 [root@master Hadoop]# cd hadoop-2.7.5 #创建以下目录,以备后用 [root@master hadoop-2.7.5]# mkdir tmp [root@master hadoop-2.7.5]# mkdir logs [root@master hadoop-2.7.5]# mkdir -p hdfs/name [root@master hadoop-2.7.5]# mkdir -p hdfs/dat
|
修改配置
修改 hadoop-env.sh 文件
1 2 3
| [root@master hadoop-2.7.5]
export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_152
|
修改 yarn-env.sh 文件
1 2 3
| [root@master hadoop-2.7.5]
export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_152
|
编辑 slaves 文件
1 2 3 4 5 6
| [root@master hadoop-2.7.5]
slave1 slave2 slave3
|
echo $JAVA_HOME
修改 core-site.xml 文件
1
| [root@master hadoop-2.7.5]
|
该文件为 Hadoop 的核心配置文件,非常重要
1 2 3 4 5 6 7 8 9 10 11 12 13
| <property> <name>fs.defaultFSname> <value>hdfs://master:9000value> property> <property> <name>hadoop.tmp.dirname> <value>file:/opt/SoftWare/Hadoop/hadoop-2.7.5/tmpvalue> property> <property> <name>io.file.buffer.sizename> <value>131702value> property>
|