scala---spark本地调式远程获取hdfs数据注意事项

news/2024/5/20 2:31:48 标签: hdfs, scala, spark, hadoop

文章目录

  • 前言
  • 一、Hadoop配置注意事项
    • 1.1 core-site.xml
    • 1.2 core-site.xml
  • 二、本地hadoop环境配置注意事项
  • 三、本地scala项目spark代码调试
  • 总结


前言

  这篇文章主要帮大家绕开一些本地使用spark调试获取远程hdfs数据的坑,个人在使用时也是基本把这些坑踩了一遍。希望下面的内容能给到其它人一些帮助,少走弯路减少不必要的时间损耗。


一、Hadoop配置注意事项

配置项我只贴出关键点

1.1 core-site.xml

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

  这里注意nameNode不要使用localhost,使用localhost后使用netstat -anp | grep 9000查看端口监听你会发现无法监听本机外的请求,当我们本地与远程服务器跨域时是访问不到的。
在这里插入图片描述
  vim /etc/hosts ,自己设定一个域名配置为0.0.0.0。同时云服务器记得开放端口。

提示:如果没有开启安全验证的话服务器尽量不要对所有IP开放,因为hadoop很容易被端口扫描植入木马

1.2 core-site.xml

  不要直接使用ip配置这样会导致namenode返回本机内网Ip远程无法访问

	<property>
		<name>dfs.client.use.datanode.hostname</name>
		<value>frue</value>
	</property>
	<property>
	    <name>dfs.datanode.use.datanode.hostname</name>
	    <value>true</value>
	</property>

  同时切记,其他所有配置项涉及到主机的,都不能再出现ip,必须用相应ip对应的域名来代替。

示例:
0.0.0.0 localhostx
17x.1xx.10x.194 hadoop

hadoop_51">二、本地hadoop环境配置注意事项

  面对如下错误

Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems

Caused by: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems

配置一个伪hadoop环境变量(不需要在本地真是安装hadoop),HADOOP_HOME指向下面文件夹,并将箭头中的两个文件放入system32下(需重启电脑生效)
在这里插入图片描述
下载地址
https://gitcode.net/mirrors/steveloughran/winutils?utm_source=csdn_github_accelerator
如果是较新版本hadoop可以异步下面的地址尝试
https://raw.githubusercontent.com/cdarlint/winutils/master/hadoop-3.2.2/bin/winutils.exe
https://raw.githubusercontent.com/cdarlint/winutils/master/hadoop-3.2.2/bin/hadoop.dll

scalaspark_68">三、本地scala项目spark代码调试

脱敏代码,关键点

scala">    val sc = new SparkContext(conf)
    sc.hadoopConfiguration.set("dfs.client.use.datanode.hostname", "true")
    sc.hadoopConfiguration.set("dfs.datanode.use.datanode.hostname", "true")
    System.setProperty("hadoop.home.dir", "F:\\hadoop\\bin")
    System.setProperty("HADOOP_USER_NAME", "hdfs")
    val rdd:RDD[String] = sc.textFile("hdfs://hadoop:9000/spark/七界武神.txt")

一定要配置dfs.client.use.datanode.hostname开启域名访问,否则会无法连通hdfs

提示:记得本地windows下hosts文件也要配置域名解析

在这里插入图片描述
成功拿到hdfs下数据
在这里插入图片描述


总结

常见的坑大致就以上几点,配置环境时仔细一些基本不会有其它坑了。如果遇到其它无法解决的问题欢迎私信讨论。


http://www.niftyadmin.cn/n/315112.html

相关文章

5. Android虚拟机和类加载机制

Android 虚拟机是什么? Dalvik和ART(Android Runtime) 扩展知识 Dalvik是运行的.dex文件,一个.dex文件可以包含多个.class文件,也就是说一个.dex是包含多个类的 JVM运行的是.class文件,一个.class文件只包含一个类 寄存器是什么? 寄存器是CPU中的组成部分,是有存储容量的高速…

Goby 漏洞更新 |secnet-智能路由系统 actpt_5g.data 信息泄露

漏洞名称&#xff1a;secnet-智能路由系统 actpt_5g.data 信息泄露 English Name&#xff1a;secnet Intelligent Router actpt_5g.data Infoleakage CVSS core: 7.5 影响资产数&#xff1a;71768 漏洞描述&#xff1a; secnet安网智能AC管理系统是广州安网通信技术有限公…

极高频率出现的设计模式面试题

设计模式是Java工程师日常工作中非常重要的一个技能&#xff0c;可以使用设计模式重构整体的架构代码、提交代码复用性、扩展性等等&#xff0c;如果大家想要成为Java工程师那么这项技能是必须会的&#xff0c;如果大家正处于找工作阶段&#xff0c;那么这套战略性的设计模式面…

数影周报:丰田215万名日本客户信息被无意泄露,菜鸟将于明年初在港IPO

本周看点&#xff1a;丰田215万名日本客户信息被无意泄露&#xff1b;美光宣布吴明霞出任美光中国区总经理&#xff1b;谷歌将向Gmail用户提供暗网数据泄露报告&#xff1b;淘宝天猫集团架构调整完成&#xff1b;菜鸟计划于2024年初在香港IPO...... 数据安全那些事 丰田215万名…

Postgres : 创建schema、创建表空间与指定用户权限

1. 创建新的Schema 要创建 PostgreSQL 中的一个新的 schema&#xff0c;并创建一个只有该 schema 权限的新用户&#xff0c;请按照以下步骤操作&#xff1a; &#xff08;1&#xff09;打开 PostgreSQL 客户端并连接到数据库服务器。 &#xff08;2&#xff09;创建一个新的…

【数据结构】和栈一样简单的结构——队列

【数据结构】和栈一样简单的结构——队列 一、前言1、什么是队列&#xff1f;2、使用什么结构实现&#xff1f; 二、目标三、实现1、初始化工作2、入队2.1、图解思路2.2、代码实现 3、出队3.1、图解思路3.2、代码实现 4、打印队列(用于测试)5、返回队头元素6、返回队尾元素7、返…

软考高级架构师笔记1-计算机硬件

目录 1. 前言 & 更新2. CPU组成3. CPU的指令集:4.存储器5. 总线1. 前言 & 更新 注意:绪论不考,直接略过。 计算机硬件章节19-21年没考过,在22年真题考过磁盘调度,根据趋势分析,以后考的概率也不大,了解即可。 本节删掉了第一版中的编码、海明码等内容。 2. CP…

FE_Vue学习笔记 条件渲染[v-show v-if] 列表渲染[v-for] 列表过滤 列表排序

1 条件渲染 v-show v-if 使用template可以使其里面的内容在html的结构中不变。条件渲染&#xff1a; v-if 1&#xff09;v-if“表达式” 2&#xff09;v-else-if“表达式” 3&#xff09;v-else {} 适用于&#xff1a;切换频率较低的场景。特点&#xff1a;不展示的DOM元素直…