vmWare虚拟环境centos7安装Hadoop 伪分布式实践
背景:近期在研发大数据中台,需要研究Hadoop hive 的各种特性,需要搭建一个Hadoop的虚拟环境,本来想着使用dock ,但突然发现docker 公共仓库的镜像 被XX 了,无奈重新使用vm 搭建虚拟机。
大概经历了6个小时完成hadoop 3.3.6 环境的搭建,分享步骤给大家,需要搭建好的虚拟机镜像私信联系,提供百度网盘下载链接。(需要请一杯奶茶)。
操作系统版本:centos 7
本次实践实践2024年,未来2年内有效。
目录
- 一、准备工作:
- 1、安装vmware
- 2、centos配置固定IP
- 重启网络服务
- 关闭防火墙
- 修改主机名(永久更改)
- 修改IP映射
- 配置免密登录
- 二、Hadoop3.3.6 伪分布安装步骤
- 1、 安裝JDK
- 下载jdk 到服务器
- 解压安裝jdk
- 配置 java 环境变量/etc/profile
- 2、hadoop 3.3.6 安装
- 修改 hadoop 配置文件
- 配置core-site.xml
- 配置hdfs-site.xml
- 配置hadoop-env.sh
- 启动hadoop
- 格式化 namenode
- 3、启动集群
- 启动 namenode 和 datanode
- 4、 查看服务
- 5、验证文件存储
- 存储文件
- 查看文件
- 6、浏览器查看Hadoop
一、准备工作:
1、安装vmware
vmware 已经免费,个人在官方下载自行安装即可。
2、centos配置固定IP
首先找到/etc/sysconfig/network-scripts/下的ifcfg-ens33配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
把 BOOTPROTO = “dhcp” 改成 BOOTPROTO = “static” 表示静态获取,然后把 UUID 注释掉,把 ONBOOT 改为 yes,表示开机自动静态获取,然后在最后追加比如下面的配置:
IPADDR=192.168.226.129 #自己的ip地址
NETMASK=255.255.255.0
GATEWAY=192.168.226.2
DNS1=8.8.8.8
重启网络服务
centos6的网卡重启方法:service network restart
centos7的网卡重启方法:systemctl restart network
关闭防火墙
查看防火墙状态: systemctl status firewalld.service
执行关闭命令: systemctl stop firewalld.service
执行开机禁用防火墙自启命令 : systemctl disable firewalld.service
修改主机名(永久更改)
方法一:
可以通过命令 hostnamectl set-hostname “主机名” 来永久修改主机名
[root@hadoop ~]# hostnamectl set-hostname hadoop
方法二:
使用 vi 编辑器打开 /etc/ hostname 文件
vi /etc/hostname
删除文件中原有内容,添加主机名:hadoop,保存退出
修改IP映射
使用 vi 编辑器打开 /etc/hosts 文件
vi /etc/hosts
在文件尾部添加内容,格式:IP地址 主机名(中间用空格分隔),保存退出,,例如:
192.168.226.129 hadoop
设置完成后,重启网路服务: systemctl restart network
使用 ping 命令 ping 一下主机名,如果可以ping 通,表示设置成功。
配置免密登录
- 本地机器生成公私钥
- 上传公钥到目标机器
- 测试免密登录
在本地机器用 ssh-keygen 生成一个公私钥对进入. ssh 目录 cd .ssh
发起公钥请求
ssh-keygen -t rsa
在. ssh / 目录下,会新生成两个文件:id_rsa.pub 和 id_rsa
上传公钥到目标机器
ssh-copy-id root@192.168.226.129
测试免密登录
ssh hadoop
二、Hadoop3.3.6 伪分布安装步骤
1、 安裝JDK
centos 本身自帶java ,仅仅是jre需要自己下载jdk 安装包,自己安装替换。
下载jdk 到服务器
推荐使用wget 下载命令,或者你下载到你的电脑,然后通过ftp 工具上传到对应服务器。
推荐使用国内的镜像下载网站,我这里使用了
https://repo.huaweicloud.com/java/jdk/8u192-b12/
自己选择一个版本
解压安裝jdk
tar -zxf jdk-8u212-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_212/ /usr/local/java
配置 java 环境变量/etc/profile
vim /etc/profile
文件末尾添加
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
刷新配置文件
source /etc/profile
校验Java 安装是否成功
java -version
2、hadoop 3.3.6 安装
下载Hadoop 安装包
推荐国内镜像https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/
选择Hadoop 版本,wget下载到服务器
-rw-r--r--. 1 root root 730107476 Jun 25 2023 hadoop-3.3.6.tar.gz
-rw-r--r--. 1 root root 191757099 Oct 8 2018 jdk-8u192-linux-x64.tar.gz
-rw-r--r--. 1 root root 820043264 Jul 6 2022 mysql-8.0.30-el7-x86_64.tar
-rw-r--r--. 1 7161 31415 492490461 Jul 6 2022 mysql-8.0.30-el7-x86_64.tar.gz
-rw-r--r--. 1 7161 31415 22006040 Jul 6 2022 mysql-router-8.0.30-el7-x86_64.tar.gz
-rw-r--r--. 1 7161 31415 305543348 Jul 6 2022 mysql-test-8.0.30-el7-x86_64.tar.gz
解压
sudo tar -zxf hadoop-3.3.6.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.6/ /usr/local/hadoop
3.修改环境变量
sudo gedit /etc/profile
文件末尾添加:
export PATH=$JAVA_HOME/bin:$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbinsource /etc/profile
修改 hadoop 配置文件
配置core-site.xml
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop:9000</value></property><property><name>hadoop.tmp.dir</name><value>/home/huangqifa/data/hadoop/tmp</value></property>
</configuration>
配置hdfs-site.xml
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>/home/huangqifa/data/hadoop/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>/home/huangqifa/data/hadoop/datanode</value></property>
</configuration>
配置hadoop-env.sh
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
#文档末尾添加
export JAVA_HOME=/usr/local/java
启动hadoop
格式化 namenode
hadoop namenode -format
3、启动集群
sh /usr/local/hadoop/sbin/start-all.sh
启动 namenode 和 datanode
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
4、 查看服务
jps
5、验证文件存储
存储文件
[root@hadoop /]# cd data/
[root@hadoop data]# ls
[root@hadoop data]# touch demo.txt
[root@hadoop data]# ls
demo.txt
[root@hadoop data]# vim demo.txt
[root@hadoop data]# ls
demo.txt
[root@hadoop data]# hdfs dfs -put demo.txt /user
[root@hadoop data]# hdfs dfs -ls /
Found 1 items
drwxr-xr-x - root supergroup 0 2024-11-17 03:33 /user
[root@hadoop data]# hdfs dfs -ls /user
Found 1 items
-rw-r--r-- 1 root supergroup 12 2024-11-17 03:33 /user/demo.txt
hdfs dfs -put demo.txt /user
查看文件
hdfs dfs -ls /user
6、浏览器查看Hadoop
http://192.168.226.129:9870/dfshealth.html#tab-datanode
参考资料:https://blog.csdn.net/qq_52584391/article/details/127450206
相关文章:

vmWare虚拟环境centos7安装Hadoop 伪分布式实践
背景:近期在研发大数据中台,需要研究Hadoop hive 的各种特性,需要搭建一个Hadoop的虚拟环境,本来想着使用dock ,但突然发现docker 公共仓库的镜像 被XX 了,无奈重新使用vm 搭建虚拟机。 大概经历了6个小时完…...
【C++入门(一)】半小时入门C++开发(深入理解new+List+范围for+可变参数)
目录 一.深入理解new 使用格式 二.List列表 定义一个列表 迭代器 添加元素 删除元素 排序 反转序列 三.范围for 四.可变参数 std::initializer_list 可变参数模板(variadic template) 一.深入理解new 类似于C语言中的malloc、calloc和reallo…...
Vue 3与TypeScript集成指南:构建类型安全的前端应用
在Vue 3中使用TypeScript,可以让你的组件更加健壮和易于维护。以下是使用TypeScript与Vue 3结合的详细步骤和知识点: 1. 环境搭建 首先,确保你安装了Node.js(推荐使用最新的LTS版本)和npm或Yarn。然后,安…...
MATLAB和Python发射光谱
在MATLAB和Python中,可以使用不同的库来生成发射光谱。以下是两种语言的简单示例: MATLAB: % 定义波长(nm)和强度(a.u.) wavelengths linspace(300, 1000, 1000); intensity sin(wavelengths / 500);…...

IEEE(常用)参考文献引用格式详解 | LaTeX参考文献规范(IEEE Trans、Conf、Arxiv)| 期刊会议名缩写查询
期刊 ** 期刊:已正式出版(有期卷号) ** 期刊:录用后在线访问即Early access(无期卷号)会议Arxiv论文 期刊 期刊:已正式出版(有期卷号) article{gu2024ai, title{{AI}-Enhanced Cloud-Edge-Terminal Collaborative Ne…...

第二十周:机器学习
目录 摘要 ABSTRACT 一、吴恩达机器学习exp2——逻辑回归 1、logistic函数 2、数据预处理 3、损失函数 4、梯度下降 5、设定评价指标 6、决策边界 7、正则化 二、动手深度学习pytorch——数据预处理 1、数据集读取 2、缺失值处理 3、转换为张量格式 总结 摘要…...
Elasticsearch面试内容整理-Elasticsearch 基础概念
Elasticsearch 是一个基于 Apache Lucene 的开源分布式搜索和分析引擎,提供强大的全文本搜索、实时数据分析、分布式存储等功能。以下是 Elasticsearch 的一些基础概念: 什么是 Elasticsearch? ● Elasticsearch 是一个用于全文搜索和实时分析的分布式搜索引擎。 ● 开源和可…...

机器学习算法模型系列——Adam算法
Adam是一种自适应学习率的优化算法,结合了动量和自适应学习率的特性。 主要思想是根据参数的梯度来动态调整每个参数的学习率。 核心原理包括: 动量(Momentum):Adam算法引入了动量项,以平滑梯度更新的方向…...

Qt按钮类-->day09
按钮基类 QAbstractButton 标题与图标 // 参数text的内容显示到按钮上 void QAbstractButton::setText(const QString &text); // 得到按钮上显示的文本内容, 函数的返回就是 QString QAbstractButton::text() const;// 得到按钮设置的图标 QIcon icon() const; // 给按钮…...

基于xr-frame实现微信小程序的手部、手势识别3D模型叠加和石头剪刀布游戏功能
前言 xr-frame是一套小程序官方提供的XR/3D应用解决方案,基于混合方案实现,性能逼近原生、效果好、易用、强扩展、渐进式、遵循小程序开发标准。xr-frame在基础库v2.32.0开始基本稳定,发布为正式版,但仍有一些功能还在开发&#…...

基于Kafka2.1解读Consumer原理
文章目录 概要整体架构流程技术名词解释技术细节coordinatorfetcherclientconsumer#poll的主要流程 全局总览小结 概要 继上一篇讲Producer原理的文章过去已经一个多月了,今天来讲讲Consumer的原理。 其实源码早就读了部分了,但是最近工作比较忙&#x…...

深度学习:ResNet每一层的输出形状
其中 /**在输出通道数为64、步幅为2的7 7卷积层后,接步幅为2的3 3的最大汇聚层,与GoogLeNet区别是每个卷积层后增加了批量规范层**/ b1 nn.Sequential(nn.Conv2d(1, 64, kernel_size7, stride2, padding3),nn.BatchNorm2d(64), nn.ReLU(),nn.MaxPool2d(kernel_s…...
国内几大网络安全公司介绍 - 网络安全
Posted by zhaol under 安全 , 电信 , 评论 , 中国 中国国内的安全市场进入“战国时期”,启明星辰、绿盟、天融信、安氏、亿阳、联想网御、华为等战国七雄拥有雄厚的客户资源和资金基础,帐前皆有勇猛善战之士,渐渐开始统领国内安全市场的潮流…...
修改Android Studio项目配置JDK路径和项目Gradle路径的GUI工具
概述 本工具提供了一个基于Python Tkinter的图形用户界面(GUI),用于帮助用户搜索并更新Android Studio项目中的config.properties文件里的java.home路径,以及workspace.xml文件中的last_opened_file_path路径。该工具旨在简化手动…...

✅DAY30 贪心算法 | 452. 用最少数量的箭引爆气球 | 435. 无重叠区间 | 763.划分字母区间
452. 用最少数量的箭引爆气球 解题思路:首先把原数组按左边界进行排序。然后比较[i-1]的右边界和[i]的左边界是否重叠,如果重叠,更新当前右边界为最小右边界和[i1]的左边界判断是重叠。 class Solution:def findMinArrowShots(self, points:…...

关于Redis单线程模型以及IO多路复用的理解
IO多路复用 -> redis主线程 -> 事件队列 -> 事件处理器 1.IO多路复用机制的作用: 操作系统的多路复用机制(如 epoll、select)负责监听多个文件描述符(如客户端连接)上的事件。 当某个文件描述符上的事件就绪…...

学习ASP.NET Core的身份认证(基于Cookie的身份认证1)
B/S架构程序可通过Cookie、Session、JWT、证书等多种方式认证用户身份,虽然之前测试过用户登录代码,也学习过开源项目中的登录认证,但其实还是对身份认证疑惑甚多,就比如登录验证后用户信息如何保存、客户端下次连接时如何获取用户…...

奇门遁甲中看债务时用神该怎么取?
奇门遁甲中看债务的用神 一、值符 值符在债务关系中可代表债权人(放贷人)。例如在预测放贷时,以值符为放贷人,如果值符克天乙(借贷人)或者天乙生值符,这种情况下可以放贷;反之&#…...
Redis 集群主要有以下几种类型
Redis 集群主要有以下几种类型: 主从复制模式: 这种模式包含一个主数据库实例(master)与一个或多个从数据库实例(slave)。客户端可以对主数据库进行读写操作,对从数据库进行读操作,主…...

使用 Axios 拦截器优化 HTTP 请求与响应的实践
目录 前言1. Axios 简介与拦截器概念1.1 Axios 的特点1.2 什么是拦截器 2. 请求拦截器的应用与实践2.1 请求拦截器的作用2.2 请求拦截器实现 3. 响应拦截器的应用与实践3.1 响应拦截器的作用3.2 响应拦截器实现 4. 综合实例:一个完整的 Axios 配置5. 使用拦截器的好…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...

C# winform教程(二)----checkbox
一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...
JS设计模式(5): 发布订阅模式
解锁JavaScript发布订阅模式:让代码沟通更优雅 在JavaScript的世界里,我们常常会遇到这样的场景:多个模块之间需要相互通信,但是又不想让它们产生过于紧密的耦合。这时候,发布订阅模式就像一位优雅的信使,…...