一、硬件环境
集群由五个虚拟机节点组成,每个虚拟机节点的配置如下:
- 操作系统:CentOS 7 (64 位)
- CPU 6 core
- 内存 16G
- 硬盘 800G
二、网络环境
主机名和IP规划
主机名 | ip |
---|---|
node1 | 192.168.124.101 |
node2 | 192.168.124.102 |
node3 | 192.168.124.103 |
node4 | 192.168.124.104 |
node5 | 192.168.124.105 |
设置静态IP
- vim /etc/sysconfig/network-scripts/ifcfg-ens192
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=ens192
UUID=41429094-63ca-4afd-8eb0-f996d3fb784e
DEVICE=ens192
ONBOOT=yes
IPADDR=192.168.124.101
PREFIX=24
GATEWAY=192.168.124.1
DNS1=114.114.114.114
编辑hosts文件
- vim /etc/hosts
192.168.124.101 node1
192.168.124.102 node2
192.168.124.103 node3
192.168.124.104 node4
192.168.124.105 node5
三、软件清单
- jdk-8u144-linux-x64.tar.gz
- zookeeper-3.4.13.tar.gz
- hadoop-2.7.4.tar.gz
- apache-hive-3.1.1-bin.tar.gz
- hbase-2.1.3-bin.tar.gz
- mysql-connector-java-5.1.34.jar
- Python-3.6.4.tgz
- scala-2.11.8.tgz
- spark-2.4.3-bin-hadoop2.7.tgz
四、准备工作
1、关闭所有节点的防火墙
- 关闭防火墙:systemctl stop firewalld.service
- 禁止防火墙开机自启:systemctl disable firewalld.service
- 查看防火墙状态:firewall-cmd --state
2、关闭selinux
- vim /etc/selinux/config
- 将 SELINUX=enforcing 改为 SELINUX=disabled
3、配置NTP服务(所有节点)
所有节点
- 修改时区(修改为中国标准时区) ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 安装ntp服务 yum -y install ntp
node1节点
- vim /etc/ntp.conf
其余节点
所有节点
- 重新启动ntp服务:service ntpd restart
- 设置开机自启:systemctl enable ntpd.service
- 查看与时间同步服务器的时间偏差: ntpdc -c loopinfo
- 查看当前同步的时间服务器: ntpq -p
- 配置成功状态(服务开启后前面出现*说明成功):
4、创建Hadoop用户
新增用户
- sudo adduser hadoop
- passwd hadoop 输入密码 确认密码
- 创建hadoop用户的时候同时也创建了hadoop用户组,把hadoop用户加入到hadoop用户组:sudo usermod -a -G hadoop hadoop 前一个hadoop是组名,后一个是hadoop是用户名
赋予root权限
- 切换到root用户:sudo vi /etc/sudoers
- 修改文件如下:
# User privilege specification
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
保存退出,在hadoop用户下就可以使用sudo获取root权限
修改某一个文件夹及其所属子文件为hadoop用户和hadoop用户组
- 在root用户下运行:chown -R hadoop:hadoop /opt/
五、基础软件安装
1、jdk-8u144-linux-x64
JAVA_HOME=/usr/local/java
JRE_HOME=/usr/local/java/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_HOME JRE_HOME CLASS_PATH PATH
2、scala-2.11.8
export SCALA_HOME=/usr/local/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin
3、Python3.6 编译安装
- 安装python3.6可能使用的依赖
yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
- 安装gcc编译器,如果已安装请忽略,否则编译python时会发生错误
yum install -y gcc
- tar -zxvf Python-3.6.4.tgz
- cd Python-3.6.4
- ./configure --prefix=/usr/local
- make
- make altinstall 如果使用make install,在系统中将会有两个不同版本的Python在/usr/bin/目录中。这将会导致很多问题
- 更改/usr/bin/python链接
cd /usr/bin
mv python python.backup
ln -s /usr/local/bin/python3.6 /usr/bin/python
ln -s /usr/local/bin/python3.6 /usr/bin/python3
- 更改yum脚本的python依赖
cd /usr/bin
ls yum*
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
yum(这个是我的yum开头的文件,就一个,其他的类似)
更改以上文件头为
#!/usr/bin/python 改为 #!/usr/bin/python2
这样的安装方式,能够同时使用python3.6和python2.7。
六、ssh免密登录
- 所有节点切换回hadoop用户
- node1节点执行
ssh-keygen -t rsa
一路回车到结束,在/root/.ssh/下面会生成一个公钥文件id_rsa.pub cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
将公钥追加到authorized_keyschmod 600 ~/.ssh/authorized_keys
修改权限- 将~/.ssh从当前node1节点分发到其他各个节点。如:
scp -r ~/.ssh/ hadoop@node2:~/.ssh/
- ssh 各个节点互相登陆
七、小节
以上便是集群环境搭建前的准备工作,下章将记录Hadoop及其组件搭建的具体过程。