Hadoop集群搭建(超级超级详细)

Hadoop集群搭建(超级超级详细)Hadoop 集群搭建 超级超级详细

Hadoop集群搭建(超级超级详细)

1、集群规划

安装VMware,使用三台 Ubuntu18.04 虚拟机进行集群搭建,下面是每台虚拟机的规划:

主机名 IP 用户 HDFS YARN
hadoopWyc 待定 wyc NameNode、DataNode NodeManager、ResourceManager
hadoopWyc2 待定 wyc DataNode、SecondaryNameNode NodeManager
hadoopWyc3 待定 wyc DataNode NodeManager

2、网络配置

先登入root用户,后面都在root用户下操作。

su root #登入root用户 

还没设置root用户密码的参考 Ubuntu18.04设置root密码(初始密码)

2.1 修改主机名

vim /etc/hostname #修改文件 

2.2 查看虚拟机网络信息

2.2.1 点击VMware的编辑里的虚拟网络编辑器

在这里插入图片描述

2.2.2 选择VMnet8网络,点击NAT设置

在这里插入图片描述
在这里插入图片描述

记录上面图中子网掩码、网关,加上前面的IP地址三个属性,这些在后面的步骤有用,不同的电脑会有不同。

2.2.3 获取Ubuntu虚拟机的网卡编号
ifconfig 

在这里插入图片描述

2.2.4 设置静态网络
vim /etc/network/interfaces 

在原有的内容上添加

auto ens33 # 网卡编号,我这里是ens33 iface ens33 inet static # 设置为静态IP address 192.168.153.136 # 该机器的IP,就是我们登录后显示的那个IP 地址 netmask 255.255.255.0 # 子网掩码,刚才获取VMware的子网掩码 gateway 192.168.153.2 # 网关,也是刚才获取的网关 dns-nameserver 192.168.153.2 # DNS,和网关一样即可 

在这里插入图片描述
上面的内容根据各自的电脑进行设置,一定要和VMware中的子网IP、子网掩码、网关保持一致,不然会上不了网。保存退出vim编辑器,重启Ubuntu即可生效。

3、安装 ssh 服务端

apt-get install openssh-server 
ssh localhost 

补充:ssh localhost = ssh
<当前用户>
@localhost -p 22 -i ~/.ssh/id_rsa

exit # 退出ssh localhost cd ~/.ssh/ ssh-keygen -t rsa # 会有提示,都按回车就行 cat ./id_rsa.pub >> ./authorized_keys # 加入授权 

在这里插入图片描述
现在再使用”ssh localhost”,就可以不用输入密码登录ssh
在这里插入图片描述




4、安装Java环境

Hadoop3.1.3需要JDK版本在1.8及以上,点击右边链接可以下载符合版本的JDK:jdk-8u162-linux-x64.tar.gz(提取码:ik9p)。

  1. Xshall用root登录,再打开Xftp(这样Xftp也是root用户打开,拥有所有权限),可是Xshall用root登录虚拟机会连接不上,参考:Xshell用root用户连接Linux 可以解决
  2. 参考:Xftp 传文件到虚拟机一直显示状态错误,传不进去

将文件放在随便一个目录中后,执行下面命令:

cd /usr/lib mkdir jvm # 创建目录来存放JDK文件 

然后再进入 jdk-8u162-linux-x64.tar.gz 所在的文件夹解压JDK到刚才创建的 jvm 文件夹

tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #解压JDK到刚才创建的jvm文件夹 

将JDK文件解压之后,进入/usr/lib/jvm目录下会有个jdk1.8.0_162文件,下面我们开始设置环境变量

vim ~/.bashrc 

在打开的文件首部添加下面内容

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162 export JRE_HOME=${ 
   JAVA_HOME}/jre export CLASSPATH=.:${ 
   JAVA_HOME}/lib:${ 
   JRE_HOME}/lib export PATH=${ 
   JAVA_HOME}/bin:$PATH 

保存退出vim编辑器,执行下面命令让.bashrc文件的配置生效:

source ~/.bashrc 

接下来使用下面命令查看是否安装成功:

java -version 

5、安装Hadoop3.1.3

hadoop-3.1.3.tar.gz (提取码: x2vu)可以在这点击下载,将其下载并上传到相应的位置上,使用下面命令安装,也要和安装Java一样给文件夹权限:

tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local # 解压到/usr/local中 cd mv ./hadoop-3.1.3/ ./hadoop # 将文件名改为hadoop sudo chown -R rmc0924 ./hadoop # 修改权限,当前是什么用户登录,就给他赋予用户的权限 

解压后使用下面命令看是否安装成功,安装成功会显示Hadoop的版本信息。

cd /usr/local/hadoop ./bin/hadoop version 

6、克隆虚拟机

主机名 IP 用户 HDFS YARN
hadoopWyc 192.168.153.136 wyc NameNode、DataNode NodeManager、ResourceManager
hadoopWyc2 192.168.153.137 wyc DataNode、SecondaryNameNode NodeManager
hadoopWyc3 192.168.153.138 wyc DataNode NodeManager

7、三台虚拟机都加上主机IP映射

打开hosts文件,新增三条IP与主机的映射关系:

vim /etc/hosts 

8、集群搭建

现在正式搭建Hadoop集群。首先我们还是需要打开VMware中的三台虚拟机,然后用Xshall连接好三台虚拟机就行了。

8.1 SSH无密码登录节点

必须要让hadoopWyc节点可以SSH无密码登录到各个hadoopWyc2和hadoopWyc3节点上。首先生成hadoopWyc节点公钥,如果之前已经生成,必须删除,重新生成一次。在hadoopWyc上进行下面操作:

cd ~/.ssh rm ./id_rsa* # 删除之前生成的公钥 ssh-keygen -t rsa # 遇到信息,一直回车就行 

在这里插入图片描述
再让hadoopWyc节点能够无密码SSH登录本机,在hadoopWyc节点上执行下面命令:

cat ./id_rsa.pub >> ./authorized_keys 

使用下面命令进行测试:

ssh hadoopWyc 

接下来将hadoopWyc上的公钥传给各个hadoopWyc2&3节点:

scp ~/.ssh/id_rsa.pub hadoopWyc2:/home/wyc scp ~/.ssh/id_rsa.pub hadoopWyc3:/home/wyc 
mkdir ~/.ssh # 如果不存在该文件夹,先创建 cat /home/wyc/id_rsa.pub >> ~/.ssh/authorized_keys rm /home/wyc/id_rsa.pub # 加完就删除 

在hadoopWyc3节点中也执行以上的命令。执行完了之后,在hadoopWyc节点上就可以无密码登录hadoopWyc2&3节点,在hadoopWyc节点上执行下面命令:

ssh hadoopWyc2 

8.2 配置集群环境

配置集群模式时,需要修改“/usr/local/hadoop/etc/hadoop”目录下的配置文件,包括workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。

8.2.1 修改workers文件
vim workers 

该文件内容可以指定某几个节点作为数据节点,默认为localhost,我们将其删除并修改为hadoopWyc2和hadoopWyc。当然也可以将hadoopWyc加进去,让hadoopWyc节点既做名称节点,也做数据节点,本文将hadoopWyc一起加进去作为数据节点。

hadoopWyc hadoopWyc2 hadoopWyc3 
8.2.2 修改core-site.xml文件
vim core-site.xml 
 
   
    
    
      fs.defaultFS 
     
    
      hdfs://hadoopWyc:9000 
     
    
    
    
      hadoop.tmp.dir 
     
    
      file:/usr/local/hadoop/tmp 
     
    
   
8.2.3 修改hdfs-site.xml文件
vim hdfs-site.xml 
 
   
    
    
      dfs.namenode.secondary.http-address 
     
    
      hadoopWyc2:50090 
     
    
    
    
      dfs.replication 
     
    
      3 
     
    
    
    
      dfs.namenode.name.dir 
     
    
      file:/usr/local/hadoop/tmp/dfs/name 
     
    
    
    
      dfs.datanode.data.dir 
     
    
      file:/usr/local/hadoop/tmp/dfs/data 
     
    
   
8.2.4 修改mapred-site.xml文件
vim mapred-site.xml 
 
   
    
    
      mapreduce.framework.name 
     
    
      yarn 
     
    
    
    
      mapreduce.jobhistory.address 
     
    
      hadoopWyc:10020 
     
    
    
    
      mapreduce.jobhistory.webapp.address 
     
    
      hadoopWyc:19888 
     
    
    
    
      yarn.app.mapreduce.am.env 
     
    
      HADOOP_MAPRED_HOME=/usr/local/hadoop 
     
    
    
    
      mapreduce.map.env 
     
    
      HADOOP_MAPRED_HOME=/usr/local/hadoop 
     
    
    
    
      mapreduce.reduce.env 
     
    
      HADOOP_MAPRED_HOME=/usr/local/hadoop 
     
    
   
8.2.5 修改yarn-site.xml文件
vim yarn-site.xml 
 
   
    
    
      yarn.resourcemanager.hostname 
     
    
      hadoopWyc 
     
    
    
    
      yarn.nodemanager.aux-services 
     
    
      mapreduce_shuffle 
     
    
   

8.3 分发文件

修改完上面五个文件后,将hadoopWyc节点上的hadoop文件复制到各个结点上。在hadoopWyc节点上执行下面命令:

cd /usr/local sudo rm -r ./hadoop/tmp # 删除 Hadoop 临时文件 sudo rm -r ./hadoop/logs/* # 删除日志文件 tar -zcf ~/hadoop.master.tar.gz hadoop # 先压缩再复制 cd ~ scp hadoop.master.tar.gz hadoopWyc2:/home/ scp hadoop.master.tar.gz hadoopWyc3:/home/ 

在这里插入图片描述
在其他hadoopWyc2&3节点将接收的压缩文件解压出来,并授予权限,命令如下:

sudo rm -r /usr/local/hadoop # 删掉旧的(如果存在) sudo tar -zxf /home/hadoop.master.tar.gz -C /usr/local sudo chown -R wyc /usr/local/hadoop 

在这里插入图片描述

8.4 Hadoop初始化

HDFS初始化只能在主节点上进行

cd /usr/local/hadoop ./bin/hdfs namenode -format 

在这里插入图片描述
在初始化过程中,只要看到上面红框里面的信息,有个successfully formatted说明初始化成功。

8.5 Hadoop集群启动

在hadoopWyc节点上执行下面命令:

cd /usr/local/hadoop ./sbin/start-dfs.sh ./sbin/start-yarn.sh ./sbin/mr-jobhistory-daemon.sh start historyserver #这样我们就可以在相应机器的19888端口上打开历史服务器的WEB UI界面。可以查看已经运行完的作业情况 

在这里插入图片描述
通过jps可以查看各个节点所启动的进程,如果按照本文的设置,正确启动的话,在hadoopWyc节点上会看到以下进程:
在这里插入图片描述
hadoopWyc2节点的进程:
在这里插入图片描述
hadoopWyc3节点的进程:










hadoop-3.1.0启动hadoop集群时还有可能会报如下错误:

root@hadoopWyc3:/usr/local/hadoop# ./sbin/start-dfs.sh Starting namenodes on [hadoopWyc] ERROR: Attempting to operate on hdfs namenode as root ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes ERROR: Attempting to operate on hdfs datanode as root ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation. Starting secondary namenodes [hadoopWyc2] ERROR: Attempting to operate on hdfs secondarynamenode as root ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation. 

参考:解决 Hadoop 启动 ERROR: Attempting to operate on hdfs namenode as root 的方法 解决

至此,Hadoop的完全分布式部署已经完成。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219835.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午9:47
下一篇 2026年3月17日 下午9:47


相关推荐

  • 简单搭建一个直播服务器

    简单搭建一个直播服务器一、动手搭建流媒体服务器1、下载srsv2.0_r8,下载地址是:https://codeload.github.com/ossrs/srs/zip/v2.0-r8建议用迅雷下载,个人感觉比较快2、下载下来后解压该文件(我是在我window电脑解压的)并上传====>使用上传工具将该文件夹上传到我的linux虚拟机中,并改名为srs3、开始安装进入到tru…

    2022年5月26日
    30
  • 全国各地电信DNS服务器地址

    全国各地电信DNS服务器地址北京DNS: 202.96.199.133 202.96.0.133 202.106.0.20 202.106.148.1 202.97.16.195

    2022年7月2日
    54
  • JLink接口的SWD接法

    JLink接口的SWD接法下面为J-Link接口定义:仿真器端口连接目标板备注1.VCCMCU电源VCCVCC2.VCCMCU电源VCCVCC3.TRSTTRSTTestReSeT/pin4.GNDGND或悬空 5.TDITDITestDataInpin6.

    2022年5月27日
    124
  • 《Python爬虫大数据采集与挖掘》期末考试考题汇总带答案

    《Python爬虫大数据采集与挖掘》期末考试考题汇总带答案一、填空题1、爬虫技术的应用可以分为两大类:采集型爬虫、监测型爬虫。2、根据Web页面组成结构中的信息内容的生成方式不同,可以将Web页面分为静态页面、动态页面、以及伪静态页面三大类。3、Robots协议为了给Web网站提供灵活的控制方式来决定页面是否能够被爬虫采集。4、在浏览器中打开网站后,在网站首页的地址后面添加“/robots.txt”,如果网站设置了访问许可,按回车就可以看到网站的robots协议,即robots.txt文件内容。5、Web信..

    2022年6月16日
    42
  • mybatis log plugin2022激活码【2022.01最新】2022.02.21[通俗易懂]

    (mybatis log plugin2022激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlHC…

    2022年4月1日
    257
  • javascript 基础_JavaScript高级编程

    javascript 基础_JavaScript高级编程JavaScript知识总结(高级篇)1.深入基础1.1数据类型1.分类:-基本类型-String:任意字符串-Number:任意的数字-boolean:true/false-undefined:未定义-null:空-引用(对象)类型-Object:任意对象-Function:一种特别的对象(可以执行)-Array:一种特别的对象(数值下标,内部数据是有序的)2.判断:-typeof:可以判断:undefined、数值、字符串、布尔值不能判断:null与object

    2022年8月20日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号