(一)大数据生态圈集群搭建之 --Linux环境准备
搭建准备工作
本地机环境
准备安装包
- JDK-1.8以上的版本, 需上传至虚拟机节点
虚拟机工具
- VMware – 用于在本地机上安装虚拟机.
- 虚拟机使用centOS 6.5的镜像.
连接工具
连接工具有很多, 推荐使用XShell, 也可使用其他的, 因人而异.
上传工具
上传工具也有很多, 推荐Xftp和fileZilla.
CentOS虚拟机环境搭建
我们使用四台节点来搭建集群, 将它们分别命名为node01, node02, node03, node04(命名可任意). 除此之外, 再用一台节点当作客户端节点: client.
首先, 需要先创建node01节点, 创建过程即在虚拟机中安装CentOS, 不会的可自行Bing, Google. 其余四台节点等通用配置设置完成之后, 用VMware自带的克隆功能克隆后稍加修改即可.
通用配置
静态IP配置
cd /etc/sysconfig/network-scripts/ 进入该目录, 找到ifcfg-eth0的文件,用vim打开修改
将ONBOOT=no 改为yes 设置其跟随开机自启动
将BOOTPROTP=dhcp改为static 设置IP的获取由随机改为静态IP
再这之后添加以下内容(*注意 : 添加修改时, 不要加上说明用的中文*):
IPADDR=192.168.75.133 手动设置的静态IP
PREFIX=24
GATEWAY=192.168.75.2 网关ip. 打开VMware的虚拟网络编辑器, 选中nat模式查看nat设置中会有
DNS1=8.8.8.8 设置dns
:wq 保存文件并退出
service network restart 退出后, 重启网络服务
网络设置好之后, 就可以在本地机中用XShell远程连接虚拟机了. 怎么连接自行bing, 我们的操作通常是在连接工具上执行, 这样会更加方便.
时间同步配置
节点安装ntp命令: yum install ntp -y
上网查找最新的时间服务器ntp1.aliyun.com, 可选择其他家的
同步时间: ntpdate ntp1.aliyun.com
JDK环境配置
使用上传工具将jdk和hadoop的包传到虚拟机中, 这里笔者将jdk传到/usr/local目录中, 将hadoop传到/opt/software/hadoop目录中, 路径因个人配置而异, 要记得自己存放的位置, 后文会对这些路径进行配置, 到时需修改为与个人配置相关的路径, 后续内容不再重复此点.
进入jdk存放的位置 cd /usr/local
解压安装包 tar -zxf jdk-8u181-linux-x64.tar.gz
给解压出来的文件设置权限 chmod -R 777 jdk1.8.0_181
配置java环境变量 vim /etc/profile
在文件最后插入
export JAVA_HOME=/usr/local/jdk1.8.0_181
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
让修改的文件生效 source /etc/profile
控制台输入java -version 来查看jdk是否生效.如果提示java版本则表明成功
虚拟机clone && 主机名配置
vmware中克隆节点
克隆三个节点完成以后, 此时克隆的三个节点的主机名, 静态ip地址, 网卡物理地址与第一个一致, 先修改一下它们:
先设置节点网卡
vim /etc/udev/rules.d/70-persistent-net.rules
打开之后, 会有两个网卡的信息
其中, eth0 是克隆的node01节点的信息, 所以这里我们要删除这一行, 然后把eth1改为eth0, 同时复制ATTR(address)中的内容, 即克隆出来的虚拟机网卡的物理地址.
然后配置ip, 分别在每一个节点上执行
vim /etc/sysconfig/network-script/ifcfg-eth0
将HWADDR修改为刚才复制的内容
再修改IPADDR的IP地址, 只需改最后三位即可, 保证每个节点的IP不同
我设置的IP与节点对应关系为:
192.168.75.133 -- node01
192.168.75.134 -- node02
192.168.75.135 -- node03
192.168.75.136 -- node04
192.168.75.137 -- client
由于虚拟机是克隆出来的, 节点名称都相同, 需要再修改每个节点的主机名
vim /etc/sysconfig/network
将NETWORKING设置为yes 打开网络
将HOSTNAME分别设为node02, node03, node04,client
这里需要重启后才能生效, 但先别着急, 等全部配置好之后, 再统一重启生效.
各节点地址配置
为了让节点之间能够互相访问到, 需要让每个节点知晓其他节点的地址, 配置如下:
vim /etc/hosts 每个节点执行该命令, 打开hosts文件进行修改
在五个节点中同时加入下列内容(这些是我自己设置的IP)
192.168.75.133 node01
192.168.75.134 node02
192.168.75.135 node03
192.168.75.136 node04
192.168.75.137 client
免密登录配置
集群启动时, 需要访问其他节点(client节点除外), 为了实现自动化(不必每次输入密码), 需要在每个节点配置免密.
所有节点执行
ssh-keygen -t rsa -P \'\' -f ~/.ssh/id_rsa
生成公钥和私钥, 文件存放在~/.ssh目录下
每个节点上配置自身以及其他节点的公钥.
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04
注:所有存储的公钥信息均可在 ~/.ssh/authorized_keys文件中查看
防火墙配置
要想成功运行, 还需要关闭各个节点的防火墙.
临时关闭防火墙(每次重启节点都需手动执行)service iptables stop
永久关闭(推荐)chkconfig iptables off
修改生效
这么配下来, 大部分配置文件需要source或其他命令使其生效, 建议重启虚拟机.