1、安装相应的软件

(1)安装jdk

下载地址:http://www.Oracle.com/technetwork/java/javase/downloads/index.html

(2)安装scala

下地地址: http://www.scala-lang.org/

(3)安装spark

下载地址:http://spark.apache.org/downloads.html

(4)安装sbt

如果需要使用到scala独立应用编程,还需一个用来构建应用的工具,sbt或者maven

sbt的安装过程见:http://blog.csdn.net/wuzhilon88/article/details/46300491

其中:

chmod u+x sbt 

这一步,是把sbt文件的权限更改,表示给当前目录下sbt这个文件的所有者增加执行权限。

2、配置环境变量

可以配置用户环境变量文件:

vim ~/.bash_profile

添加如下几个环境变量:

export JAVA_HOME=/usr/lib/jvm/java-1.8.-openjdk-1.8.0.71-.b15.el6_7.x86_64
export SCALA_HOME=/home/zengzc/scala-2.10.
export SPARK_HOME=/home/zengzc/spark-1.6.-bin-hadoop2.
export SPARK_LOCAL_IP=localhost

其中,spark_local_ip这个变量可以在项目的启动脚本里面写。但是后来发现,到后面运行spark程序的时候,依然会出现

// :: ERROR : hefei-log-: hefei-log-: unknown error
java.net.UnknownHostException: hefei-log-: hefei-log-: unknown error
at java.net.InetAddress.getLocalHost(InetAddress.java:)
at tachyon.util.network.NetworkAddressUtils.getLocalIpAddress(NetworkAddressUtils.java:)
at tachyon.util.network.NetworkAddressUtils.getLocalHostName(NetworkAddressUtils.java:)

这样的错误,解决办法是在/etc/hosts里面添加正确的主机名和IP的映射。

3、使用spark shell

在spark解压后的目录下,执行./bin/spark-shell,可以启动scala shell 并初始化一个sparkcontext对象。

执行./bin/pyspark,则可以在python shell中使用spark。

4、用sbt建立spark scala独立应用程序

(1)写.scala应用程序文件;

(2)写.sbt配置依赖文件;

(3)bash: find . 核对目录结构:

# Your directory layout should look like this
$ find .
.
./simple.sbt
./src
./src/main
./src/main/scala
./src/main/scala/SimpleApp.scala

(4)bash: sbt package  打包;

(5)用spark中的spark-submit运行.jar:

$ YOUR_SPARK_HOME/bin/spark-submit \
--class "SimpleApp" \
--master local[] \
target/scala-2.10/simple-project_2.-1.0.jar

上面的 local[4] 表示程序运行在4个核上面,如果是在集群上面提交任务,则master后面的参数应该是yarn,然后--deploy-mode的参数是cluster;因为--deploy-mode的参数默认是client。

注意:在build.sbt添加新的dependencies library之后,有时会出现classdefnotfoundException这样的错误,解决方法如:

http://stackoverflow.com/questions/28459333/how-to-build-an-uber-jar-fat-jar-using-sbt-within-intellij-idea/28498443#28498443

主要是需要添加一个sbt assembly插件,用来合并依赖库之间定义类的冲突。添加完后,以后运行scala程序就用sbt assembly取代sbt package,然后再submit即可。

5、spark集群查看log命令:

yarn logs -applicationId application_1479387059004_174425 > a
 
spark集群kill掉自己任务的命令:
yarn --config /usr/local/hadoop-2.7.0/etc/hadoop-infosec-radar application -kill application_1479387059004_178692/
 

服务器上搭建spark开发环境的更多相关文章

  1. IDEA上搭建spark开发

    IDEA上搭建spark开发环境 我本地系统是windows10,首先IDEA上要安装了scala插件. 1.下载winutils.exe文件 winutils.exe是在Windows系统上需要的h ...

  2. Intellij IDEA使用Maven搭建spark开发环境(scala)

    如何一步一步地在Intellij IDEA使用Maven搭建spark开发环境,并基于scala编写简单的spark中wordcount实例. 1.准备工作 首先需要在你电脑上安装jdk和scala以 ...

  3. 在WP8上搭建cocos2d-x开发环境

    在WP8上搭建cocos2d-x开发环境 转自:https://github.com/koowolf/cocos-docs/blob/master/manual/framework/native/in ...

  4. 如何在Windows上搭建Android开发环境

    Android开发越来越火,许多小伙伴们纷纷学习Android开发,学习Android开发首要任务是搭建Android开发环境,由于大家 主要实在Windows 上开发Android,下面就详细给大家 ...

  5. PyCharm搭建Spark开发环境 + 第一个pyspark程序

    一, PyCharm搭建Spark开发环境 Windows7, Java 1.8.0_74, Scala 2.12.6, Spark 2.2.1, Hadoop 2.7.6 通常情况下,Spark开发 ...

  6. 如何在 macOS 上搭建 PHP 开发环境

    如何在 macOS 上搭建 PHP 开发环境 Linux, Nginx, MySQL, PHP $ php --version $ php -v # PHP 7.3.11 (cli) (built: ...

  7. Windows系统上搭建Clickhouse开发环境

    Windows系统上搭建Clickhouse开发环境 总体思路 微软的开发IDE是很棒的,有两种:Visual Studio 和 VS Code,一个重量级,一个轻量级.近年来VS Code越来越受欢 ...

  8. 在 macOS 上搭建 Flutter 开发环境

    下载 Flutter SDK flutter官网下载:https://flutter.io/sdk-archive/#macos 若上述链接无法访问,可通过GitHub下载 https://githu ...

  9. Windows上搭建android开发环境

    在搭建android开发环境时需要四部分内容,框架如下 其中Java SDK和Eclipse在java4android中有过介绍,重点介绍ADT和Android SDK的安装. 安装Android S ...

随机推荐

  1. Go语言的学习

    1.配置环境变量 2.本地阅读报的说明和文档 不用FQ window+R  出现黑窗口   执行    godoc -http :8080 在本地浏览器 localhost:8080 回车 3多行注释 ...

  2. 搜索(剪枝优化):HDU 5113 Black And White

    Description In mathematics, the four color theorem, or the four color map theorem, states that, give ...

  3. Win32中文件的操作

    1 文件的创建或打开 HANDLE CreateFile( LPCTSTR lpFileName, //文件路径和名称 DWORD dwDesiredAccess,      //访问方式,最常用的值 ...

  4. js 中 json对象 与 json字符串 间相互转换

    在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键 JSON字符串:  var str1 = '{ " ...

  5. leetcode排列,求第k个排列

    stl 中的下一个排列在写一遍忘了 写个1个多小时,使用递归写的,错误就在我使用一个list保存当前剩下的数,然后利用k/(n-1)!的阶乘就是删除的数字,但进过观察, 比如 list={1,2,3} ...

  6. 折腾iPhone的生活——iOS设备重刷固件

    iOS设备升级系统总共有这么几种方法: 1.OTA升级,也就是我们最常碰到的,在设备上,连上Wifi,在设置里面的软件更新就可以直接通过Wifi安装新的系统(已越狱设备不要这样升级) 2.通过iTun ...

  7. verilog 双向IO实现

    网上搜索了一番,示例挺多,但发现都写的是 input in; output out; 然后  assign io= (oe)?out:1'bz;就有点想不明白了,当IO方向为输出时,应该输出out的值 ...

  8. hdu 4405概率dp

    #include <cstdio> #include <cstring> #include <iostream> #include <cmath> #i ...

  9. linux 监控命令

    先总结下常用的一些监控工具: ##linux命令 w 系统负载 lsof -p pid 进程打开的文件 lsof -i:port 端口的运行情况 free -m 内存情况 vmstat 进程.内存.内 ...

  10. [kuangbin带你飞]专题十 匹配问题 二分图多重匹配

    二分图的多重匹配问题不同于普通的最大匹配中的"每个点只能有最多一条边" 而是"每个点连接的边数不超过自己的限定数量" 最大匹配所解决的问题一般是"每个 ...