spark打包还是比较复杂的,特别的其中有关R语言的模块。在本章,我就将其中遇到的所有问题为大家一一讲解,为大家提供一点经验。
  这里的打包命令是直接从官网中找的,这里我们最后得到的是tgz格式的包。打包的命令是——./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes
  这里我们首先修改make-distribution.sh中MVN="$SPARK_HOME/build/mvn",将其改为自己maven路径。这里我修改为——MVN="/usr/local/maven-3.5.3/bin/mvn"。
  报错一:
  [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (sparkr-pkg) on project spark-core_2.11: Command execution failed.: Process exited with an error: 1 (Exit value: 1) -> [Help 1]很可能是由于R语言并没有安装,因为我们这里同样报了如下错误:
  解决方法:在mac上安装R语言。这里我下载了R-3.6.0.pkg,然后直接安装就好。
  报错二:
  no knitr found。
  解决方法:在R语言的命令行下,也就是/Applications/R.app/Contents/MacOS/下直接执行R,然后在输入框内执行——install.packages("knitr")
  报错三:
  there is no package called 'stringi'
  解决方法:在R的命令行下执行——install.packages('stringi')
  报错四:
  Using Caret Package but Getting Error in library(e1071)
  解决方法:在R命令行下执行install.packages('e1071', dependencies=TRUE)
  报错五:
  no rmarkdown、testthat
  解决方法:在R命令行下执行install.packages('rmarkdown')、install.packages('testthat')
  报错六:
  调用tools::texi2pdf()是出了错:
  解决方法:下载MacTex后安装。然后执行sudo find / -iname texbin,我这里有如下路径
  接着,我们需要设置R语言的环境变量。
  这里有两种设置环境变量的方法,一种是临时的,也就是会话级别的,另一种是永久的。
  关于临时的环境变量设置,在链接——https://www.r-bloggers.com/building-r-packages-missing-path-to-pdflatex/中将的比较详细了,我这里就不赘述了。我们这里需要关注的是永久环境变量的设置。
  要设置永久的环境变量,我们需要更改/etc/profile文件,这里我们添加在文件中添加:
  export LATEX_HOME=/Library/TeX/texbin
  export PATH=$PATH:$LATEX_HOME
  执行了source /etc/profile后,我们打开另外一个窗口,在R命令行下执行:
  Sys.getenv("PATH") /Library/TeX/texbin
  接着执行:Sys.which("pdflatex") ,这里我们发现:
  然后,我们再在spark-master/目录下执行:
  ./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes
  等一段时间,就会发现在根目录下已经打好了包:spark-2.3.0-SNAPSHOT-bin-custom-spark.tgz
  到现在为止,我们就打好了spark的tgz包,大家就可以自由地调试了。

spark打包详解的更多相关文章

  1. Spark参数详解 一(Spark1.6)

    Spark参数详解 (Spark1.6) 参考文档:Spark官网 在Spark的web UI在"Environment"选项卡中列出Spark属性.这是一个很有用的地方,可以检查 ...

  2. VS2010开发程序打包详解

    VS2010开发程序打包详解 转自:http://blog.sina.com.cn/s/blog_473b385101019ufr.html 首先打开已经完成的工程,如图: 下面开始制作安装程序包. ...

  3. AssetBundle打包详解

    Unity5.x AssetBundle打包详解 在网上查看了很多资料,想详细搞清楚AssetBundle的原理.以实现符合项目需求的打包工具和加载逻辑 1. AssetBundle是什么? Asse ...

  4. Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例)

    Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编辑配置文件(pml.xml)(我 ...

  5. Spark:常用transformation及action,spark算子详解

    常用transformation及action介绍,spark算子详解 一.常用transformation介绍 1.1 transformation操作实例 二.常用action介绍 2.1 act ...

  6. Spark框架详解

    一.引言 作者:Albert陈凯链接:https://www.jianshu.com/p/f3181afec605來源:简书 Introduction 本文主要讨论 Apache Spark 的设计与 ...

  7. Spark中的Spark Shuffle详解

    Shuffle简介 Shuffle描述着数据从map task输出到reduce task输入的这段过程.shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过s ...

  8. HUE配置文件hue.ini 的Spark模块详解(图文详解)(分HA集群和HA集群)

    不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...

  9. python 打包详解

    基本步骤: 1. 写setup.py 2. 运行“python setup.py sdist” 3. 在当前目录下会生成文件夹“dist”,打包好的代码就在dist中,以“.tar.gz”的形式被压缩 ...

随机推荐

  1. Qt 编译出现 error LNK2019: 无法解析的外部符号

    编辑完成后执行"构建->执行qmake",完成(必须要执行qmake).

  2. mysql安装后,进DOS输入命令mysql,提示错误:mysql ERROR 1045 (28000)的解决办法

    一.修改my.ini文件,并重启mysql服务 找到配置文件my.ini  ,然后将其打开,可以选择用记事本打开 打开后,搜索mysqld关键字,找到后,在mysqld下面添加skip-grant-t ...

  3. revit安装未完成,某些产品无法安装的解决方法

    revit提示安装未完成,某些产品无法安装该怎样解决呢?,一些朋友在win7或者win10系统下安装revit失败提示revit安装未完成,某些产品无法安装,也有时候想重新安装revit的时候会出现本 ...

  4. HDU-1403-Longest Common Substring(后缀数组的高度数组运用)

    这题要求两个串中的最长相同子串的长度.高度数组可以求一个串中的最长相同子串的长度.所以想到把两个串连起来,但是这样又会产生一些新的串(第一个串的结尾和第二个串的开头组成的)于是在两个串中间放一个'\0 ...

  5. Welcome to Fan Ouyang’s website!

    Welcome to Fan Ouyang's website! 欧阳璠,哲学博士,湖南娄底人. 目前为浙江大学教育学院课程与学习科学系教育技术专业百人计划研究员. 2013-2018年 明尼苏达大学 ...

  6. drf三大认证

    源码分析 """ 1)APIView的dispath(self, request, *args, **kwargs) 2)dispath方法内 self.initial( ...

  7. 前端页面设计常见的30个CSS选择器

    1. *   -->   通配符选择器 * { margin: 0; padding: 0; } 星号符会选择页面每个元素.很多开发者用它把所有margin和padding归零.这当然是快捷测试 ...

  8. StringUtil中isBlank(),idNUll,isEmpty的区别

    StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 ...

  9. Python---9高级特性

    一.切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', ' ...

  10. List.remove()的使用注意

    不使用forEach的循环 使用forEach循环 参考 今天修改一个bug,需要取一个List和一个Set的交集,使用了双重循环.想着提高循环效率,每加入一个交集中的元素,就将List中的元素删除, ...