背景
最近在研究flink源代码,部署的时候想基于yarn模式去部署。但是目前没有部署环境,所以决定自己通过虚拟机搭建一个hadoop集群,用来部署flink使用。目的还是为了学习flink,本次集群不作为正式环境使用,仅个人玩耍。
虚拟机安装 centos7
http://mirrors.aliyun.com/centos/7/updates/x86_64/repodata/?spm=a2c6h.25603864.0.0.234a1ec8ZjY3UY
下载centos镜像 https://mirrors.aliyun.com/centos/7/isos/x86_64/
DVD为标准安装版,日常使用下载该版本即可;Everything对完整版安装盘的软件进行了补充,集成了所有软件;LiveGNOME为GNOME桌面版;LiveKDE为KDE桌面版;Minimal为最小软件安装版,只有必要的软件,自带的软件最少;NetInstall为网络安装版,启动后需要联网进行安装。
虚拟机中按照系统,基本都是下一步,然后选中下载的镜像。然后启动虚拟机
之后就下一步下一步,然后就是重启。
重启完以后登录,之后对/etc/sudoers文件进行编辑,添加hadoop授权root权限。
关闭防火墙
sudo systemctl stop firewalld.service
防止开机启动
sudo systemctl disable firewalld.service
检查是否已经关闭
sudo firewall-cmd --state
如果想启动可以执行如下命令
sudo systemctl start firewalld.service
设置固定ip
我们集群中的节点ip肯定都是固定的,要不一重启,ip变了,那么我们的节点通信就会失败,所以我们必须设置这一步 。
第一步:添加nat网络
偏好设置->网络->添加网络
第二步 添加only-host
管理->主机网络管理->创建
第三步:设置网卡
网卡1
网卡2
重启系统
第四步:修改网络配置文件
/etc/sysconfig/network-scripts/ifcfg-xx
中ONBOOT=no改为ONBOOT=yes
退出重启网络。
service network restart
测试网络是否配通ping 一下baidu
第五步:添加静态网卡
去 ifcfg-enp0s8文件进行修改,好像有的是需要复制一个网卡文件 那就cp ifcfg-xx ifcfg-enp0s8就可以了
复制完以后修改里面的内容
BOOTPROTO=yes
NAME=enp0s8
DEVICE=enp0s8
UUID=xxxx //uuidgen生成一个
IPADDR=192.168.56.120
NETMASK=255.255.255.0
然后保存重启网络,ping测试一下网络。ping网关,ping自己。
然后通过宿主机器ping 一下虚拟机是否正常。
搞定基本网络搞定了。接下来就是集群的环境准备了!
centos Error: Cannot find a valid baseurl for repo: base 解决方法
在yum update的时候出现了异常,查了了一下。找到 base, updates, extras 域,并 注释掉 mirrorlist, baseurl;
替换baseurl,base updates extras都要替换 baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
然后清空缓存
yum clean all
更新yum
SSH登录虚拟机
ssh username@ip
修改hostname
修改内核控制文件 /etc/sysctl.conf,这个文件是修改内核 的接口文件,权限最高,没有之一,修改该文件需要root权限。
vim /etc/sysctl.conf 最后一行添加 kernel.hostname=你想要的hostname。保存退出。执行命令:sysctl -p
JDK安装
下载对应的jdk版本
tar -zxvf jdk -C path
配置环境变量
vi /etc/profile
添加JAVA_HOME的路径 之后把bin路径追加到PATH中
测试安装
java -version
克隆
对虚拟机进行克隆两台,选择【控制】因为是mac的缘故吧,我们这里点进去以后我们选择【复制】功能,按照如图下面进行配置
然后继续,完全复制。这样三台虚拟机就一样的配置完毕了。
Hosts配置
vim /etc/hosts
192.168.56.120 hadoop01
192.168.56.121 hadoop02
192.168.56.122 hadoop03
SSH免密登录
cd ~/.ssh/ ## 如果没有此目录 则可以通过 ssh localhost 命令执行
ssh-keygen -t rsa ##全部按回车执行下去就可以
cat ./id_rsa.pub >> ./authorized_keys ## 将秘钥加入到授权文件
在hadoop02,hadoop03分别执行如上命令,只是在最后一步将公钥复制到hadoop01的位置
scp ~/.ssh/id_rsa.pub hadoop@hadoop01:~/.ssh/id_rsa.pub.hadoop02
scp ~/.ssh/id_rsa.pub hadoop@hadoop01:~/.ssh/id_rsa.pub.hadoop03
回到hadoop01将以上两个文件复制到authorized_keys中
cat ./id_rsa.pub.hadoop02 >> ./authorized_keys ## 将秘钥加入到授权文件
cat ./id_rsa.pub.hadoop03 >> ./authorized_keys ## 将秘钥加入到授权文件
复制授权文件到各个节点
scp ~/.ssh/authorized_keys hadoop@hadoop02:~/.ssh/
scp ~/.ssh/authorized_keys hadoop@hadoop03:~/.ssh/
如果失败则需要更改权限问题
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
验证结果
每个节点都ssh去验证一下,确保都可以免密登录。到目前为止,我们已经做好了hadoop搭建的前期准备,下一篇文章,搭建小集群。