在上一篇的分享文章中我是给大家分享了运行部署hadoop的一些安装准备工作,这篇接上一篇继续为大家分享一些个人的学习经验总结。我学习用的是大快发行版DKHadoop,所以所有的经验分享都是以DKHadoop为基础,这里要先说明一下。个人觉得DKHadoop对新手还是算是很友好的了,新手朋友们可以大快搜索网站下载一个三节点的dkhadoop玩一下看看。
闲话到此结束,本篇重点整理的是服务器操作系统的配置问题,写的可能会有点长,需要一点点耐心看的哦!
1.修改权限
步骤:在准备工作中拷贝安装包DKHPlantform.zip到主节点/root/目录后,解压并修改文件权限(文件所有者可读可写可执行,与文件所有者属于一个用户组的其他用户可读可执行,其他用户组可读可执行)。
命令:
cd /root/
unzip DKHPlantform.zip
chmod -R 755 DKHPlantform
2. 搭建hadoop集群设置SSH免密登录
步骤:
修改主机名 vi /etc/sysconfig/network reboot
(1)修改本机hosts文件,写入对应关系
命令:
vi /etc/hosts
通过按键盘上的insert或是I键进入编辑模式,编辑完成后按一下Esc键然后按一下按Shift+:键,输入wq 后回车就可以保存。输入q!后回车则是放弃保存并退出.
进入编辑模式后,按照规则写入主机与ip的对应关系(主机名称dk41是自己命名的,如下图)例:
192.168.1.41 dk41
192.168.1.42 dk42
192.168.1.43 dk43
编辑完后,保存退出。把对应关系拷到其他两台机器上。
命令:
scp -r /etc/hosts 192.168.1.42:/etc
scp -r /etc/hosts 192.168.1.43:/etc
(2)执行集群之间免密前的准备工作
a)执行sshpass.sh的脚本的时候会去读sshhosts和sshslaves这两个文件,替换sshpass.sh中的master和slave文件。
修改文件sshhosts,输入全部机器的主机名,每行一个主机名(如下图)
命令:
vi /root/DKHPlantform/autossh/sshhosts
通过按键盘上的insert或是I键进入编辑模式,编辑完成后按一下Esc键然后按一下按Shift+:键,输入wq,后回车就可以保存。输入q!后回车则是放弃保存并退出.
修改文件sshslaves,写入除主机名之外的所有机器名(如下图)
命令:
vi /root/DKHPlantform/autossh/sshslaves
通过按键盘上的insert或是I键进入编辑模式,编辑完成后按一下Esc键然后按一下按Shift+:键,输入wq,后回车就可以保存。输入q!后回车则是放弃保存并退出.
b)执行insExpect.sh,系统会装两个rpm包,在执行sshpass.sh的过程中无需再输密码和yes,脚本自动继续执行。
命令:
cd /root/DKHPlantform/autossh
./insExpect.sh
按照提示多次输入yes和密码(如下图)
c)执行changeMaster.sh脚本为了清空/root/.ssh目录下的所有文件(在/root/DKHPlantform/autossh目录下),避免在执行sshpass.sh脚本时产生的新密钥时与旧的密钥发生冲突。
命令:
./changeMaster.sh
按照提示输入(如下图)
(3)执行集群免密(SSH)
a)执行SSH:
命令:
cd /root/
./sshpass.sh 密码
123456为集群密码,根据自己实际情况输入。
b)防止访问服务器时某些服务被拦截,需关闭防火墙。
命令:
cd /root/DKHPlantform/autossh
./offIptables.sh
3.安装双机热备份的MySQL
目的:存放Hive的元数据
步骤:
(1)从主节点分发mysql安装目录到第二节点
命令:
scp -r /root/DKHPlantform/mysqlInst/ 192.168.1.42:/root/
(2)主节点执行:
命令:
cd /root/DKHPlantform/mysqlInst/
./mysql.sh 1
ssh前往第二台机器(从节点)并执行:
命令:
cd /root/mysqlInst/
./mysql.sh 2
(3)执行成功之后执行热备份(两台机器上都要执行,两个ip互换,41上写42,42上写41,密码是Mysql的密码为:123456。平台内已经设定好,请勿修改):
命令:
source /etc/profile
./sync.sh 192.168.1.xxx(另一台mysql地址) root 123456
4.创建数据库
步骤:
(1)导入MySQL数据表,只在主节点执行:
命令:
mysql -uroot -p123456 < { 此处为sql文件,主目录下文件: dkh.sql}
如:mysql -uroot -p123456 </root/DKHPlantform/dkh.sql
(2)执行完后查看一下两台mysql的数据表是否存在,从节点查看执行:
命令:
mysql -uroot -p123456
show databases;