三台Ubuntu虚拟机搭建 Hadoop集群 (第一次搭)
最近因为要搭Hadoop集群,确实花了好大的心血在里面,因为我的Linux也是前两天速成的,好多东西都还是边查资料边搭。但我最终确实成功了,留了一点点小问题在里面。(当Hadoop集群start-all之后resourcemanager无论我怎么按照网上的方法调试都不出现)现在就来回顾一下我的第一次Hadoop集群之旅。一.准备虚拟机...
最近因为要搭Hadoop集群,确实花了好大的心血在里面,因为我的Linux也是前两天速成的,好多东西都还是边查资料边搭。但我最终确实成功了,留了一点点小问题在里面。(当Hadoop集群start-all之后resourcemanager无论我怎么按照网上的方法调试都不出现)
现在就来回顾一下我的第一次Hadoop集群之旅。
参考:
如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群_北冥有渔的博客-CSDN博客如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群克隆集群机器通过虚拟机搭建Hadoop集群,发现使用的VMware workstation 15 player版本没有克隆功能,于是找到了手动克隆方法:参考:https://blog.csdn.net/weixin_44763047/article/details/111772941搭建集群一台Ubuntu主机系统作Master(yjh-ubuntu),一台Ubuntu主机系统命名为slave01,一台Ubuntu主机系统命名为slahttps://blog.csdn.net/weixin_44763047/article/details/115222913我跟着上面这个步骤一步一步做,但是出现了很多问题,自己一步一步去解决,我把会发生的情况和会有的坑都放在我的文章里了,以及我还有的疑问。
一.准备虚拟机
首先你要创建三台一模一样的Ubuntu虚拟机
网络类型最好先选用NAT模式,等ssh调通了再进行其他操作,静态ip之类。
当然先创建一台,再利用克隆的功能克隆出另外两台是更明智的选择,但是VMware workstation
15.x版本及以上已经没有克隆功能了,以下是手动克隆的传送门:
二.搭建集群
1.修改hostname
现在有三台虚拟机,改hostname:将其中一台改作Master,一台改作slave1,一台改作slave2。让其三者处于同一局域网中。
vim /etc/hostname
记得修改完按esc,然后冒号+wq(保存),冒号+q(不保存)
2.记录三台虚拟机的IP地址
由Master节点举例
输入 ipconfig(以下是下载ipconfig的方法)
最终可以得到
Master 192.168.74.140
slave1 192.168.74.133
slave2 192.168.74.139
接下来修改节点IP映射
sudo vim /etc/hosts
还是以Master节点为例(三台都要改)
:wq保存
三台虚拟机全部重启后生效
3.ping通三台虚拟机
利用刚刚记录下来的ip地址,三台虚拟机互相ping通。
ping IP地址
能够ping通的结果是如图:
当三台都互相ping通就成功。
4.安装和配置hadoop
这一步给你们一个传送门把
5.ssh免密登录
因为Ubuntu这个系统他并没有自带ssh服务,需要自己安装。(三台都要)
sudo apt-get install openssh-server #安装服务,一路回车
sudo /etc/init.d/ssh restart #启动服务
sudo ufw disable #关闭防火墙
有时候用apt 或者apt-get 时会碰上以下情况(没碰到可以不看加红部分)
参考文章:
ps -e | grep ssh
只要出现了两个进程说明你成功了。
已经全部搭建完毕,但是还是先发出来,没啥时间写博客,还得先继续学习,明天有空补上
接下来:在master节点生成SSH公钥,公钥储存在 /home/hadoop/.ssh 中
cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
rm ./id_rsa* # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa # 一直按回车就可以
让master 节点可以无密码 SSH 本机,在 master 节点上执行
cat ./id_rsa.pub >> ./authorized_keys
完成后可执行 ssh master验证一下(需要输入 yes,成功后执行 exit 返回原来的终端)
ssh djh1
接着在 master 节点将上公匙传输到 slave01节点,过程中需要输入 slave01 节点的密码,传输100%以后就是传过去了:
scp ~/.ssh/id_rsa.pub djh2@slave01:/home/djh2
接着在 slave01节点上,把公钥加入授权
mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub # 用完就可以删掉了
slave02 也重复上面的步骤
你就可以免密码ssh两个节点了
6. 配置分布式集群环境
需要修改 /usr/local/hadoop/hadoop-2.10.1/etc/hadoop 中的5个配置文件。
slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
slaves
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directions.</description>
</property>
</configuration>
hdfs-site.xml
mapred-site.xml
yarn-site.xml
配置好以后,将master 节点上的 /usr/local/hadoop/hadoop-2.10.1/etc/hadoop 文件夹复制到剩余节点上。
在 master 节点执行:
cd /usr/local #去到/usr/local
sudo rm -r ./hadoop/tmp # 删除 Hadoop 临时文件
cd hadoop/hadoop-2.7.2
sudo rm -r ./logs # 删除日志文件
sudo tar -zcf ~/hadoop.Master.tar.gz ./hadoop # 先压缩再复制
cd ~ #跳转到有压缩包的路径下
scp ./hadoop..Master.tar.gz slave01:/home/djh2/hadoop
#发送到slave01节点,其他salve节点也要执行
在剩余 salve 节点上执行(以slave01为例):
7.启动hadoop
首次启动 Hadoop 需要将 master 节点格式化:
在hdfs namenode -format # 首次运行需要执行初始化,之后不需要
start-all.sh
mr-jobhistory-daemon.sh start historyserver
通过命令 jps 可以查看各个节点的启动进程
jps
master 有 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServe
以上进程缺少任意一个都表示有错。(我就是在这一步出现了错误,ResourceManager进程缺少)不知如何解决。
希望大家发现错误能给我纠正,共同学习共同进步,谁会ResourceManager进程的开启的话可以在评论区告诉我,或者私信我,实在是搞不出来。
再次说明参考:
更多推荐
所有评论(0)