1、Spark脚本提交/运行/部署11spark-shell(交互窗口模式)运行Spark-shell需要指向申请资源的standalonespark集群信息,其参数为MASTER,还可以指定executor及driver的内存大小。sudospark-shell--executor-memory5g--driver-memory1g--masterspark://192168180216:7077spark-shell启动完后,可以在交互窗口中输入Scala命令,进行 *** 作,其中spark-shell已经默认生成sc对象,可以用:valuser_rdd1=sctextFile(inputpath,10)读取数据资源等。12spark-shell(脚本运行模式)上面方法需要在交互窗口中一条一条的输入scala程序;将scala程序保存在testscala文件中,可以通过以下命令一次运行该文件中的程序代码:sudospark-shell--executor-memory5g--driver-memory1g--masterspark//192168180216:7077
让我幸福的是,在netbeans写的hello world编译成功了。原来一直没有成功过。介绍一下出错情况,免得有人再走冤枉路吧。。
1、由于我是采用了netbeans for php,因此在安装的scala插件时提示我没有JDK,下载完JDK后,在netbeans/etc/netbeansconf中指定jdk的路径
2、重启netbeans,进入插件栏,再选择scala。
3、会帮我安装涉及到的一些包,大约有10个左右(没事,这个是自动识别的)
4、安装完重启后,再进行插件栏,选择Scala,终于可以安装了。
5、新建Scala项目,会有一个简单的hello world,OK,直接按F6进行调试,会发现错误,告诉你没有在启动的时候设定Dscalahome的路径。
6、下载scala源码(好象用28的较好吧?),扔到某个目录下。如:d:\program files\scala,修改netbeans/etc/netbeansconf文件,在netbeans_default_options的选项的最后加上:-J-Dscalahome=d:\progra~1\scala ,请仔细看好左边的字,路径是d:\progra~1\scala,而不是完整的d:\program files\scala,因为完整的路径有空格,所以导致路径每次都认为是/netbeans/files/scala也没有找到类似资料。。。
7、重启netbeans,按下F6,输出:
XML/HTML代码
init:
deps-jar:
Compiling 1 source file to D:\My Documents\NetBeansProjects\ScalaApplication1\build\classes
No changes to recompile
compile:
run:
Hello, world!
BUILD SUCCESSFUL (total time: 6 seconds)
OK,至此一切正常。
全局路径好象没啥用。
后来我干脆是根据出错信息自己改了改(其实就是那个Dscalahome的路径,原来一直是采用完整路径所以一直失败。)
下载与配置IDEA
里面有Ultimate(最终版)和Community(社区版),对于普通的开发者来说,社区版就够了,然后因为我本来配置了JDK所以就下载无JDK版本的了。
下载好了找个合适的地方解压,之后要配置一下
sudo gedit /etc/profile1
之后添加
export IDEA_JDK=/usr/java/jdk180_1211
否则IDEA找不到JDK可别怪我
这样你就能成功打开IDEA了
//进入idea安装目录下运行fish@fish-computer:~/workspace/idea/bin$ /ideash12
你的第一个scala程序
首先要安装scala组件,File->Setting->Plugins->scala 然后安装就可以了(就是那里Uninstall,没安装的话应该是Install)
然后new 一个project,选择sbt
进去之后命名什么的,然后第一次进底下会配置好多乱七八糟的东西,你需要等一会(我等了五六分钟吧)
然后在这个目录下右键new一个scala class
然后ctrl+j快捷创建main函数和prinln
object HelloWorld { def main(args: Array[String]): Unit = {println("hello world")
}
}123456
然后直接run起来就可以啦
阅读全文
1、Spark脚本提交/运行/部署11spark-shell(交互窗口模式)运行Spark-shell需要指向申请资源的standalonespark集群信息,其参数为MASTER,还可以指定executor及driver的内存大小。sudospark-shell--executor-memory5g--driver-memory1g--masterspark://192168180216:7077spark-shell启动完后,可以在交互窗口中输入Scala命令,进行 *** 作,其中spark-shell已经默认生成sc对象,可以用:valuser_rdd1=sctextFile(inputpath,10)读取数据资源等。12spark-shell(脚本运行模式)上面方法需要在交互窗口中一条一条的输入scala程序;将scala程序保存在testscala文件中,可以通过以下命令一次运行该文件中的程序代码:sudospark-shell--executor-memory5g--driver-memory1g--masterspark//192168180216:7077
在IDE上的设置
首先 下载的IntelliJ IDEA的 x(社区版) 因为目前它是最好的Scala的IDE 然后选择File |设置|插件 选择可用的选项卡来安装Scala插件
创建Maven项目
在IntelliJ IDEA中 选择文件|新建项目 然后选择Maven的模块创建一个Maven项目 然后修改如下所示的pom xml 添加所有你需要的设置 建立Scala的汇编语言
<project xmlnsxmlns= xmlns:xsi= instance
xsi:schemaLocation= v _ _ xsd >
<modelVersion> </modelVersion>
<groupId> foo</groupId>
<artifactId>myapp</artifactId>
<packaging>war</packaging>
<version> SNAPSHOT</version>
<name>myapp Java EE Webapp</name>
<url>;/url>
<properties>
<spring version> RELEASE</spring version>
</properties>
<repositories>
<repository>
<id> </id>
<name>Repository hosting the jee artifacts</name>
<url>;/url>
</repository>
<repository>
<id></id>
<name>Scala tools Maven Repository</name>
<url>;/url>
</repository>
<repository>
<id>wpt release</id>
<url> repo/releases</url>
</repository>
<repository>
<id>wpt snapshot</id>
<url> repo/snapshots</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id></id>
<name>Scala tools Maven Repository</name>
<url>;/url>
</pluginRepository>
</pluginRepositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId> springframework</groupId>
<artifactId>spring context</artifactId>
<version>${spring version}</version>
</dependency>
<dependency>
<groupId> springframework</groupId>
<artifactId>spring core</artifactId>
<version>${spring version}</version>
</dependency>
<dependency>
<groupId> springframework</groupId>
<artifactId>spring web</artifactId>
<version>${spring version}</version>
</dependency>
<dependency>
<groupId> springframework</groupId>
<artifactId>spring orm</artifactId>
<version>${spring version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId> h database</groupId>
<artifactId>h </artifactId>
<version> </version>
</dependency>
<dependency>
<groupId> hibernate</groupId>
<artifactId>hibernate entitymanager</artifactId>
<version> GA</version>
</dependency>
<dependency>
<groupId> springframework</groupId>
<artifactId>spring orm</artifactId>
</dependency>
<dependency>
<groupId>dev</groupId>
<artifactId>wpt core</artifactId>
<version> SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>dev</groupId>
<artifactId>wpt runtime spring</artifactId>
<version> SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee web api</artifactId>
<version> </version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version> </version>
<scope>test</scope>
</dependency>
<dependency>
<groupId> scala lang</groupId>
<artifactId>scala library</artifactId>
<version> RC </version>
</dependency>
<dependency>
<groupId> apache wicket</groupId>
<artifactId>wicket</artifactId>
<version> </version>
</dependency>
<dependency>
<groupId> slf j</groupId>
<artifactId>slf j log j </artifactId>
<version> </version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId> apache maven plugins</groupId>
<artifactId>maven piler plugin</artifactId>
<version> </version>
</plugin>
<plugin>
<groupId> scala tools</groupId>
<artifactId>maven scala plugin</artifactId>
<version> </version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId> apache maven plugins</groupId>
<artifactId>maven piler plugin</artifactId>
<executions>
<execution>
<phase>pile</phase>
<goals>
<goal>pile</goal>
</goals>
</execution>
</executions>
<configuration>
<source> </source>
<target> </target>
</configuration>
</plugin>
<plugin>
<groupId> apache maven plugins</groupId>
<artifactId>maven war plugin</artifactId>
<version> beta </version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId> scala tools</groupId>
<artifactId>maven scala plugin</artifactId>
<executions>
<execution>
<id>scala pile first</id>
<phase>process resources</phase>
<goals>
<goal>add source</goal>
<goal>pile</goal>
</goals>
</execution>
<execution>
<id>scala test pile</id>
<phase>process test resources</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>myapp</finalName>
</build>
</project>
web xml中设置
接下来 修改main/webapp/WEB INF/web xml 从而确立了Wicket的过滤器 打开Spring的JPA实体管理器和Spring监听器 进行Spring的初始化
<xml version= encoding= UTF >
<web app version= xmlns= xmlns:xsi= instance
xsi:schemaLocation= app_ _ xsd >
<filter>
<filter name>f </filter name>
<filter class> springframework orm jpa support OpenEntityManagerInViewFilter</filter class>
</filter>
<filter>
<filter name>f </filter name>
<filter class> apache wicket protocol WicketFilter</filter class>
<init param>
<param name>applicationClassName</param name>
<param value> foo myapp MyApp</param value>
</init param>
</filter>
<filter mapping>
<filter name>f </filter name>
<url pattern>/app/</url pattern>
</filter mapping>
<filter mapping>
<filter name>f </filter name>
<url pattern>/</url pattern>
</filter mapping>
<context param>
<param name>contextConfigLocation</param name>
<param value>classpath:/beans xml</param value>
</context param>
<listener>
<listener class> sprntext ContextLoaderListener</listener class>
</listener>
</web app>
设置Spring bean访问和调用的数据库
要定义这些Spring bean 创建main/resources的beans xml以及一下的内容
<xml version= encoding= UTF >
<beansxmln eansxmlns=
xmlns:xsi= instance
xmlns:context=
xmlns:tx=
xsi:schemaLocation=
beans xsd
context xsd
tx xsd >
<context:ponent scan base package= foo myapp />
<bean id= emf class= springframework orm jpa LocalContainerEntityManagerFactoryBean >
<property name= persistenceXmlLocation value= classpath:/META INF/my persistence xml />
</bean>
<bean id= transactionManager class= springframework orm jpa JpaTransactionManager >
<property name= entityManagerFactory ref= emf />
</bean>
<tx:annotation driven />
</beans>
读取数据库配置中persistence xml文件 在这里 您将获得一个主目录中名为MyApp的H 数据库 因此 创建main/resources/META INF文件的内容如下
<persistencexmlnspersistencexmlns=
xmlns:xsi= instance
xsi:schemaLocation= _ _ xsd
version= >
<persistence unit name= myapp transaction type= RESOURCE_LOCAL >
<provider> hibernate ejb HibernatePersistence</provider>
<properties>
<propertynamepropertyname= nnection driver_class value= h Driver />
<property name= nnection url value= jdbc:h :tcp://localhost/~/myapp />
<propertynamepropertyname= nnection username value= sa />
<propertynamepropertyname= nnection password value= />
<property name= hibernate dialect value= hibernate dialect H Dialect />
<property name= hibernate hbm ddl auto value= create />
</properties>
</persistence unit>
/persistence>
创建Wicket的页面
在这里 您将创建一个Wicket页面显示从数据库加载一些内容 因此 创建主/Scala文件夹 右键单击它并选择新建|Scala类 命名为我的页面类和投入 foo myapp包中 如下所示
package foo myapp
import apacl _
import basic Label
import list {ListItem ListView}
import apache wicket spring injection annot SpringBean
import apache wicket model CompoundPropertyModel
class MyPage extends WebPage {
@SpringBean
var ps: ProductService = _
val productListView = newListView[Product]( productListView ps getAll) {
def populateItem(item: ListItem[Product]) = {
item setModel(newCompoundPropertyModel[Product](item getDefaultModelObject))
item add(new Label( name ))
item add(new Label( price ))
}
}
add(productListView)
}
请注意 在创建ProductService对象加载的文件之后使用 此外 请注意该字段被分配到一个下划线(_) Scala编译为不可初始化的 而是留在默认状态 在你将覆盖作为编译之前 执行Spring bean的页面构造 现在 创建在src/main/resources//foo/myapp的的l文件
<!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN >
<>
<table border= >
<tr wicket:id= productListView >
<td wicket:id= name ></td>
<td wicket:id= price ></td>
</tr>
</table>
</>
创建ProductService
右键单击在in the src/main/scala文件夹中的 foo myapp包并选择New | Scala的类 然后选择创建ProductService
package foo myapp
import java util List
trait ProductService {
def getAll: List[Product]
}
这是接口 对创造一个DefaultProductService的Scala在同一个包内进行执行 *** 作
package foo myapp
import javax persistence {PersistenceContext EntityManager}
import springframework stereotype {Service}
import springframework transaction annotation Transactional
import springframework beans factory annotation Autowired
@Service
@Transactional
class DefaultProductService extends ProductService {
@Autowired
var products: Products = _
def getAll = products getAll
}
请注意 把它使用类型文件命名为DAO
创建文件的DAO
要创建的DAO 创建一个名为在同一文件夹
package foo myapp
import java util List
trait Products {
def getAll: List[Product]
}
然后创建在同一文件夹中的执行Scala的DefaultProducts文件
package foo myapp
import javax persistence {PersistenceContext EntityManager}
import springframework stereotype Repository
import java util List
@Repository
class DefaultProducts extends Products {
@PersistenceContext
var em: EntityManager = _
def getAll = {
em createQuery( select p from Product p ) getResultList asInstanceOf[List[Product]]
}
}
创建entity程序
创建entity程序并将其映射到数据库
package foo myapp
import javax persistence {GeneratedValue Id Entity}
@Entity
class Product {
@Id
@GeneratedValue
var id: Long = _
var name: String = _
var price: Double = _
}
创建Wicket的应用程序
最后 创建在同一个MyApp的Scala程序
package foo myapp
import apache wicket protocol WebApplication
dev wicketpagetest MockableSpringBeanInjector
class MyApp extends WebApplication {
def getHomePage = classOf[MyPage]
override def init = {
MockableSpringBeanInjector installInjector(this)
}
}
在这里 您指定为首页我的目录 植入Spring Bean中
运行应用程序
随着IntelliJ IDEA的版本不断改进 您将嵌入到应用服务器运行您的应用程序 这非常容易 在刚刚创建的测试 foo myapp的ManualTest在刚刚创建的测试 foo myapp包一类ManualTest/scala文件(不是main/scala文件) 以下内容是
package foo myapp
dev wicketpagetest {WebAppJettyConfiguration WicketAppJettyLauncher}
object ManualTest {
def main(args: Array[String]) {
val l = new WicketAppJettyLauncher
l startAppInJetty(new WebAppJettyConfiguration)
}
}
要运行的应用程序 首先需要运行数据库服务器上的H 程序 所以 在下载和解压 然后变成h /bin和运行h bat(或在Linux上h sh) ManualTest是在IDEA的编辑器上 在IDEA选择运行DEA 它将运行ManualTest Jetty的运行您的应用程序
为了测试它 请尝试通过在浏览//localhost: /app
不知道各位感觉如何 感谢各位支持!谢谢!
lishixinzhi/Article/program/Java/hx/201311/26175
这个问题我解决了,在设置SparkConf()的时候,需要把本机生成的JAR包路径进行制定,如:
val conf = new SparkConf()setAppName("SogouResult")setMaster("spark://master:7077")
setJars(List("D:\\IDEA workspace\\helloSpark\\out\\artifacts\\helloSpark_jar\\helloSparkjar"))
Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。Scala是函数式的:Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher-order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中都被使用。Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被使用。Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。任何方式可以被用作中缀(infix)或后缀(postfix) *** 作符闭包按照所期望的类型(目标类型)自动地被构造Scala可与Java和NET进行互 *** 作:Scala设计时就考虑了与流行编程环境良好交互,如Java2运行时环境(JRE)和NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载类),允许访问成千上万的高质量类库。对于某些开发者来说,这些刺激已足以引诱他们脱离Java进入Scala世界。但对另外一些开发者来说,它们并没有为Java世界里当前正在演绎的日复一日的编程活动提供好处。在一篇名为“Scala:集Ruby和Java之所长”的博文中,Ian讲述了或许不应在Java和Scala之间做出选择,相反,相对于选择其它语言如Ruby,选择使用Java和Scala的混合物是的另一种选择:许多开发者热爱Ruby,不过他们不能从中获取足够的东西。它可能是最具侵略性的语言之一,因为Java才是第一个到场的。人们总是引证Ruby的灵活而可扩展的语法、闭包等特性,以及其代码如何简明和具有表现力。例如,你可以用一个简单语法创建一个Map(Ruby称之为“hashes”,尽管hashtable只是map一种可能的实现方式),如:numberMap={"one"=>1,"two"=>2,"three"=>3}Java与之对等的语句显得颇为冗长:MapnumberMap=newHashMap();numberMapput("one",1);numberMapput("two",2);numberMapput("three",3);那么Scala怎么样呢?让我们看看Scala中map的例子:varnumberMap=Map("one"->1,"two"->2,"three"->3)你会注意到它看上去非常类似等价的Ruby代码,但是这儿有一些重要区别。特别是,就像Java,Scala编译器知道numberMap使用String作为键,Integer作为值。与Java不同的是,你无需告知,它本身就能领会这一点!这称为“类型推理(typeinference)”。这意味着如果你试图给numberMap增加一个新的键值对,但是要使用Integer作为键,String作为值,Scala将在你试图编译它时立刻报错(或者你的IDE将立刻警告你)。使用Ruby,只有当你运行你的软件并试图从该Map中找回该键和值时,得到的分别是Integer和String而不是所期望的String和Integer,这时才会导致报错。过分强调编译时类型检查节省多少多少时间是困难的,但它消除了所有类在执行时将会产生的bug。Scala给你带来了这一好处,而且代码并不繁琐。为更进一步在一个小例子中展现代码量的缩减,TedNeward研究了开发同一个类,用Java、C#、VirualBasic、Ruby和Scala的区别。请参考其博文Scalapt2:简短。Ian继续指出:Scala还有一连串其它好的Ruby特性(Java所缺乏的),包括闭包,以及非常适合“领域特定语言”的可塑性语法。它拥有所有这些特性,而且结合了静态类型好处。DavidMacIver在其博文说正经的,为什么选择Scala?中分享了他对于面向对象编程、面向模块编程、静态类型、函数编程以及该语言中他所喜欢的未言明特性的观点。他补充道:Scala离完美还差得远。它有一些语法缺陷,一些由Java带来的问题,一个有适度问题的编译器以及一堆你记不住的琐碎特性和边界情况(edgecase)。然而,我发现这些问题除了烦你之外并不真正产生什么后果。如果只是想坐下来书写好的代码,该语言的核心是强大的和非常有用的。为了提供一个均衡的观点,David在其博文中接着探讨了为什么不选Scala,文中他阐述了一些边界情况(edgecase)。作为总结,David有如下评论:总而言之,我发现这些只是增加了一些烦心事。它仍是我最喜欢的JVM语言,但是你的看法将取决于你怎样搁置那些对你来说可能是更重要的需要优先考虑的事情。为了展现Scala是一门不断成熟的语言,ProgramminginScala一书很快将会出版。如果等不及,Artima网站上有该书PDF格式的预印版。
以上就是关于如何运行含spark的python脚本全部的内容,包括:如何运行含spark的python脚本、scala 程序怎么调试debug、idea怎么在线安装scala并且启动'等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)