【问题标题】:In AWS EMR Jupyter Notebook, how to change the user from livy to hadoop在 AWS EMR Jupyter Notebook 中,如何将用户从 livy 更改为 hadoop
【发布时间】:2020-02-19 22:14:05
【问题描述】:

我创建了一个 AWS EMR 集群并上传,

sparkify_log_small.json

并使用以下代码创建了一个 EMR Jupyter Notebook,认为它将从用户(hadoop)主目录中读取。

sparkify_log_data = "sparkify_log_small.json"
df = spark.read.json(sparkify_log_data)
df.persist()
df.head(5)

但是当提交代码时,我收到以下错误。

'Path does not exist: hdfs://ip-172-31-50-58.us-west-2.compute.internal:8020/user/livy/sparkify_log_small.json;'
Traceback (most recent call last):
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/readwriter.py", line 274, in json
    return self._df(self._jreader.json(self._spark._sc._jvm.PythonUtils.toSeq(path)))
  File "/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 69, in deco
    raise AnalysisException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.AnalysisException: 'Path does not exist: hdfs://ip-172-31-50-58.us-west-2.compute.internal:8020/user/livy/sparkify_log_small.json;'

通过谷歌搜索得知 YARN 默认用户是 livy。如何将 jupyter notebook 中的用户从 livy 更改为 hadoop(或)指向正确的目录。

我尝试创建一个如下所示的文件夹并将文件从 /home/hadoop/sparkify_log_small.json 复制到 /home/livy/sparkify_log_small.json

但没用。

这里基本上我正在尝试从笔记本中读取 ec2-master 的文件。

【问题讨论】:

    标签: amazon-web-services jupyter-notebook hadoop-yarn amazon-emr livy


    【解决方案1】:

    下面的程序解决了它,

    检查过的 hadoop 文件

    hadoop fs -ls
    

    在 hadoop 文件系统中创建文件夹

    hdfs dfs -mkdir /home
    hdfs dfs -mkdir /home/hadoop
    

    将文件复制到该位置

    hadoop fs -put ./sparkify_log_small.json /home/hadoop/sparkify_log_small.json
    

    然后在 jupyter 单元中运行 python 代码。它奏效了。

    【讨论】:

      猜你喜欢
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 2019-02-19
      • 2021-04-06
      • 2021-07-26
      • 1970-01-01
      相关资源
      最近更新 更多