0. 注意安装包的版本及其兼容性
- jdk:1.9 及以上尤其对于 scala,很难真正兼容
- scala:
- hadoop:
- spark:
1. 安装
- hadoop 的安装可以使用
brew install hadoop
,自动安装,也可以下载指定版本的 hadoop (hadoop-2.8.0.tar.gz)本地安装配置
2. 服务UI
- HDSF服务:
http://localhost:50070
- YARN服务:
http://localhost:8088
3. 问题及解决
-
Hadoop格式化namenode 出错 Error(./bin/hdfs namenode -format): A JNI error has occurred, please check your installation and try again Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/hadoop/security/authorize/Refr
解决方案:在
hadoop-env.sh
中增加对 JAVA_HOME 及 HADOOP_COMMON_HOME 的声明,export HADOOP_COMMON_HOME=xx/hadoop-2.8.0
(hadoop 的安装位置) -
Apache Spark Exception in thread “main” java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
- pom.xml 文件中指定的 scala 版本与 【Platform Settings】⇒ 【Global Libraries】中选的 scala 版本不匹配导致;
比如可以统一将其设为 scala-2.11,Global Libraries 中选择scala-sdk-2.11.12
,pom.xml 中指定 scala 版本为:
<properties> <scala.version>2.11</scala.version> </properties>
- 此外 pom.xml 中的 spark 相关包也会携带 scala 的版本,同样需要保持一致;
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-mllib_${scala.version}</artifactId> <version>${spark.version}</version> </dependency>
- pom.xml 文件中指定的 scala 版本与 【Platform Settings】⇒ 【Global Libraries】中选的 scala 版本不匹配导致;