当前位置:   article > 正文

虚拟机(3台)搭建Hadoop集群_三台虚拟机搭建hadoop

三台虚拟机搭建hadoop

前言:

关闭防火墙

1. 临时关闭:systemctl stop firewalld.service

2. 永久关闭:systemctl disable firewalld.service

3. 查看防火墙状态:firewall-cmd --state

1. 下载hadoop安装包

地址:下载地址(官网)

本人用的是hadoop3.2.3,下载后的文件我放在/root/jars下,地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz

说明:如果你服务器可以用互联网:

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz

2. 安装

2.1 解压hadoop安装包 tar -zxvf hadoop-3.2.3.tar.gz

  1. drwxr-xr-x 9 1000 1000 149 320 2022 hadoop-3.2.3
  2. -rw-r--r-- 1 root root 492241961 228 17:46 hadoop-3.2.3.tar.gz
  3. [root@127 jars]# pwd
  4. /root/jars
  5. [root@127 jars]#

2.2 移动到/root/

mv hadoop-3.2.3 ../

目录结构如下

  1. drwxr-xr-x 9 1000 1000 149 320 2022 hadoop-3.2.3
  2. drwxr-xr-x 2 root root 33 228 17:49 jars
  3. [root@127 ~]# pwd
  4. /root

3. 配置

3.1 配置hadoop环境变量

vi /etc/profile

  1. # java
  2. export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64
  3. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  4. export PATH=$PATH:$JAVA_HOME/bin
  5. # hadoop
  6. export HADOOP_HOME=/root/hadoop-3.2.3
  7. export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
  8. export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
  9. export HDFS_NAMENODE_USER=root
  10. export HDFS_DATANODE_USER=root
  11. export HDFS_SECONDARYNAMENODE_USER=root
  12. export YARN_RESOURCEMANAGER_USER=root
  13. export YARN_NODEMANAGER_USER=root

说明:

3.1.1 安装hadoop前要先安装好  jdk (这里不介绍如何安装jdl)

3.1.2 查看 jdk安装目录 echo $JAVA_HOME

3.1.3 配置好后一定要 source /etc/profile 使环境变量生效

3.1.4 验证hadoop环境变量

  1. [root@127 ~]# hadoop version
  2. Hadoop 3.2.3
  3. Source code repository https://github.com/apache/hadoop -r abe5358143720085498613d399be3bbf01e0f131
  4. Compiled by ubuntu on 2022-03-20T01:18Z
  5. Compiled with protoc 2.5.0
  6. From source with checksum 39bb14faec14b3aa25388a6d7c345fe8
  7. This command was run using /root/hadoop-3.2.3/share/hadoop/common/hadoop-common-3.2.3.jar

3.2 配置hadoop

3.2.1 配置hadoop-env.sh(目录:/root/hadoop-3.2.3/etc/hadoop/hadoop-env.sh)

vim hadoop-env.sh (快速到达文件尾部:shift + g)

新增变量:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64

保存,退出!

3.2.2 配置core-site.xml(目录:/root/hadoop-3.2.3/etc/hadoop/core-site.xml)

  1. <configuration>
  2. <!--HDFS临时目录-->
  3. <property>
  4. <name>hadoop.tmp.dir</name>
  5. <!--hadoop主目录/tmp-->
  6. <value>/root/hadoop-3.2.3/tmp</value>
  7. </property>
  8. <!--HDFS的默认地址、端口 访问地址-->
  9. <property>
  10. <name>fs.defaultFS</name>
  11. <value>hdfs://master:9000</value>
  12. </property>
  13. </configuration>

说明:

1. hadoop下默认无tmp文件,需要创建该文件夹

2. master为主节点名称,后面会配置,你也可以自行设置

保存,退出!

3.2.3 配置hdfs-site.xml(目录:/root/hadoop-3.2.3/etc/hadoop/hdfs-site.xml)

  1. <configuration>
  2. <!--hdfs web的地址-->
  3. <property>
  4. <name>dfs.namenode.http-address</name>
  5. <value>master:9870</value>
  6. </property>
  7. <!--副本数-->
  8. <property>
  9. <name>dfs.replication</name>
  10. <value>3</value>
  11. </property>
  12. <!--是否启用hdfs权限,当值为false时,代表关闭-->
  13. <property>
  14. <name>dfs.permissions.enabled</name>
  15. <value>false</value>
  16. </property>
  17. <!--块大小,默认128M-->
  18. <property>
  19. <name>dfs.blocksize</name>
  20. <value>134217728</value>
  21. </property>
  22. </configuration>

说明:

1. master:9870,master为主节点机器名称,9870是hadoop3.x的默认端口

保存,退出!

3.2.4 配置mapred-site.xml(目录:/root/hadoop-3.2.3/etc/hadoop/mapred-site.xml)

  1. <configuration>
  2. <!--local表示本地运行,classic表示经典mapreduce框架,yarn表示新的框架-->
  3. <property>
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value>
  6. </property>
  7. <!--如果map和reduce任务访问本地库(压缩等),则必须保留原始值,当此值为空时,设置执行环境的命令将取决于操作系统-->
  8. <property>
  9. <name>mapreduce.admin.user.env</name>
  10. <!--设置为hadoop主目录-->
  11. <value>HADOOP_MAPRED_HOME=/root/hadoop-3.2.3</value>
  12. </property>
  13. <!--可以设置AM【AppMaster】端的环境变量-->
  14. <property>
  15. <name>yarn.app.mapreduce.am.env</name>
  16. <!--设置为hadoop主目录-->
  17. <value>HADOOP_MAPRED_HOME=/root/hadoop-3.2.3</value>
  18. </property>
  19. </configuration>

3.2.5 配置yarn-site.xml(目录:/root/hadoop-3.2.3/etc/hadoop/yarn-site.xml)

  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <!--集群master-->
  4. <property>
  5. <name>yarn.resourcemanager.hostname</name>
  6. <value>master</value>
  7. </property>
  8. <!--NodeManager上运行的附属服务-->
  9. <property>
  10. <name>yarn.nodemanager.aux-services</name>
  11. <value>mapreduce_shuffle</value>
  12. </property>
  13. <!--容器可能会覆盖的环境变量,而不是使用NodeManager的默认值-->
  14. <property>
  15. <name>yarn.nodemanager.env-whitelist</name>
  16. <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ</value>
  17. </property>
  18. <!--关闭内存检测,在虚拟机环境中不做配置会报错-->
  19. <property>
  20. <name>yarn.nodemanager.vmem-check-enabled</name>
  21. <value>false</value>
  22. </property>
  23. </configuration>

3.2.6 配置workers(目录:/root/hadoop-3.2.3/etc/hadoop/workers)

  1. master
  2. s1
  3. s2

说明:

master是主节点名称,s1和s2是从节点名称。

3.3 设置ssh免密码登录(3台虚拟机都执行)

3.3.1 检测是否已安装ssh 

  1. [root@127 hadoop]# rpm -qa | grep ssh
  2. openssh-server-7.4p1-22.el7_9.x86_64
  3. openssh-clients-7.4p1-22.el7_9.x86_64
  4. libssh2-1.8.0-4.el7.x86_64
  5. openssh-7.4p1-22.el7_9.x86_64
  6. [root@127 hadoop]#

3.3.2 配置三台服务器的hosts文件

都修改成:

  1. 192.168.xxx.xxx master
  2. 192.168.xxx.xxx1 s1
  3. 192.168.xxx.xxx2 s2

3.3.3 生成免密登录

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub s1
ssh-copy-id -i ~/.ssh/id_rsa.pub s2

3.3.4 测试免密登录

ssh s1

ssh s2

ssh master

3.4 开启hadoop

3.4 克隆hadoop,从主节点到从节点

scp -r hadoop-3.2.3 root@s1:/root

scp -r hadoop-3.2.3 root@s2:/root

3.5 将从节点的/etc/hosts文件配置java 和 hadoop环境变量

说明:和主节点hosts文件一致。(记得source生效)

3.6 启动hadoop

3.6.1 格式化namenode

hdfs namenode -format

3.6.2 启动hadoop :start-all.sh

3.6.3 jps

1. master进程如下:

  1. [root@localhost ~]# jps
  2. 3346 ResourceManager
  3. 2743 NameNode
  4. 3096 SecondaryNameNode
  5. 2875 DataNode
  6. 4156 Jps
  7. 3469 NodeManager

2. 查看namenode UI界面

浏览器输入: master:9870

说明:

如果打不开master:9870

1. 检查C:\Windows\System32\drivers\etc\hosts文件是否配置了域名,不然电脑不识别master

2. 检查服务器是否关闭了防火墙

        1检查Linux机器的防火墙状态,命令如下

        systemctl status firewalld.service
        如果防火墙没有关闭,依次执行下面命令关闭防火墙

        2.关闭防火墙:systemctl stop firewalld.service 
        3.设置为开机关闭防火墙

        systemctl disable firewalld.service

备注:有问题及时指正,持续修改中。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号