最近因为要搭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之类。

可以参考从0到1教你用VMware15.X安装Centos7.X_MRYZJ的博客-CSDN博客1、软件准备VMware15.X:https://www.jb51.net/softs/638376.htmlCentos7.X:http://ftp.ksu.edu.tw/FTP/Linux/CentOS/7/isos/x86_64/或官网:https://www.centos.org/download/2、硬件要求1)、CPUCPU只要不是老旧到会让你的硬件系统宕机的都能够支持...https://blog.csdn.net/MRYZJ/article/details/100935851

当然先创建一台,再利用克隆的功能克隆出另外两台是更明智的选择,但是VMware workstation

15.x版本及以上已经没有克隆功能了,以下是手动克隆的传送门:

VMware Workstation 15 player 下克隆虚拟机_北冥有渔的博客-CSDN博客_vmwareplayer怎么克隆虚拟机VMware Workstation 15 player 下克隆虚拟机ubuntu通过虚拟机搭建Hadoop集群,首先要克隆集群机器。如果使用的是VMware workstation 15 player版本则没有克隆功能,需要我们手动克隆,下面是克隆方法:一、找到ubuntu文件的根目录,复制粘贴,然后重命名为ubuntu1、ubuntu2二、进入ubuntu1文件夹,把所有文件名含有ubuntu的文件重命名为ubuntu1更改前更改后三、修改3个配置文件ubuntu.vmxf,ubhttps://blog.csdn.net/weixin_44763047/article/details/111772941

二.搭建集群

1.修改hostname

现在有三台虚拟机,改hostname:将其中一台改作Master,一台改作slave1,一台改作slave2。让其三者处于同一局域网中。

vim /etc/hostname

记得修改完按esc,然后冒号+wq(保存),冒号+q(不保存)

2.记录三台虚拟机的IP地址

由Master节点举例

 输入 ipconfig(以下是下载ipconfig的方法)

Linux 安装ifconfig命令_sword_happy的博客-CSDN博客_linux安装ifconfigLinux 安装ifconfig命令安装linux系统的时候选择mini安装,这种情况下输入ifconfig命令是无效的,需要进行手动安装;当然Linux自带yum命令,保证可以连接网络,输入命令:yum install net-tools...https://blog.csdn.net/sword_happy/article/details/98045341?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164592923416780269848639%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164592923416780269848639&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-98045341.pc_search_result_cache&utm_term=ifconfig%E4%B8%8B%E8%BD%BD+linux&spm=1018.2226.3001.4187

最终可以得到

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

这一步给你们一个传送门把

Hadoop安装与配置详细教程_王佳斌-CSDN博客_hadoop安装【确保服务器集群安装和配置已经完成!】前言请根据读者的自身情况,进行相应随机应变。我的三台CentOS7服务器:主机:master(192.168.56.110)从机:slave0(192.168.56.111)从机:slave1(192.168.56.112)每一个节点的安装与配置是相同的,在实际工作中,通常在master节点上完成安装和配置后,然后将安装目录复制到其他节点就可以,...https://blog.csdn.net/weixin_44198965/article/details/89603788?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164601575316780271530136%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164601575316780271530136&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-89603788.pc_search_result_cache&utm_term=hadoop%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187

5.ssh免密登录

因为Ubuntu这个系统他并没有自带ssh服务,需要自己安装。(三台都要)

sudo apt-get install openssh-server  #安装服务,一路回车                     
sudo /etc/init.d/ssh restart  #启动服务                                      
sudo ufw disable   #关闭防火墙     

有时候用apt 或者apt-get 时会碰上以下情况(没碰到可以不看加红部分

参考文章:

解决E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)_cxy好好先生的博客-CSDN博客如果在使用apt或者apt-get时碰到以下情况:这就是因为锁定的文件会阻止 Linux 系统中某些文件或者数据的访问,这个概念也存在于Windows 或者其他的操作系统中。一旦你运行了 apt-get 或者 apt 命令,锁定文件将会创建于 /var/lib/apt/lists/、/var/lib/dpkg/、/var/cache/apt/archives/ 中。这有助于运行中的 apt-get 或者 apt 进程能够避免被其它需要使用相同文件的用户或者系统进程所打断。当...https://blog.csdn.net/weixin_52105111/article/details/123161383关闭完防火墙,接下来就是查看一下是否开通ssh服务。

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进程的开启的话可以在评论区告诉我,或者私信我,实在是搞不出来。

再次说明参考:

如何构建虚拟机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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐