Hadoop集群搭建

Hadoop集群搭建

说明:本文使用三台虚拟机来搭建hadoop集群。虚拟机系统版本为centos 7,hadoop版本为2.7.2。文中主要介绍虚拟机的安装、虚拟机的网络配置以及hadoop集群的搭建。

1 虚拟机安装

新建虚拟机hadoop101
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述建议修改虚拟机名称和存放位置。关于处理器和内存根据自己电脑配置修改。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
放入centos 7的iso文件
在这里插入图片描述
配置虚拟机的网络
打开本机电脑的网络设置(右键属性)
在这里插入图片描述在这里插入图片描述打开虚拟机网络设置
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
开始安装系统
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择自动分区即可

在这里插入图片描述
设置root用户的密码,不需要创建其他用户

在这里插入图片描述安装完成后点击重启,使用root用户和密码即可登录系统,一台虚拟机安装完毕。

从已安装的虚拟机中克隆另外两台虚拟机
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
创建链接克隆和完整克隆都可以,本文为了节省空间创建链接克隆(被克隆的虚拟机不能删除,否则克隆体会失效)。
在这里插入图片描述
修改名称和位置,不能与上一个虚拟机冲突
在这里插入图片描述以上述方式克隆出一台hadoop103

分别修改三台机器的主机名、配置静态IP以及关闭防火墙
关闭防火墙

systemctl disable firewalld.service  //永久关闭防火墙
firewall-cmd --state  //重启查看防火墙状态

设置静态IP

1.编辑网卡配置文件指令:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
2.进入文件后修改以下内容并保存:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.101//网卡的IP地址
GATEWAY=192.168.1.2//要与VMnet8中设置一致
DNS1=114.114.114.114
DNS2=8.8.8.8
3.重启服务
service network restart

修改主机名

修改主机名:hostnamectl set-hostname 名字
查看主机名:hostname

三台机器的配置如下
虚拟机1主机名:hadoop101,IP:192.168.1.101
虚拟机2主机名:hadoop102,IP:192.168.1.102
虚拟机3主机名:hadoop103,IP:192.168.1.103

分别将三台机器的IP配置到本机

指令:vi /etc/hosts
在文件中输入:
192.168.1.101 hadoop101
192.168.1.102 hadoop102
192.168.1.103 hadoop103
安装hadoop
准备工作

在每台机器中创建 /opt/software 和 /opt/module 两个文件目录,第一个文件夹用来存放各类压缩包,第二个文件夹用来安装各类组件

安装Java

hadoop依赖于Java,我们首先在每一台机器中安装Java并配置环境

1.将Java安装包拷贝到目标文件夹/opt/software
2.tar -zxvf 压缩包 -C 目标文件夹  //解压文件
3.配置Java环境变量
	1)命令:vi /etc/profile
	2)在profile文件末尾添加:
		#JAVA_HOME
		export JAVA_HOME=Java解压路径
		export PATH=$PATH:$JAVA_HOME/bin
	3)重新加载profile文件命令:source /etc/profile
安装hadoop集群

集群规划

hadoop101hadoop102hadoop103
NameNodeResourceManagerSecondaryNameNode
DataNodeDataNodeDataNode
NodeManagerNodeManagerNodeManager
Jobhistory

将hadoop压缩包解压至/opt/module文件夹下

配置core-site.xml文件(/opt/module/hadoop-2.7.2/etc/hadoop)

<!-- 指定HDFS中NameNode的地址 -->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://hadoop101:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

配置hdfs-site.xml文件(/opt/module/hadoop-2.7.2/etc/hadoop)

<!-- 指定HDFS副本的数量 -->
<property>
	<name>dfs.replication</name>
	<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>hadoop103:50090</value>
</property>

配置yarn-site.xml文件(/opt/module/hadoop-2.7.2/etc/hadoop)

<!-- Reducer获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop102</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>

配置mapred-site.ml文件(/opt/module/hadoop-2.7.2/etc/hadoop)

<!-- 指定MR运行在Yarn上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop101:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop101:19888</value>
</property>
<!--第三方框架使用yarn计算的日志聚集功能-->
<property>
    <name>yarn.log.server.url</name>
    <value>http://hadoop101:19888/jobhistory/logs</value>
</property>

配置hadoop-env.sh文件(/opt/module/hadoop-2.7.2/etc/hadoop)

export JAVA_HOME=/opt/module/jdk1.8.0_144

编写slaves文件(/opt/module/hadoop-2.7.2/etc/hadoop)

hadoop101
hadoop102
hadoop103

配置环境变量

1)命令:sudo vi /etc/profile
2)在profile文件末尾添加:
    #HADOOP_HOME
    export HADOOP_HOME=Hadoop解压路径
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
3)重新加载profile文件命令:source /etc/profile

按照上述步骤配置另外两台机器,也可以使用以下命令将hadoop直接发送到另外两台机器。

scp -r hadoop101:/opt/module/hadoop-2.7.2 hadoop102:/opt/module

分别给三台机器配置ssh免密登录(群起hadoop集群需要此配置)

1.生成公钥和私钥(生成一次就可以)(/root/.ssh/id_rsa密钥路径)
	命令:ssh-keygen -t rsa  //一路回车键
2.将公钥拷贝到需要免密登录的目标机器上(包括本机)
	命令:ssh-copy-id hadoop101(目标机器)
3.修改.bashrc文件(/root)
	在文件最后面添加source /etc/profile

启动hadoop集群

1)第一次启动需要格式化NameNode(后续启动不要格式化,否则之前数据找不到)
 		命令:[root@hadoop101 hadoop-2.7.2]# bin/hdfs namenode -format
2)启动HDFS
 		命令:[root@hadoop101 hadoop-2.7.2]# sbin/start-dfs.sh
3)启动yarn(需要在ReourceManager机器上启动hadoop102)
 		命令:[root@hadoop101 hadoop-2.7.2]# sbin/start-yarn.sh
4)启动历史服务器
		//需要在配置文件中所指定的服务器启动
		命令:[root@hadoop101 hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh start/stop historyserver

登录网站hadoop101:50070可以看到hadoop集群的情况

<think>好的,用户想了解如何搭建Hadoop集群的详细步骤和配置。首先,我需要回忆之前学过的Hadoop集群搭建知识,确保步骤正确。记得Hadoop集群通常分为完全分布式模式,需要多台机器,比如hadoop102、hadoop103、hadoop104这样的命名。用户提供的引用里提到了设置这些节点,并测试SSH连接,还有上传安装包。可能这些是关键的步骤。 接下来,我应该按照逻辑分步骤讲解。首先准备环境,包括服务器、Java安装、主机名和hosts文件的配置,以及SSH免密登录的设置。这些都是搭建集群的基础。然后,安装Hadoop,解压安装包,配置环境变量。接下来是核心的配置文件修改,比如hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml以及workers文件。每个配置文件的作用需要简要说明,比如core-site.xml设置NameNode地址,hdfs-site.xml配置副本数等。 配置完成后,需要同步到其他节点,这里可以用scp命令或者rsync。然后初始化HDFS,启动集群,最后验证是否成功,比如jps查看进程,或者访问Web界面。可能用户在实际操作中会遇到问题,比如SSH连接失败,端口占用,或者配置文件错误,这些常见问题应该提及解决方案。 另外,用户的问题可能涉及到具体的配置参数,比如副本数设置成多少合适,或者资源管理器的配置,这些需要根据集群规模给出建议。比如小型集群副本数可以设为2,但生产环境通常3。还有安全模式的问题,可能需要关闭防火墙或者配置SELinux。 需要确保所有的命令和路径都是正确的,比如JAVA_HOME的路径是否正确,Hadoop的安装目录是否一致。同时,用户可能需要知道如何验证集群是否正常工作,比如运行一个测试的MapReduce作业,或者检查日志文件。 最后,生成相关问题的时候,应该围绕用户可能进一步关心的问题,比如配置参数优化、添加节点、安全配置、性能调优等。这些能帮助用户更深入理解集群管理和维护。</think>### Hadoop集群搭建步骤详解 #### 一、环境准备(3节点示例) 1. **服务器规划** - hadoop102(NameNode + DataNode) - hadoop103(ResourceManager + DataNode) - hadoop104(SecondaryNameNode + DataNode) 2. **基础配置** - 所有节点安装JDK 8+并配置环境变量: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` - 配置主机名和/etc/hosts文件: ```bash 192.168.1.102 hadoop102 192.168.1.103 hadoop103 192.168.1.104 hadoop104 ``` - 配置SSH免密登录: ```bash ssh-keygen -t rsa ssh-copy-id hadoop102 ssh-copy-id hadoop103 ssh-copy-id hadoop104 ``` #### 二、Hadoop安装与配置 1. **解压安装包** ```bash tar -zxvf hadoop-3.3.6.tar.gz -C /opt/module/ ``` 2. **配置环境变量** ```bash export HADOOP_HOME=/opt/module/hadoop-3.3.6 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 3. **修改核心配置文件** - `etc/hadoop/hadoop-env.sh`: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` - `etc/hadoop/core-site.xml`: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop102:8020</value> </property> </configuration> ``` - `etc/hadoop/hdfs-site.xml`: ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> ``` #### 三、集群同步与启动 1. **分发配置到所有节点** ```bash scp -r /opt/module/hadoop-3.3.6 hadoop103:/opt/module/ scp -r /opt/module/hadoop-3.3.6 hadoop104:/opt/module/ ``` 2. **初始化HDFS** ```bash hdfs namenode -format ``` 3. **启动集群** ```bash start-dfs.sh # 启动HDFS start-yarn.sh # 启动YARN ``` #### 四、验证集群状态 1. **进程验证** ```bash jps # hadoop102应显示NameNode/DataNode # hadoop103应显示ResourceManager/NodeManager ``` 2. **Web界面验证** - HDFS状态:`http://hadoop102:9870` - YARN状态:`http://hadoop103:8088` #### 五、常见问题解决 1. **SSH连接失败** - 检查防火墙状态:`systemctl stop firewalld` - 验证公钥是否完整复制到`~/.ssh/authorized_keys` 2. **端口冲突** - 使用`netstat -tunlp | grep 8020`检查默认端口占用情况 3. **HDFS无法格式化** - 删除所有节点的`/tmp/hadoop-*`目录后重试[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值