在k8s中部署hadoop后的使用,包括服务端及客户端(客户端的安装及与k8s服务的对接)

(作者:陈玓玏)



在https://blog.csdn.net/weixin_39750084/article/details/136744772?spm=1001.2014.3001.5502和https://blog.csdn.net/weixin_39750084/article/details/136750613?spm=1001.2014.3001.5502这两篇文章中,说明了如何通过helm和k8s部署hadoop,接下来就看怎么在部署好的集群中使用hadoop了。

一、在服务端使用hadoop

在k8s集群中使用hadoop和hdfs,不能直接使用hadoop和hdfs命令,需要借助kubectl。

比如查看集群状态,可以通过kubectl exec -it hadoop-hadoop-yarn-nm-0 -- hadoop dfsadmin -report
在这里插入图片描述

比如创建文件,可以通过kubectl exec -it hadoop-hadoop-yarn-nm-0 -- hadoop fs -mkdir /t
比如查看文件,可以通过kubectl exec -it hadoop-hadoop-yarn-nm-0 -- hadoop fs -ls /
在这里插入图片描述

命令中的hadoop-hadoop-yarn-nm-0是我部署的hadoop集群的master所对应的pod的名称,这个可以在k8sdashboard上查看。

其实在k8s集群上使用hadoop的shell命令,其实就是前面加一串固定的kubectl的命令就可以了。

二、在客户端使用hadoop

如果需要在客户端中使用hadoop和hdfs,需要先安装hadoop客户端。

先查看服务端的jdk和hadoop版本。

kubectl exec -it hadoop-hadoop-yarn-nm-0 -- hadoop version

在这里插入图片描述
再查看master所在的pod中的环境变量,找到其中java的环境变量,找到java的版本。

kubectl exec -it hadoop-hadoop-yarn-nm-0 -- bash -c 'echo $JAVA_HOME'

在这里插入图片描述
知道版本之后,我们可以开始安装客户端了。

1. 安装jdk:

sudo apt install openjdk-8-jre-headless

如果失败了,先apt-get update试试。

2. 安装hadoop:

下载hadoop,链接是https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz,下二进制版本,下载之后解压,tar -zxvf hadoop-3.3.6.tar.gz

下载速度想要更快可以用这个网址:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/

解压后,配置环境变量。

打开~/.bashrc文件,把下面两行加到末尾。

export HADOOP_HOME=/mnt/admin/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin

执行以下命令让环境变量生效:

source ~/.bashrc

执行完之后尝试执行hadoop version命令,报错ERROR: JAVA_HOME is not set and could not be found
在这里插入图片描述
解决这个问题需要先看一下jdk是否安装好,java -version看一下。
在这里插入图片描述
java已经安装好了。
再输export看一下java的环境变量是否设置好了,我这边确实是没设置,那就在环境变量中再设置一下。

whereis java
ls -l /usr/bin/java
ls -l /etc/alternatives/java

通过以上三行命令找到java位置,注意两个ls后面的路径都是基于前一条命令的结果,要根据自己的结果来。在~/.bashrc后面把第三条命令的结果设置为JAVA_HOME,注意路径不要写到java那层,写到jre层就可以了。再尝试重新让环境变量生效。

在这里插入图片描述
再尝试hadoop version命令就可以了。
在这里插入图片描述

3. 配置hadoop

/mnt/admin/hadoop-3.3.6/etc/hadoop
vi hadoop-env.sh

确保hadoop-env文件里的JAVA_HOME那行被注释掉。

然后找到core-site.xml文件,添加以下配置:

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

这里的ip加端口是hadoop集群上namenode的ip及端口。在k8sdashboard上发现nm的service没有ip,所以复制了namenode的service,删除clusterIP为None的设置,生成一个新的service,把新的ip和端口写上。

再找到hdfs-site.xml文件,添加以下配置:

<configuration><property><name>dfs.replication</name><value>1</value></property>
</configuration>

配置mapred-site.xml:

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

配置yarn-site.xml:
这里需要resourcemanager的ip地址,k8s集群上的没有,所以也需要再复制一个rm,把clusterIP删了,再把type改为NodePort,把ip填到xml中。

<configuration><!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>10.43.4.198</value></property>
</configuration>

4. 测试使用hadoop及hdfs

配置完之后,回到hadoop-3.3.6的上层目录,就可以在客户端直接通过hadoop命令及hdfs命令操作集群啦。

尝试先查询文件,再新建,再查询。
在这里插入图片描述
成功了,这样比在服务端直接使用更方便,不用通过kubectl来执行命令啦。

参考链接:
https://www.cnblogs.com/zhangyinhua/p/7678704.html#_label0
https://blog.51cto.com/u_16175434/7148403

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Verilog复习(一)| 模块的定义

模块&#xff08;module&#xff09;是Verilog的基本描述单位&#xff0c;用于描述某个设计的功能或结构&#xff0c;及其与其他模块通信&#xff08;连接&#xff09;的外部端口。 Verilog程序由关键词module和endmodule进行定义。 定义模块的步骤&#xff1a; 定义模块的端…

保研面试408复习 4——操作系统、计网

文章目录 1、操作系统一、文件系统中文件是如何组织的&#xff1f;二、文件的整体概述三、UNIX外存空闲空间管理 2、计算机网络一、CSMA/CD 协议&#xff08;数据链路层协议&#xff09;二、以太网MAC帧MTU 标记文字记忆&#xff0c;加粗文字注意&#xff0c;普通文字理解。 1、…

全平台 GUI库, 物联网,嵌入式,单片机,桌面应用都行

跨平台最小头文件GUI库 GuiLite是一个轻量级、高效的GUI库&#xff0c;拥有仅4千行的C代码&#xff0c;且零依赖&#xff0c;采用单一头文件库&#xff08;GuiLite.h&#xff09;。这个库不仅提供高效渲染&#xff0c;即使在单片机上也能流畅运行&#xff0c;展现了卓越的性能表…

MySQL 单表访问

MySQL执行单表查询 1.访问方法: Const MySQL直接利用主键值在聚簇索引中定位对应的用户记录.并且唯一的二级索引也可以在常数时间内定位到一条记录. 这种const访问方法只能在主键列或者唯一二级索引与一个常数进行等值比较才有效. ref 普通的二级索引列与常数进行等值比较,会形…

大模型日报2024-05-05

大模型日报 2024-05-05 大模型新闻: Techs new arms race: The billion-dollar battle to build AI - 小型专业化模型可以为各种细分应用提供关键的、高效的能力&#xff0c;这是AI行业必须要支持的。来源&#xff1a;VentureBeatGenerative AI on Agenda for Next CIECA Webin…

使用llama.cpp量化部署LLM

以llama.cpp工具为例&#xff0c;介绍模型量化并在本地部署的详细步骤。这里使用 Meta最新开源的 Llama3-8B 模型。 1 环境 系统应有make&#xff08;MacOS/Linux自带&#xff09;或cmake&#xff08;Windows需自行安装&#xff09;编译工具Python 3.10以上编译和运行该工具 …

【比邻智选】MR880A模组

&#x1f680;高性价比&#xff0c;5G/4G双模&#xff0c;稳定可靠 &#x1f310;功能丰富&#xff0c;5G特性一应俱全 &#x1f9e9;多封装兼容&#xff0c;适配性强&#xff0c;灵活升级智能设备

这 7 道 Redis 基础问题,很常见!!

后端项目如果用到分布式缓存的话&#xff0c;一般用的都是 Redis。不过&#xff0c;Redis 不仅仅能做缓存&#xff0c;还能用作分布式锁、延时队列、限流等等。 什么是 Redis&#xff1f; Redis[1] &#xff08;REmote DIctionary Server&#xff09;是一个基于 C 语言开发的…

Unity数据持久化之Json

目录 Json概述Json文件格式Json配置规则Excel转Json C#读取存储Json文件JsonUtlityJsonUtlity序列化JsonUtility反序列化 LitJsonLitJson序列化LitJson反序列化JsonUtility和LitJson对比 Json概述 Json是什么? 全称:JavaScript对象简谱(JavaScript Object Notation) Json是国…

ESP8266-01s刷入固件报SP8266 Chip efuse check error esp_check_mac_and_efuse

一、遇到的问题 使用ESP8266 固件烧录工具flash_download_tools_v3.6.8 烧录固件报错&#xff1a; 二、解决方法 使用espressif推出发基于python的底层烧写工具&#xff1a;esptool 安装方法&#xff1a;详见https://docs.espressif.com/projects/esptool/en/latest/esp32/ …

子查询之一(单行子查询, 多行子查询)

1. 子查询 子查询是指一个查询语句嵌套在另一个查询语句内部的查询.这个特性在MySQL4.1开始引入. SQL中子查询的使用大大增强了SELECT查询的能力.因为很多时候查询需要从结果集中获取数据&#xff0c;或者需要从同一个表中先计算得到一个数据结果&#xff0c;然后与这个数据结…

【go项目01_学习记录08】

学习记录 1 模板文件1.1 articlesStoreHandler() 使用模板文件1.2 统一模板 1 模板文件 重构 articlesCreateHandler() 和 articlesStoreHandler() 函数&#xff0c;将 HTML 抽离并放置于独立的模板文件中。 1.1 articlesStoreHandler() 使用模板文件 . . . func articlesSt…

最新:Lodash 严重安全漏洞背后你不得不知道的 JavaScript 知识

可能有信息敏感的同学已经了解到&#xff1a;Lodash 库爆出严重安全漏洞&#xff0c;波及 400万 项目。这个漏洞使得 lodash “连夜”发版以解决潜在问题&#xff0c;并强烈建议开发者升级版本。 我们在忙着“看热闹”或者“”升级版本”的同时&#xff0c;静下心来想&#xf…

【退役之重学Java】如何解决消息持续积压等问题

一、将读写数据库等耗时的操作&#xff0c;从消费者逻辑中抽取出来&#xff0c;专门部署机器去完成这部分操作。

FebHost:什么是域名DNS服务器?

域名服务器是一种将域名转换为IP地址的计算机。在域名系统&#xff08;DNS&#xff09;中&#xff0c;它起着至关重要的作用。用户只需在浏览器的地址栏输入域名&#xff0c;而无需手动输入网站服务器的IP地址&#xff0c;就可以访问网站。 每个已注册的域名都必须在其DNS记录…

使用Python读取las点云,写入las点云,无损坐标精度

目录 1 为什么要写这个博文2 提出一些关键问题3 给出全部代码安装依赖源码&#xff08;laspy v2.x&#xff09; 1 为什么要写这个博文 搜索使用python读写las点云数据&#xff0c;可以找到很多结果。但是&#xff01; 有些只是简单的demo&#xff0c;且没有发现/说明可能遇到的…

【第16章】spring-mvc之多文件上传

文章目录 前言一、文件大小限制二、前端三、后端总结 前言 本章在上篇文件的上传基础上就行扩展,多文件上传、多线程处理&#xff0c;所有的文件上传成功则返回成功。 一、文件大小限制 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns…

震惊,现在面试都加科技与狠货了

震惊&#xff0c;现在面试都加科技与狠货了 生成式AI盛行的现在&#xff0c;程序员找工作变容易了吗我和老痒喝着大酒&#xff0c;吃着他的高升宴&#xff0c;听他说他面试的各种细节&#xff0c;老狗我只恨自己动作慢了一步&#xff0c;不然现在在那侃侃而谈的就是我了。 面试…

守护数字疆域:2024年网络安全报告深度解读

在这个数据如潮涌动的数字时代&#xff0c;每一比特信息都可能是攻防双方角力的战场。《Check Point 2024年网络安全报告》不但为我们揭示了过去一年网络安全世界的风云变幻&#xff0c;更以前瞻性的视角勾勒出未来的挑战与机遇。此刻&#xff0c;让我们携手深潜这份权威指南的…