为什么使用 yarn-client 启动 spark-shell 失败并显示 "java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream"?
Why does launching spark-shell with yarn-client fail with "java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream"?
我正在尝试在家里建立一个集群以满足我个人的需要(学习)。首先我做了Hadoop+Yarn。 MR2 正在工作。其次 - 我正在尝试添加 Spark 但收到有关缺少 类.
的错误
[root@master conf]# spark-shell --master yarn-client
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
...
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream
我按照这些 instructions 添加到 spark-env.sh
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop)
更多信息:
Cent_OS.86_64
Hadoop 目录:/usr/local/hadoop
Hadoop 版本:
[root@master conf]# hadoop version
Hadoop 2.7.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657
Compiled by jenkins on 2015-06-29T06:04Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.1.jar
Manual 说我必须有 2 个变量:HADOOP_CONF_DIR or YARN_CONF_DIR
[root@master conf]# echo $HADOOP_CONF_DIR
/usr/local/hadoop/etc/hadoop
[root@master conf]# echo $YARN_CONF_DIR
/usr/local/hadoop/etc/hadoop
Spark 是 spark-1.5.0-bin-without-hadoop.tgz
-> /usr/local/spark
我正在尝试在 hadoop+yarn 启动并可用时同时启动 spark-shell --master yarn-client
http://master:50070/dfshealth.html#tab-overview
http://master:8088/cluster/apps
http://master:19888/jobhistory
如果重要的话,我没有安装 Scala。
有什么想法我会在 Spark 设置中错过什么吗?谢谢。
而不是 spark-1.5.0-bin-without-hadoop.tgz
下载 Hadoop 2.x 的构建之一。它们带有 Hadoop 客户端库,因此设置起来更简单。
回答我自己的问题:
首先这是我个人的错误。
调用 spark-shell
我是从旧的(错误的)地方 /opt/cloudera/parcels/CDH-5.4.5-1.cdh5.4.5.p0.7/bin/spark-shell
启动它的。我确信我已经从 yum remove cloudera*
.
的 CDH 测试中删除了所有内容
[root@master bin]# type spark-shell
spark-shell is hashed (/usr/bin/spark-shell)
[root@master bin]# hash -d spark-shell
现在,从旧 spark-1.5.0-bin-without-hadoop.tgz
启动 if 仍然给我同样的错误。下载 spark-1.5.0-bin-hadoop2.6
,添加 export SPARK_DIST_CLASSPATH=$HADOOP_HOME
- spark-shell 正在运行。
我收到此错误是因为键入 spark-shell
后,/usr/bin/spark-shell
被执行。
为了调用我的特定 spark-shell,我从自己构建的 spark 源中 运行 以下命令 -
./bin/spark-shell
我正在尝试在家里建立一个集群以满足我个人的需要(学习)。首先我做了Hadoop+Yarn。 MR2 正在工作。其次 - 我正在尝试添加 Spark 但收到有关缺少 类.
的错误[root@master conf]# spark-shell --master yarn-client
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
...
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream
我按照这些 instructions 添加到 spark-env.sh
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop)
更多信息:
Cent_OS.86_64
Hadoop 目录:/usr/local/hadoop
Hadoop 版本:
[root@master conf]# hadoop version
Hadoop 2.7.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657
Compiled by jenkins on 2015-06-29T06:04Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.1.jar
Manual 说我必须有 2 个变量:HADOOP_CONF_DIR or YARN_CONF_DIR
[root@master conf]# echo $HADOOP_CONF_DIR
/usr/local/hadoop/etc/hadoop
[root@master conf]# echo $YARN_CONF_DIR
/usr/local/hadoop/etc/hadoop
Spark 是 spark-1.5.0-bin-without-hadoop.tgz
-> /usr/local/spark
我正在尝试在 hadoop+yarn 启动并可用时同时启动 spark-shell --master yarn-client
http://master:50070/dfshealth.html#tab-overview
http://master:8088/cluster/apps
http://master:19888/jobhistory
如果重要的话,我没有安装 Scala。 有什么想法我会在 Spark 设置中错过什么吗?谢谢。
而不是 spark-1.5.0-bin-without-hadoop.tgz
下载 Hadoop 2.x 的构建之一。它们带有 Hadoop 客户端库,因此设置起来更简单。
回答我自己的问题:
首先这是我个人的错误。
调用 spark-shell
我是从旧的(错误的)地方 /opt/cloudera/parcels/CDH-5.4.5-1.cdh5.4.5.p0.7/bin/spark-shell
启动它的。我确信我已经从 yum remove cloudera*
.
[root@master bin]# type spark-shell
spark-shell is hashed (/usr/bin/spark-shell)
[root@master bin]# hash -d spark-shell
现在,从旧 spark-1.5.0-bin-without-hadoop.tgz
启动 if 仍然给我同样的错误。下载 spark-1.5.0-bin-hadoop2.6
,添加 export SPARK_DIST_CLASSPATH=$HADOOP_HOME
- spark-shell 正在运行。
我收到此错误是因为键入 spark-shell
后,/usr/bin/spark-shell
被执行。
为了调用我的特定 spark-shell,我从自己构建的 spark 源中 运行 以下命令 -
./bin/spark-shell