idea安装sbt插件linux,【idea】scala&sbt+idea安装配置与测试

1、IDEA安装java

下载Community版的IDEA,Ultimate是免费试用版(至关于用到后面要给钱的)linux

ideaIC-2019.2.3.tar.gzredis

解压IDEA:apache

tar -zxvf ideaIC-2019.2.3.tar.gzjson

查看目录:多线程

[hadoop@hadoop01 idea-IC-192.6817.14]$ ls -ll

total 52

drwxrwxr-x. 2 hadoop hadoop 4096 Oct 2 22:08 bin

-rw-r--r--. 1 hadoop hadoop 14 Sep 24 12:43 build.txt

-rw-r--r--. 1 hadoop hadoop 1914 Sep 24 12:43 Install-Linux-tar.txt

drwxrwxr-x. 7 hadoop hadoop 83 Oct 2 22:08 jbr

drwxrwxr-x. 4 hadoop hadoop 8192 Oct 2 22:08 lib

drwxrwxr-x. 2 hadoop hadoop 4096 Oct 2 22:08 license

-rw-r--r--. 1 hadoop hadoop 11352 Sep 24 12:43 LICENSE.txt

-rw-r--r--. 1 hadoop hadoop 128 Sep 24 12:43 NOTICE.txt

drwxrwxr-x. 43 hadoop hadoop 4096 Oct 2 22:08 plugins

-rw-r--r--. 1 hadoop hadoop 370 Sep 24 12:46 product-info.json

drwxrwxr-x. 2 hadoop hadoop 35 Oct 2 22:08 redist

启动iedea:app

[hadoop@hadoop01 bin]$ ./idea.sh

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

Startup Error: Unable to detect graphics environment

报错:Unable to detect graphics environment框架

解决办法:不要在外面经过远程的方式执行此启动命令,要在linux图形界面中打开终端来执行此命令dom

在linux终端中执行命令启动idia:ide

[hadoop@hadoop01 ~]$ cd idea-IC-192.6817.14

[hadoop@hadoop01 idea-IC-192.6817.14]$ bin/idea.sh

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

下载安装scala插件

将scala-intellij-bin-2019.2.3.zip放在scala主目录plugins文件夹里

注:scala插件必定要与idea版本对应,如个人就是:scala-intellij-bin-2019.2.3.zip对应ideaIC-2019.2.3.tar.gz

f7a6dd20eb9c972d7140b9b8f62a64bc.png

再在启动的idea中找到setting里面的plugins中选择install plugin from disk…

3cee3c3c77ea99cc711a696b1c11b8b1.png

选中插件包

858f5e84e119cc3a978fcc402d696e86.png

最后重启idea,便可。

2、IDEA

使用

建立scala新工程

348d3bebd8fb14f370534a61b868c641.png

f2c70be63d7b6164f69b9ee40ae21c48.png

注:选择IDEA即是建立普通的Scala项目(注:IJ IDEA版本的不一样,这里IDEA可能显示成Scala,不过这个并无什么影响)

工程的基本页面设置:

a3a72fac1454c04d6ae2af917639b262.png

其中:

project name:工程名称

project location:工程文件地址

jdk:使用的java version版本,未找到时,本身选择jdk的安装目录

scala SDK:使用scala版本,未找到时,本身选择scala的安装目录

点击finish后,进入设计主页面

355785787ba6b99d6b10447dc3a3a393.png

这个时候,第一次系统会对设置进行索引。

这里须要指出,IDEA对新工程的索引须要时间,长短视虚拟机的配置而定

在src处右键new—package,准备建立一个scala包

d94ad69a42d5cc00f17fa13b80056366.png

Package name:com.hadoop

配置工程结构(project structure),为了导入spark依赖包

依次选择主界面的file-- project structure,在弹出的对话框中选择librarie --+--java,选择虚拟机中已安装spark目录下的jars下全部的jar包

839bde9bfffd3724f7eeb03dbb1a662a.png

点击OK后,系统会再次进行索引

9215bcd48d0a5564d670123aec455edc.png

建立scala类

在com.hadoop包上右键new – scala class,弹出以下界面

e77ae705150dce0fcd5214cf96bddfb1.png

输入sparkPi,并选择object

deb715ddb5b349f3157dbaa768cd8f18.png

运行以前,须要修改运行参数

在主界面选择run菜单中的editconfigurations,在弹出的对话框中左上角点击“+”,在弹出的列表中,选择application,填写运行参数:

ede1e9f79a5971892c16d123adfdc7b8.png

修改的参数有三个:

Name:sparkPi

Main class:com.hadoop.sparkPi

VM options:-Dspark.master=local -Dspark.app.name=sparkPi

注:VM options也能够不填写,可是要在代码中加入

.setMaster("local").setAppName("sparkPi")

填写完成后,直接点击OK

3、测试

一、测试程序:

package com.hadoop

import scala.math.random

import org.apache.spark._

object sparkPi {

def main(args: Array[String]) {

println("Hello, World!")

}

}

Run程序后,结果以下:

6ee163e131b8ba841c07067a26efc217.png

二、编写工程:

package com.hadoop

import scala.math.random

import org.apache.spark._

object sparkPi {

def main(args: Array[String]) {

val conf = new SparkConf().setMaster("local").setAppName("sparkPi")

val spark = new SparkContext(conf)

val slices = if (args.length > 0) args(0).toInt else 2

val n = 10000 * slices

val count = spark.parallelize(1 to n, slices).map { i =>

val x = random * 2 - 1

val y = random * 2 - 1

if (x * x + y * y<1) 1 else 0

}.reduce(_ + _)

println("Pi is roughly " + 4.0 * count / n)

spark.stop()

}

}

第一次运行结果:

报错:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream

at org.apache.spark.SparkConf.loadFromSystemProperties(SparkConf.scala:76)

at org.apache.spark.SparkConf.(SparkConf.scala:71)

at org.apache.spark.SparkConf.(SparkConf.scala:58)

at com.hadoop.sparkPi$.main(sparkPi.scala:9)

at com.hadoop.sparkPi.main(sparkPi.scala)

Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream

at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

... 5 more

缘由:缺乏对应的依赖包

解决办法:下载spark-2.4.4-bin-hadoop2.6,将里面jars包拷贝进去,或者直接从新配置spark-2.4.4-bin-hadoop2.6

第二次运行结果:

报错:

Exception in thread "main" java.lang.IllegalArgumentException: System memory 425197568 must be at least 471859200.

Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.

缘由:Spark是很是依赖内存的计算框架,在虚拟环境下使用local模式时,其实是使用多线程的形式模拟集群进行计算,于是对于计算机的内存有必定要求,这是典型的由于计算机内存不足而抛出的异常。

解决办法:

在下面这出代码后面添加:“.set("spark.testing.memory","2147480000")”,其实上面的错误提醒了的,如“Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.”

val conf = new SparkConf().setMaster("local").setAppName("sparkPi") //添加后

第三次运行(成功):

结果:Pi is roughly 3.1304

9921c3e256103fbcc35b7fbb93fe5c33.png

附_完整测试代码:

package com.hadoop

import scala.math.random

import org.apache.spark._

object sparkPi {

def main(args: Array[String]) {

val conf = new SparkConf().setMaster("local").setAppName("sparkPi").set("spark.testing.memory","2147480000")

val spark = new SparkContext(conf)

val slices = if (args.length > 0) args(0).toInt else 2

val n = 10000 * slices

val count = spark.parallelize(1 to n, slices).map { i =>

val x = random * 2 - 1

val y = random * 2 - 1

if (x * x + y * y<1) 1 else 0

}.reduce(_ + _)

println("Pi is roughly " + 4.0 * count / n)

spark.stop()

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值