Hadoop从零开始教程第一篇(在linux上安装hadoop集群centos7+hadopp3.2)

本文详细介绍Hadoop3.2的分布式计算平台特性,包括核心组件HDFS、YARN、MapReduce,以及在Linux环境下搭建Hadoop集群的步骤,涵盖虚拟机克隆、网络配置、防火墙设置、JDK安装、Hadoop安装与配置、环境变量设置、格式化、免密登录、启动验证等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hadoop简介

Hadoop是Apache旗下的一套开源分布式计算平台。
应用范围:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理。
核心组件:

  • HDFS(分布式文件系统)高容错性、高伸缩性等允许用户将Hadoop部署在低廉的硬件上
  • YARN(运算资源调度系统)
  • MAPREDUCE(分布式运算编程框架)允许用户在不了解分布式系统细节情况下开发并行应用程序。

准备Linux环境

虚拟机克隆

  • 1、虚拟机克隆

Vmware左侧选中要克隆的机器,这里对原有的BigData01机器进行克隆,虚拟机菜单中,选中管理菜单下的克隆命令。
选择“创建完整克隆”,虚拟机名称为BigData02,选择虚拟机文件保存路径,进行克隆。
再次克隆一个名为BigData03的虚拟机。
修改配

  • 2、网络配置
    主要固定IP和固定IP与host的关系
    界面配置:
    1)、进入界面settings
    在这里插入图片描述
    2)、选择network
    在这里插入图片描述
    3)、设置IPV4为手动配置,并配置IP、子网掩码、默认网关
    默认网关与你要连接的电脑或者虚拟机的默认网关保持一致
    在这里插入图片描述
    命令配置
    配置文件/etc/sysconfig/network-scripts/ifcfg-ens33中的IP和默认网关,设置bootproto为none表示为手动配置。
    在这里插入图片描述
    修改主机名
    hostnamectl set-hostname xxxx(你要的主机名字)
    修改hosts文件,将名字和IP建立联系

  • 3、配置Hostname

BigData01配置hostname为 bigdata01.com
BigData02配置hostname为 bigdata02.com

  • 4、配置主机名和IP的映射关系

输入命令“vi /etc/hosts”后,在配置文件中加入
BigData01、BigData02、BigData03三台机器hosts都配置为:
[hadoop@bigdata-senior01 hadoop-2.5.0]$ sudo vim /etc/hosts
192.168.100.10 bigdata01.com
192.168.100.12 bigdata02.com

虚拟机用户切换和文件拷贝

  • 创建用户名
    a、创建用户 useradd hadoop
    b、修改密码 passwd hadoop
    在这里插入图片描述
  • 用户名切换
    格式为:su username。
    普通用户的su命令不加username时,就相当于切换到root用户,反之亦然。
    在这里插入图片描述
    PS:当由root切换到普通用户时,不需要输入密码。
  • 文件移动

scp +文件+ 对方虚拟机host + 对方虚拟机路径

scp /etc/sudoers aubin.com: /etc/

在这里插入图片描述
PS:只有root账号才有移动的权限,可以通过修改etc下sudoers内容增加移动权限
通过:vi /etc/sudoers 进行修改,添加其他账号的权限。通过:wq!进行强制更新。
在这里插入图片描述

防火墙

centos7防火墙

Centos7不在使用iptables 而是使用了firewalld
查看防火墙状态: systemctl status firewalld.service
在这里插入图片描述
绿的running表示防火墙开启

执行关闭命令: systemctl stop firewalld.service

再次执行查看防火墙命令:systemctl status firewalld.service
如下图所示表示防火墙已经关闭
在这里插入图片描述

执行开机禁用防火墙自启命令 : systemctl disable firewalld.service

关于防火墙的其他命令:

启动:systemctl start firewalld.service

防火墙随系统开启启动 : systemctl enable firewalld.service

PS:如果查看防火墙状态出现Failed to get properties: Access denied报错,运行以下语句即可:

systemctl daemon-reexec

centos7安装iptables

原因:在centos7中执行service iptables start 报如下错误
在这里插入图片描述

执行如下命令

systemctl stop firewalld
systemctl mask firewalld

安装iptables-service

yum install iptables-services

设置开机启动

systemctl enable iptables
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables

保存设置

service iptables save

centos6以及之前版本

#查看防火墙状态 : service iptables status
#关闭防火墙: service iptables stop
#查看防火墙开机启动状态: chkconfig iptables --list
#关闭防火墙开机启动: chkconfig iptables off

centos7下安装JDK

tar zvxf jdk-8u201-linux-x64.tar
  • 配置环境变量
    1、打开文件配置文件
vi  /etc/profile

2、补充配置信息

export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export PATH=.:$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3、保存配置

source  /etc/profile
  • 验证是否成功
    java -version进行验证。红色为正确情况,蓝色部分为docker安装java自带jdk(存在一定问题)
    在这里插入图片描述

Hadoop安装(Hadoop3.2)

自动安装:https://www.cloudera.com/
软件下载路径官网:https://hadoop.apache.org/releases.html
下载安装文件:hadoop-3.2.0.tar
下载源码:hadoop-3.2.0-src.tar。可以通过编译源码和生产安装包。
本文使用安装文件进行安装。

  • 1、 新建文件夹apps存放hudoop安装文件
    在这里插入图片描述
  • 2、将hudoop解压到文件夹中在这里插入图片描述
  • 3、文件说明,在apps下有一个叫hadopp-3.2.0的文件夹
    在这里插入图片描述
    其中:
    bin:自己的操作命令;
    sbin:系统命令
    etc:备注文件
    include:C语言本地库头文件
    lib:本地库
    share:架包,包括所有文档文件夹(doc)和架包文件夹(hadoop)
    share的hadoop下包括很多架包,各个架包中的lib文件夹中包括各个架包的依赖,结果如下图
    在这里插入图片描述
  • 4、配置文件,路径 etc/hadoop
    官网配置连接:
    http://hadoop.apache.org/common/docs/current/core-default.html
    http://hadoop.apache.org/common/docs/current/hdfs-default.html
    http://hadoop.apache.org/common/docs/current/mapred-default.htm
    配置hadoop-env.sh文件
    在这里插入图片描述
    获取JAVA_HOME注意大小写,将hadoop-env.sh中的JAVA_HOME路径改为此绝对路径。原因:hadoop是通过SSH远程到一台机器上进行启动,而原配置为一个变量,当SSH启动后,在这个子进程中就无此变量,所有就不生效了。
    在这里插入图片描述
    在这里插入图片描述
    配置core-site.xml文件
    公共参数配置:添加如下内容
    在这里插入图片描述
    说明:
    fs.defaultFS:指定hadoop的文件系统使用hdfs,并指定nameload和端口。
    hadoop.tmp.dir:指定每个集群运行的进程的工作目录。

配置hdfs-site.xml文件
可以不进行配置,一般默认有。也可配置如下信息:
在这里插入图片描述
说明:
dfs.replication:配置HDFS副本的数量,即上次一份文件备份几次,默认为3。
dfs.secondary.http.address:指定启动第二服务的地址,配置本地IP
配置mapred-site.xml文件
指定mapreduce运行的平台,此处为yarn。默认为local,local能运行但是在本地运行,无法在集群中运行。
在这里插入图片描述
配置yarn-site.xml文件
配置yarn平台信息
在这里插入图片描述
说明:
yarn.resourcemanager.hostname:配置yarn平台中的老大,老大进行配置。
yarn.nodemanager.aux-services:平台运行需要一个默认服务

  • 5、分发到集群的其他机器上
    注意:集群中其他机器的HOST,并且输入密码
    在这里插入图片描述
    如果用户名不同使用以下的当时进行补全
    在这里插入图片描述

  • 6、将hadoop添加到环境变量
    运行vim /etc/proflie命令,根据hadoop安装目录不同进行修改
    在这里插入图片描述
    运行下:source /etc/profile

  • 7、格式化
    运行hadoop namenode -format进行格式化,提前如下即表示完成,在此文件夹中记录信息。
    在这里插入图片描述

  • 8、免密登录
    需要先设置SSH免密登录才能运行hadoop
    cd ~/.shh到指定目录
    运行ssh-keygen -t rsa (四个回车)
    执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
    在这里插入图片描述
    将公钥拷贝到要免密登陆的目标机器上
    ssh-copy-id bigdata02.com
    在这里插入图片描述
    通过 SSH hadoop01 进行验证;exit退出;如下登录成功
    在这里插入图片描述

  • 9、启动hadoop
    先启动HDFS
    sbin/start-dfs.sh
    再启动YARN
    sbin/start-yarn.sh

  • 10、验证hadoop
    验证是否启动成功
    使用jps命令验证
    在这里插入图片描述
    http://192.168.0.104:9870(HDFS管理界面)Hadoop3.2中namenode的默认端口配置发生变化:从50070改为9870
    http://192.168.0.104:8088 (MR管理界面)
    其他集群的机器中显示
    在这里插入图片描述

其他注意点(坑)

Q:为什么hadoop没有slaves配置文件?

A:hadoop3.0以后slaves更名为workers

Q:新增一台机器

A:因为hadoop其实是通过进程进行启动的,所有新建一台机器,配置core-site.xml 的HDFS的NameNode命令即可,然后在新机器上运行 hadoop-daemon.sh start datanode即可,会添加到集群中。但是重启不会自动添加,如果要自动添加在etc中的workers中添加新加机器的计算机名即可。

	<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://weekend-1206-01:9000</value>
	</property>

Q:datanode的目录不同或者配置多个路径?

A:hdfs-site.xml中配置

<property>
   <name>dfs.datanode.data.dir</name>
   <value>/home/hadoop/data,/home/hadoop/data2</value>
</property>

Q:权限问题

A:切记启动hadoop集群的时候,如果使用了root账号。关机后,再使用hadoop账号会出现无法启动的情况,因为写的权限变为了root后,hadoop无法再对文件进行读写导致识别。

Q:域名解析问题

A:虚拟机新建完成,配置完成IP,但是无法上网,ping www.baidu.com无成功,但是对ping百度对应的IP(115.239.211.112)是可以的。确定问题是对域名解析出现了问题,发现DNS对应的文件没有配置 vim /etc/resolv.conf,修改为下图本地的DNS即可
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值