IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> sc.textFile()默认读取本地系统文件还是HDFS系统文件? -> 正文阅读

[大数据]sc.textFile()默认读取本地系统文件还是HDFS系统文件?

一、Spark集群拓扑

在这里插入图片描述

二、做好准备工作

(一)准备本地系统文件

  • /home目录里创建test.txt
    在这里插入图片描述
    在这里插入图片描述

(二)准备HDFS系统文件

  • test.txt上传到HDFS系统的/park目录里
    在这里插入图片描述

(三)启动HDFS服务

  • 执行命令:start-dfs.sh
    在这里插入图片描述

三、以–master=local[*]方式启动spark-shell

(一)尝试读取本地系统文件和HDFS系统上的文件

  • --master=local[*]方式启动spark-shell
    在这里插入图片描述

1、读取本地系统/home/test.txt文件创建RDD,不加file://

  • 执行命令:val rdd = sc.textFile("/home/test.txt")
    在这里插入图片描述
  • 执行命令:rdd.collect(),查看RDD的内容
    在这里插入图片描述

2、读取本地系统/home/test.txt文件创建RDD,加上file://

  • 执行命令:val rdd = sc.textFile("file:///home/test.txt")
    在这里插入图片描述
  • 执行命令:rdd.collect(),查看RDD的内容
    在这里插入图片描述
  • 执行命令::quit,退出spark-shell
    在这里插入图片描述

3、读取HDFS系统上的文件/park/test.txt,不加hdfs://master:9000

  • 执行命令:val rdd = sc.textFile("/park/test.txt")
    在这里插入图片描述
  • 执行命令:rdd.collect(),查看RDD的内容
    在这里插入图片描述
  • 报错,因为读取的不是HDFS系统上的文件/park/test.txt,而是本地系统文件/park/test.txt,显然这个文件是不存在的

4、读取HDFS系统上的文件/park/test.txt,加上hdfs://master:9000

  • 执行命令:val rdd = sc.textFile("hdfs://master:9000/park/test.txt")
    在这里插入图片描述
  • 执行命令:rdd.collect(),查看RDD的内容
    在这里插入图片描述

(二)根据上述尝试得到结论

  • --master=local[*]方式启动spark-shell,sc.textFile()默认读取本地系统文件,比如sc.textFile("/home/test.txt")就相当于sc.textFile("file:///home/test.txt"),要访问HDFS系统上的/park/test.txt,必须要写成sc.textFile("hdfs://master:9000/park/test.txt")

四、以–master=spark://master:7077方式启动spark-shell

(一)尝试读取本地系统文件和HDFS系统上的文件

  • --master=spark://master:7077方式启动spark-shell
    在这里插入图片描述

1、读取本地系统/home/test.txt文件创建RDD,不加file://

  • 执行命令:val rdd = sc.textFile("/home/test.txt")
    在这里插入图片描述
  • 执行命令:rdd.collect(),查看RDD的内容
    在这里插入图片描述
  • 报错,因为读取的是HDFS系统上的文件/home/test.txt,文件不存在

2、读取本地系统/home/test.txt文件创建RDD,加上file://

  • 执行命令:val rdd = sc.textFile("file:///home/test.txt")
    在这里插入图片描述
  • 执行命令:rdd.collect(),查看RDD的内容
    在这里插入图片描述
  • 报错,加上file://,依然说文件/home/test.txt不存在

3、读取HDFS系统上的文件/park/test.txt,不加hdfs://master:9000

  • 执行命令:val rdd = sc.textFile("/park/test.txt")
    在这里插入图片描述
  • 执行命令:rdd.collect(),查看RDD的内容
    在这里插入图片描述

4、读取HDFS系统上的文件/park/test.txt,加上hdfs://master:9000

  • 执行命令:val rdd = sc.textFile("hdfs://master:9000/park/test.txt")
    在这里插入图片描述

  • 执行命令:rdd.collect(),查看RDD的内容
    在这里插入图片描述

  • 执行命令::quit,退出spark-shell
    在这里插入图片描述

(二)根据上述尝试得出结论

  • --master=spark://master:7077方式启动spark-shell,sc.textFile()不能访问本地系统文件,只能读取HDFS系统文件,对于文件/park/test.txt,必须写成hdfs://master:9000/park/test.txt才能访问,否则会报错。

五、小结

  • 如果以 spark-shell --master spark://master:7077方式启动spark-shell,只能读取HDFS系统上的文件,不能读取本地系统文件,而以spark-shell --master=local[*]方式启动spark-shell,既可以读取本地系统文件,加不加file://都可以,还可以访问HDFS系统上的文件,但是必须加上hdfs://master:9000
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:36:19  更:2022-03-12 17:36:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:37:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码