hadoop集群环境配置

目录

VMware虚拟机安装

Xshell安装

网络问题

centos7下载

---------参考以下视频步骤进行生态搭建----------

搭建好hadoop01

克隆出hadoop02、hadoop03

启动三台虚拟机

打开终端 输入

 记录下各个ip

 打开Xshell,新建会话

修改主机名

配置静态IP

 主机名称,主机映射

重启

 网络连通测试

配置免密登录

生成密钥

创建目录

 拷贝公钥到同一台虚拟机

1

3

下载rz插件

 卸载与安装jdk

配置jdk环境变量 

将jdk配置文件分发给其他两台虚拟机

hadoop安装

修改配置文件

分发 

01上进行节点格式化 

防火墙(三台)

 一键脚本启动

三台执行jps

检测


VMware虚拟机安装

看我的资源

Xshell安装

官网:

家庭/学校免费 - NetSarang Website

下载:https://cdn.netsarang.net/274efd03/Xshell-8.0.0067p.exe

一直点下一步安装即可

网络问题

检测VMware 左上角 编辑-虚拟网络编辑器

centos7下载

https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

---------参考以下视频步骤进行生态搭建----------

可以跟着这个视频走,以下只列出主要步骤,以及视频中没有说到的问题

Hadoop集群搭建完整版(奶妈保姆级别教程,超级详细),一个半小时即可完成_哔哩哔哩_bilibili

搭建好hadoop01

(设定密码要大小写和符号)

账号、密码

克隆出hadoop02、hadoop03

启动三台虚拟机

打开终端 输入

ip addr

然后我们需要看ens33 ip地址,我这边没有显示

采取以下方法解决:

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

 进入 vim 编辑器后,按 i 键进入插入模式即可编辑文件内容;检查以下几个

TYPE=Ethernet
BOOTPROTO=dhcp
ONBOOT=yes

我的问题出在ONBOOT=no

查看完成后,按 Esc 键退出插入模式,输入 :wq 保存并退出。

在修改完文件内容后,可以重启网络服务使配置生效

sudo systemctl restart network

 记录下各个ip

192.168.230.140 hadoop01

192.168.230.139 hadoop02

192.168.230.137 hadoop03

 打开Xshell,新建会话

输入名称,主机号(ip)

同样

新建hadoop02、hadoop03

一般使用root,注意密码,不要输入成admin的

修改主机名

hostnamectl set-hostname hadoop01

 后续会变

配置静态IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33

 

static

IPADDR=192.168.230.139

NETMASK=255.255.255.0

GATEWAY=192.168.230.2

DNS1=8.8.8.8 

这个230需要根据你的具体的进行修改 

 主机名称,主机映射

vi /etc/hosts

 粘贴进去(需根据实际ip修改)

192.168.230.136 hadoop01 192.168.230.139 hadoop02 192.168.230.137 hadoop03

重启

reboot

关闭对话框

虚拟机已经在重启了

 网络连通测试

ping

我按照上述进行配置后,会出现以下问题

下面进行检查

 检查本身网络是否有问题

ping 192.168.230.1 

检查DNS

cat /etc/resolv.conf

我查过了,我这部分没问题,似乎是防火墙问题

sudo systemctl stop firewalld 

运行之后,可以ping了

网络联通,说明网卡配置有效

配置免密登录

安装ssh服务

yum install openssh-server

出错了,有问题

 ceteros下载有问题,换成阿里的镜像源即可

以下是解决步骤

# 备份原有repo文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 下载阿里云镜像源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

验证文件格式,一般没问题 

cat /etc/yum.repos.d/CentOS-Base.repo 

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
... 

清理缓存并重建

yum clean all
yum makecache 

重新执行命令

 yum install openssh-server

ok

生成密钥

ssh-keygen -t rsa

输入命令,连按三下回车键

创建目录

mkdir -p /export/data

mkdir -p /export/servers 

mkdir -p /export/software 

 拷贝公钥到同一台虚拟机

hadoop01

1

ssh-copy-id hadoop01

scp /root/.ssh/authorized_keys hadoop02:/root/.ssh 

出问题了 

 而且很奇怪,我ping百度又不行

我尝试了一些方法,最终发现可能是DNS问题

vi /etc/resolv.conf 

在文件里面加上

nameserver 8.8.4.4

保存然后运行 

sudo systemctl restart NetworkManager 

然后再ping百度就可以了 

然后再运行上面的scp命令就可以了

3

scp /root/.ssh/authorized_keys hadoop03:/root/.ssh  

然后我scphadoop03后又出问题

然后我尝试直接通过 IP 连接 hadoop03 发现成功了

说明问题出在 主机名解析

大家可以使用ip addr查一下hadoop01的ip,看看是不是会出现那种主次ip的情况(即ens33会出现两个ip),可以删除次的,再重新连接

sudo ip route add default via 192.168.230.xxx dev ens33

然后大多数时候有可能是防火墙的问题,以下命令可以关闭

sudo systemctl stop firewalld 

下载rz插件

三个都运行

yum install lrzszcd -y

 

 卸载与安装jdk

java -version

rpm -qa | grep jdk

输出

[root@hadoop01 ~]# rpm -qa | grep jdk
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
copy-jdk-configs-3.3-10.el7_5.noarch
java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64

rpm -e --nodeps xxx  

要卸载带open的

[root@hadoop01 ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
[root@hadoop01 ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
[root@hadoop01 ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
[root@hadoop01 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64 

 cd /export/software

rz 

官网下载:Java Downloads | Oracle 

官网下载要先登录

然后传上去

解压安装 

tar -zxvf jdk-8u441-linux-x64.tar.gz -C /export/servers/

配置jdk环境变量 

切换路径、命名 

cd /export/servers/

mv jdk1.8.0_441 jdk 

 配置环境变量

vi /etc/profile

到最下面 copy进去 

export JAVA_HOME=/export/servers/jdk

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

重新加载环境变量 

source /etc/profile

好了,有报错

我采取以下方法解决

# 进入软件包目录
cd /export/software

# 删除空的 jdk 目录
rm -rf /export/servers/jdk

# 重新解压到目标路径(确保使用正确的压缩包名称)
tar -zxvf jdk-8u441-linux-x64.tar.gz -C /export/servers/

# 重命名解压后的目录为 jdk(假设解压后目录是 jdk1.8.0_441)
mv /export/servers/jdk1.8.0_441 /export/servers/jdk

ls -l /export/servers/jdk/bin/java 

进入 

vi /etc/profile 

代替原本的

export JAVA_HOME=/export/servers/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

source /etc/profile
java -version 

成功

将jdk配置文件分发给其他两台虚拟机

cd /export/servers

ll

然后你会发现又两个jdk,这是因为前面的操作不当,我们先检查

# 检查第一个 jdk 目录
ls -l /export/servers/jdk/bin/java

# 检查第二个 jdk 目录(可能实际名为 jdk1.8.0_441)
ls -l /export/servers/jdk1.8.0_441/bin/java

删 

sudo rm -rf /export/servers/jdk1.8.0_441 

ls -l /export/servers/jdk/bin/java   # 应显示 java 可执行文件
ls -l /export/servers/jdk/lib       # 应包含 tools.jar、dt.jar 等 

如果还是存在两个jdk,可以使用incode码删除

ls -li 

# 通过 find 命令按 Inode 删除(替换 7654321 为实际 Inode 号)

sudo find . -inum 7654321 -exec rm -rf {} \; 

然后继续 

cd jdk

# 显示当前路径

pwd

cd /export/servers 

scp -r /export/servers/jdk hadoop02:$PWD 

scp -r /export/servers/jdk hadoop03:$PWD

分发后两台虚拟机重新执行

source /etc/profile 

java -version 

终于~~,我们要开始hadoop的安装与配置了

hadoop安装

当然要先下载hadoop

hadoop的官网下载和各版本下载方法_hadoop镜像下载地址-CSDN博客

cd /export/software

rz

 上传

 遇到这种乱码的上传完毕需要重新上传

解压安装

tar -zxvf hadoop-3.2.4.tar.gz -C /export/servers/

然后有时候明明ls查得到文件,但是出来的结果确实没办法open,那很有可能是代码输入或者敲错了

cd /export/servers/

mv hadoop-3.2.4 hadoop

配置环境变量

vi /etc/profile 

export HADOOP_HOME=/export/servers/hadoop

export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

source /etc/profile 

hadoop version

修改配置文件

cd /export/servers/hadoop/etc/hadoop/

打开文件 

vi hadoop-env.sh  

export JAVA_HOME=/export/servers/jdk 

ok,next

vi core-site.xml 

        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoop01:9000</value>

                # 固定主机名
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/export/servers/hadoop/tmp</value>
        </property> 

ok,next

vi hdfs-site.xml

        <property>
                <name>dfs.replication</name>
                <value>3</value>

                # 虚拟机台数
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop02:50090</value>

                # 这里是第二台虚拟机名字
        </property>  

:wq

ok,next

cp mapred-site.xml mapred-site.xml.template

vi mapred-site.xml 

<!--指定mapreduce运行时的框架,这里指定再Yarn上,默认时local-->

        <property>
                <name>mapreduce.framework</name>
                <value>yarn</value>
        </property>

ok,next 

vi yarn-site.xml 

<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop01</value>

#这里写主机名,其他内容不变

</property>
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value >mapreduce_shuffle </value>

</property> 

ok,next

vi slaves (如果没有slaves,就是workers)

 删除再写入

 

分发 

 scp /etc/profile hadoop02:/etc/profile

scp -r /export/ hadoop02:/ 

改成03继续分发

然后重新加载环境配置变量,01\02\03都需要

source /etc/profile 

01上进行节点格式化 

hdfs namenode -format

注意:格式化文件系统这个操作只能在第一次启动hdfs集群操作,后面不能进行格式化

防火墙(三台)

systemctl stop firewalld

systemctl disable firewalld

 一键脚本启动

start-dfs.sh

start-yarn.sh 

start-all.sh 

三台执行jps

检测

到这里就算是配置完成了

hadoop01:50070

 如果失败,则访问

hadoop01:9870

因为

Hadoop 3.x 端口变更

  • Hadoop 2.x 中,NameNode 的默认 Web UI 端口是 50070
  • Hadoop 3.x 中,该端口变更为 9870

 

hadoop01:8088

成功,完结散花!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/984045.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【GPU】什么是NCCL和Simple, LL, LL128通信协议

​​​​​​​什么是NCCL 简介 NCCL 的原理 机器内通信&#xff1a; 机器间通信&#xff1a; NCCL通信协议 简介 NCCL通信选择协议规则 ​​​​​​​1 自动选择 ​​​​​​​2 强制选择 Simple协议 1 介绍 2 Simple 协议的基本格式 2 Simple 协议的示例 Sim…

aws(学习笔记第三十一课) aws cdk深入学习(batch-arm64-instance-type)

aws(学习笔记第三十一课) aws cdk深入学习 学习内容&#xff1a; 深入练习aws cdk下部署batch-arm64-instance-type 1. 深入练习aws cdk下部署batch-arm64-instance-type 代码链接 代码链接 代码链接 -> batch-arm64-instance-type之前代码学习 之前学习代码链接 -> aw…

单细胞多数据集整合和去除批次效应教程,代做各领域生信分析

单细胞多数据集整合和去除批次效应教程 每个数据集的数据分别单独进行读取单细胞数据构建Seurat分析对象 读取各种来源的单细胞数据构建Seurat分析对象的教程 做这一步的时候可以查看我这篇写的非常详细的教程文章&#xff1a; 【腾讯文档】单细胞分析步骤1读取各种来源格式…

什么是OFD文件?2025年我推荐新版OFD阅读器和PDF阅读器,双合一

说起文档格式&#xff0c;大家第一反应肯定是PDF&#xff0c;但你知道吗&#xff1f;现在OFD也越来越常见了&#xff0c;特别是在一些正式文件上。刚开始我也是一脸懵&#xff0c;心想这OFD文件咋看啊&#xff1f;网上一搜&#xff0c;发现原来有专门对付它的阅读器&#xff0c…

计算机网络----主要内容简介

这里写目录标题 章节概览每章的大体结构结构功能与服务的关系 一些概念概念一概念二传统的网络层的工作方式&#xff08;路由IP&#xff09;现代的网络层的工作方式&#xff08;SDN&#xff09; 二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二…

每日一练之合并两个有序链表

题目描述&#xff1a; 方法&#xff1a;双指针 代码实例&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> struct ListNode {int val;struct ListNode* next; }; typedef struct ListNode ListNode; struct ListNode* merg…

基于Spring3的抽奖系统

注&#xff1a;项目git仓库地址&#xff1a;demo.lottery 小五Z/Spring items - 码云 - 开源中国 目录 注&#xff1a;项目git仓库地址&#xff1a;demo.lottery 小五Z/Spring items - 码云 - 开源中国 项目具体代码可参考仓库源码&#xff0c;本文只讲解重点代码逻辑 一…

Vue使用jsts,将wkt转为geojson

jsts库相关官方资料&#xff1a; JSTS是一个ECMAScript空间谓词和函数库&#xff0c;用于处理符合开放地理空间联盟发布的SQL简单特征规范的几何图形。JSTS也是成熟的Java库JTS的移植。 npm库的地址&#xff1a;https://www.npmjs.com/package/jsts Github开源项目地址&…

【移动WEB开发】rem适配布局

目录 1. rem基础 2.媒体查询 2.1 语法规范 2.2 媒体查询rem 2.3 引入资源&#xff08;理解&#xff09; 3. less基础 3.1 维护css的弊端 3.2 less介绍 3.3 less变量 3.4 less编译 3.5 less嵌套 3.6 less运算 4. rem适配方案 4.1 rem实际开发 4.2 技术使用 4.3 …

数字电子技术基础(二十六)——TTL门电路的输入特性和扇出系数

1 TTL门电路的输入特性 如下图所示为输入端伏安特性曲线的测试电路&#xff1a; 图1 输入端伏安特性曲线测试电路 以流入输入端的方向作为输入电流的参考方向&#xff0c;调节测试电路当中&#xff0c;电位器滑动端的位置&#xff0c;可以为这个与非门的B输入端提供一个可调的…

DeepSeek-R1本地化部署(Mac)

一、下载 Ollama 本地化部署需要用到 Ollama&#xff0c;它能支持很多大模型。官方网站&#xff1a;https://ollama.com/ 点击 Download 即可&#xff0c;支持macOS,Linux 和 Windows&#xff1b;我下载的是 mac 版本&#xff0c;要求macOS 11 Big Sur or later&#xff0c;Ol…

tp8 + easywechat6.17 token 验证失败

按照文档死活不行&#xff1a; 调整为以下就成功了&#xff08;return也是失败&#xff09;&#xff1a;

C++:入门详解(关于C与C++基本差别)

目录 一.C的第一个程序 二.命名空间&#xff08;namespace&#xff09; 1.命名空间的定义与使用&#xff1a; &#xff08;1&#xff09;命名空间里可以定义变量&#xff0c;函数&#xff0c;结构体等多种类型 &#xff08;2&#xff09;命名空间调用&#xff08;&#xf…

Redis 数据持久化之AOF

AOF&#xff08;Append Only File&#xff09; 以日志的形式来记录每个写操作&#xff0c;将Redis执行过的所有写指令记录下来&#xff08;读操作不记录&#xff09;&#xff0c;只许追加文件但不可以改写文件&#xff0c;redis启动之初会读取该文件重新构建数据&#xff0c;换…

网格图学习(附题单与做题思路)

文章目录 一、DFS 经典题型695. 岛屿的最大面积 二、BFS 经典题型994. 腐烂的橘子**算法选择对照表** 一、DFS 经典题型 岛屿的最大面积 LeetCode 695描述&#xff1a;求网格中最大的陆地连通区域面积解题&#xff1a;DFS 遍历所有相邻陆地&#xff0c;标记已访问关键点&#…

开发者社区测试报告(功能测试+性能测试)

功能测试 测试相关用例 开发者社区功能背景 在当今数字化时代&#xff0c;编程已经成为一项核心技能&#xff0c;越来越多的人开始学习编程&#xff0c;以适应快速变化的科技 环境。基于这一需求&#xff0c;我设计开发了一个类似博客的论坛系统&#xff0c;专注于方便程序员…

pyecharts 中设置 ​Map 图表的宽高

在 pyecharts 中设置 ​Map 图表的宽高&#xff0c;需要通过 InitOpts 初始化参数实现。以下是具体方法&#xff1a; &#x1f3af; 完整代码示例 from pyecharts import options as opts from pyecharts.charts import Map# 创建地图时设置宽高 map_chart (Map(init_optsopt…

FPGA|Verilog-SPI驱动

最近准备蓝桥杯FPGA的竞赛&#xff0c;因为感觉官方出的IIC的驱动代码思路非常好&#xff0c;写的内容非常有逻辑并且规范。也想学习一下SPI的协议&#xff0c;所以准备自己照着写一下。直到我打开他们给出的SPI底层驱动&#xff0c;我整个人傻眼了&#xff0c;我只能说&#x…

python语言总结(持续更新)

本文主要是总结各函数&#xff0c;简单的函数不会给予示例&#xff0c;如果在平日遇到一些新类型将会添加 基础知识 输入与输出 print([要输出的内容])输出函数 input([提示内容]如果输入提示内容会在交互界面显示&#xff0c;用以提示用户)输入函数 注释 # 单行注释符&…

NO.26十六届蓝桥杯备战|字符数组七道练习|islower|isupper|tolower|toupper|strstr(C++)

P5733 【深基6.例1】自动修正 - 洛谷 小写字母 - 32 大写字母 大写字母 32 小写字母 #include <bits/stdc.h> using namespace std;const int N 110; char a[N] { 0 };int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cin >> a;int i 0;while (a…