如何从spark中查看底层hadoop文件系统

643ylb08  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(441)

我是这样开始的:

spark-shell --master local[10]

我正在尝试查看基础hadoop安装上的文件。
我想这样做:

hdfs ls

我该怎么做?

wfveoks0

wfveoks01#

如果我正确理解您的问题,那么您希望从shell执行hdfs命令。在我看来,运行Spark工作可能没有帮助。
您需要首先启动hdfs示例。以下是文档中的命令。一旦hdfs启动,就可以运行shell命令。
要启动hadoop集群,您需要同时启动hdfs和yarn集群。
第一次使用hdfs时,必须对其进行格式化。将新的分布式文件系统格式化为hdfs:
[hdfs]$$hadoop\u prefix/bin/hdfs namenode-格式化在指定节点上使用以下命令启动hdfs namenode作为hdfs:
[hdfs]$$hadoop\u prefix/sbin/hadoop-daemon.sh--config$hadoop\u conf\u dir--script hdfs start namenode在每个指定节点上使用以下命令作为hdfs启动hdfs datanode:
[hdfs]$$hadoop\u prefix/sbin/hadoop-daemons.sh--config$hadoop\u conf\u dir--script hdfs start datanode如果配置了etc/hadoop/slaves和ssh trusted access(请参阅单节点设置),则可以使用实用程序脚本启动所有hdfs进程。作为hdfs:
[hdfs]$$hadoop\u prefix/sbin/start-dfs.sh使用以下命令启动yarn,在指定的resourcemanager上作为yarn运行:
[yarn]$$hadoop\u yarn\u home/sbin/yarn-daemon.sh--config$hadoop\u conf\u dir start resourcemanager运行脚本,在每个指定的主机上启动节点管理器作为yarn:
[yarn]$$hadoop\u yarn\u home/sbin/yarn-daemons.sh—配置$hadoop\u conf\u dir start nodemanager启动独立的webappproxy服务器。在webappproxy服务器上运行。如果多个服务器用于负载平衡,则应在每个服务器上运行:
[yarn]$$hadoop\u yarn\u home/sbin/yarn-daemon.sh--config$hadoop\u conf\u dir start proxyserver如果配置了etc/hadoop/slaves和ssh trusted access(请参阅单节点设置),则可以使用实用程序脚本启动所有的yarn进程。作为Yarn:
[yarn]$$hadoop\u prefix/sbin/start-yarn.sh使用以下命令启动mapreduce jobhistory服务器,在指定的服务器上作为mapred运行:
[mapred]$$hadoop\u prefix/sbin/mr-jobhistory-daemon.sh--配置$hadoop\u conf\u dir start historyserver
第二种选择是编程方式。您可以使用hadoop中的filesystem类(它是一个java实现)并执行hdfs操作。
下面是javadoc的链接。
https://hadoop.apache.org/docs/r2.7.3/api/org/apache/hadoop/fs/filesystem.html

rqenqsqc

rqenqsqc2#

您可以使用spark shell上的命令查看hdfs的底层文件系统:
导入scala.sys.process.
val lsoutput=seq(“hdfs”、“dfs”、“ls”、“path/to/folder”)。!!

3z6pesqy

3z6pesqy3#

只需从sys.process包导入类,就可以从scala(spark的默认值)执行任何底层系统/os命令(比如hdfs dfs-ls甚至纯shell/dos命令)。请参见下面的示例

linux操作系统

import sys.process._
val oldcksum = "cksum oldfile.txt" !!
val newcksum = "cksum newfile.txt" !!
val hdpFiles = "hdfs dfs -ls" !!

Windows

import sys.process._    # This will let underlying OS commands to be executed.
val oldhash = "certUtil -hashFile PATH_TO_FILE" !!#CertUtil is a windows command

如果您计划在spark中读写hdfs,那么首先需要集成spark和hadoop。http://spark.apache.org/docs/latest/configuration.html#inheriting-hadoop群集配置

相关问题