如何从Spark中查看底层Hadoop文件系统

时间:2016-11-10 14:53:30

标签: hadoop apache-spark hdfs

我已经像这样开始了Spark:

spark-shell --master local[10]

我正在尝试查看底层Hadoop安装上的文件。

我想做这样的事情:

hdfs ls

我该怎么做?

3 个答案:

答案 0 :(得分:1)

只需从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" !!

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-cluster-configuration

答案 1 :(得分:0)

如果我正确理解你的问题,你想从shell执行HDFS命令。在我看来,运行火花工作可能没有帮助。

您需要先启动HDFS实例。以下是文档中的命令。启动HDFS后,您可以运行shell命令。

  

要启动Hadoop群集,您需要同时启动HDFS和   YARN集群。

     

首次启动HDFS时,必须对其进行格式化。格式化新的   分布式文件系统为hdfs:

     

[hdfs] $ $ HADOOP_PREFIX / bin / hdfs namenode -format Start   HDFS NameNode在指定节点上使用以下命令   HDFS:

     

[hdfs] $ $ HADOOP_PREFIX / sbin / hadoop-daemon.sh --config $ HADOOP_CONF_DIR   --script hdfs start namenode在每个指定节点上使用以下命令启动HDFS DataNode为hdfs:

     

[hdfs] $ $ HADOOP_PREFIX / sbin / hadoop-daemons.sh --config   $ HADOOP_CONF_DIR --script hdfs start datanode if etc / hadoop / slaves and   ssh信任访问已配置(请参阅单节点设置),所有   可以使用实用程序脚本启动HDFS进程。作为hdfs:

     

[hdfs] $ $ HADOOP_PREFIX / sbin / start-dfs.sh启动YARN   以下命令,在指定的ResourceManager上以yarn:

运行      

[yarn] $ $ HADOOP_YARN_HOME / sbin / yarn-daemon.sh --config   $ HADOOP_CONF_DIR start resourcemanager运行脚本启动a   每个指定主机上的NodeManager为yarn:

     

[yarn] $ $ HADOOP_YARN_HOME / sbin / yarn-daemons.sh --config   $ HADOOP_CONF_DIR start nodemanager启动独立的WebAppProxy   服务器。以纱线形式在WebAppProxy服务器上运行。如果是多个服务器   与负载平衡一起使用时,它应该在每个上运行:

     

[yarn] $ $ HADOOP_YARN_HOME / sbin / yarn-daemon.sh --config   $ HADOOP_CONF_DIR启动代理服务器如果是etc / hadoop / slaves和ssh   所有YARN都配置了受信任的访问权限(请参阅单节点设置)   可以使用实用程序脚本启动进程。作为纱线:

     

[yarn] $ $ HADOOP_PREFIX / sbin / start-yarn.sh启动MapReduce   JobHistory Server使用以下命令,在指定的上运行   server as mapred:

     

[mapred] $ $ HADOOP_PREFIX / sbin / mr-jobhistory-daemon.sh --config   $ HADOOP_CONF_DIR启动历史服务器

第二种选择是程序化方式。您可以使用Hadoop中的FileSystem类(它是一个Java实现。)并执行hdfs操作。

以下是javadoc的链接。

https://hadoop.apache.org/docs/r2.7.3/api/org/apache/hadoop/fs/FileSystem.html

答案 2 :(得分:0)

您可以使用spark-shell上的命令查看HDFS的基础文件系统:

  

导入scala.sys.process._

     

val lsOutput = Seq(“ hdfs”,“ dfs”,“-ls”,“ / path / to / folder”)。!