spark的新人会有什么坑

spark是一个以java为基础的,以Scala实现的,所以在你在安装指定版本的spark,需要检查你用的是对应spark使用什么版本的scala,可以通过spark-shel --version进行查看,也需要看一下scala使用的什么版本的jdk运行,在scala官方下载页面会有说明jdk版本,然后在编译时使用指定版本的jdk。并且jdk8是jdk1.8,哈哈,讨论很深的。

mac的java目录在/Library/Java/JavaVirtualMachines/,找到指定版本进去找Home目录,IntelliJ IDA添加sdk时,需要找sdk home,

如果编译时出现类似以下错误,找不到类依赖,spark内部的包是有互相依赖的,比如:

missing or invalid dependency detected while loading class file 'StreamingContext.class'. Could not access term conf in package org.apache.hadoop, because it (or its dependencies) are missying. Check your build definition for missing or conflicting dependencies. (Re-run with -Ylog-classpath to see the problematic classpath.) A full rebuild may help if 'StreamingContext.class' was compiled against an incompatible version of org.apache.hadoop.

我目前的解决方式比较笨,直接将spark_folder/jars/*.jar文件添加的项目的Libraryy依赖中,这样都找到了 ,嘿嘿,

项目发布时,不要发布这些包,否则发则会慢,并且会spark中的包冲突

spark-submit时提示:

ERROR spark.SparkContext: Error initializing SparkContext.
java.lang.IllegalStateException: Spark context stopped while waiting for backen

这个错误是因为yarn在java8环境下出现的bug,需要增加配置项hadoop/etc/hadoop/yarn-site.xml:

<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>

yum install atlas

rpm -i scala-2.12.4.rpm

下载spark对应版本的scala,然后设置全局变量:

export SPARK_HOME="/usr/local/spark2"
export PATH="$PATH:$SPARK_HOME/bin"
export SCALA_HOME="/usr/share/scala"
export PATH="$PATH:$SCALA_HOME/bin"

配置:

conf/spark_env.sh

export SPARK_MASTER_HOST=master

conf/slaves

slave1

slave2

17/12/10 22:08:56 WARN Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.

这个问题是说,spark的jar运行库需要在集群上才可以运行:

/usr/local/spark2/conf/spark-defaults.conf

spark.yarn.jars    hdfs://master:9000/spark_jars

然后将运行命令:hadoop fs -mkdir /spark_jars

hadoop fs -put ./* /spark_jars/

spark-submit/spark-shell在使用yarn时一直没有反应,一直运行,一直等待,我的原因是spark-env中slave机器上没有添加master_host原因

我在提交了一个mllib的als推荐算法,提示:

17/12/11 19:14:39 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
17/12/11 19:14:39 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
17/12/11 19:14:39 WARN LAPACK: Failed to load implementation from: com.github.fommil.netlib.NativeSystemLAPACK
17/12/11 19:14:39 WARN LAPACK: Failed to load implementation from: com.github.fommil.netlib.NativeRefLAPACK

这个问题是因为als是一个分布式算法,在本地执行时失败,在--master yarn模式下执行正常

spark 环境搭建坑的更多相关文章

  1. Hive On Spark环境搭建

    Spark源码编译与环境搭建 Note that you must have a version of Spark which does not include the Hive jars; Spar ...

  2. 分布式计算框架-Spark(spark环境搭建、生态环境、运行架构)

    Spark涉及的几个概念:RDD:Resilient Distributed Dataset(弹性分布数据集).DAG:Direct Acyclic Graph(有向无环图).SparkContext ...

  3. Spark学习进度-Spark环境搭建&Spark shell

    Spark环境搭建 下载包 所需Spark包:我选择的是2.2.0的对应Hadoop2.7版本的,下载地址:https://archive.apache.org/dist/spark/spark-2. ...

  4. 学习Spark——环境搭建(Mac版)

    大数据情结 还记得上次跳槽期间,与很多猎头都有聊过,其中有一个猎头告诉我,整个IT跳槽都比较频繁,但是相对来说,做大数据的比较"懒"一些,不太愿意动.后来在一篇文中中也证实了这一观 ...

  5. 大数据学习系列之六 ----- Hadoop+Spark环境搭建

    引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...

  6. Spark环境搭建(上)——基础环境搭建

    Spark摘说 Spark的环境搭建涉及三个部分,一是linux系统基础环境搭建,二是Hadoop集群安装,三是Spark集群安装.在这里,主要介绍Spark在Centos系统上的准备工作--linu ...

  7. Spark环境搭建(六)-----------sprk源码编译

    想要搭建自己的Hadoop和spark集群,尤其是在生产环境中,下载官网提供的安装包远远不够的,必须要自己源码编译spark才行. 环境准备: 1,Maven环境搭建,版本Apache Maven 3 ...

  8. Spark环境搭建(四)-----------数据仓库Hive环境搭建

    Hive产生背景 1)MapReduce的编程不便,需通过Java语言等编写程序 2) HDFS上的文缺失Schema(在数据库中的表名列名等),方便开发者通过SQL的方式处理结构化的数据,而不需要J ...

  9. Eclipse+maven+scala+spark环境搭建

    准备条件 我用的Eclipse版本 Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0) 我用的是Eclipse ...

随机推荐

  1. 洛谷 P3242 [HNOI2015]接水果 解题报告

    P3242 [HNOI2015]接水果 题目描述 风见幽香非常喜欢玩一个叫做 \(osu!\) 的游戏,其中她最喜欢玩的模式就是接水果.由于她已经\(DT\) \(FC\) 了\(\tt{The\ b ...

  2. HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)

    HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化) 题意分析 给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份.首先可以确定的是如果石头的价值总和为奇数的话,那 ...

  3. 【计数原理】【UVA11538】 Chess Queen

    传送门 Description 给你一个n*m的棋盘,在棋盘上放置一黑一白两个皇后,求两个皇后能够互相攻击的方案个数 Input 多组数据,每组数据包括: 一行,为n和m 输入结束标志为n=m=0. ...

  4. linux 常见服务端口

    Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(daemons) 来执行的.守护进 ...

  5. 背景建模技术(三):背景减法库(BGS Library)的基本框架与入口函数main()的功能

    背景减法库(BGS Library = background subtraction library)包含了37种背景建模算法,也是目前国际上关于背景建模技术研究最全也最权威的资料.本文将更加详细的介 ...

  6. pg_basebackup: invalid tar block header size

    问题: 在使用pg_basebackup搭建备节点时,由于pg_basebackup本身使用的是int整型来保存传输的数据大小,当传输的数据大于4G的话,整数就会溢出,进而报出:pg_baseback ...

  7. Django请求原理(二)

    1,Web服务器(中间件)收到一个http请求 2,Django在URLconf里查找对应的视图(View)函数来处理http请求 3,视图函数调用相应的数据模型来存取数据.调用相应的模板向用户展示页 ...

  8. 题解【bzoj4653 [NOI2016] 区间】

    先按照长度排个序,然后依次添加区间.什么是添加?设这个区间是\([l,r]\),添加就是把\(a_l,a_{l+1},a_{l+2},{...},a_{r}\)都加上\(1\),其中\(a_i\)表示 ...

  9. uboot 的命令体系

    1.代码位置 (1)uboot命令体系的实现代码在uboot/common/cmd_xxx.c中.有若干个.c文件和命令体系有关.(还有command.c  main.c也是和命令有关的) 2.传参方 ...

  10. Difference between Netbios and Host name

    Hostnames or NetBIOS names were used to provide a friendlier means of identifying servers or worksta ...