原创

Hadoop集群搭建前的准备工作

一、硬件环境

集群由五个虚拟机节点组成,每个虚拟机节点的配置如下:

  • 操作系统: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服务

其余节点

other-ntp

所有节点

  • 重新启动ntp服务:service ntpd restart
  • 设置开机自启:systemctl enable ntpd.service
  • 查看与时间同步服务器的时间偏差: ntpdc -c loopinfo
  • 查看当前同步的时间服务器: ntpq -p
  • 配置成功状态(服务开启后前面出现*说明成功):

node1

node2

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_keys
  • chmod 600 ~/.ssh/authorized_keys 修改权限
  • 将~/.ssh从当前node1节点分发到其他各个节点。如: scp -r ~/.ssh/ hadoop@node2:~/.ssh/
  • ssh 各个节点互相登陆

七、小节

以上便是集群环境搭建前的准备工作,下章将记录Hadoop及其组件搭建的具体过程。

正文到此结束