Spark新手入门,环境搭建

作者: 数据库信息  发布:2019-10-09

最主要不外乎以下三局地,本文为第三片段:

7.Spark安装

  斯Parker下载地址:     注:搭Spark无需Hadoop,如有hadoop集群,可下载相应的版本。

  澳门金莎娱乐网站 1

  这里设置在CentOS6.5设想机上,将下载好的文件上传虚构机,并实践解压:tar -zxvf spark-2.0.1-bin-hadoop2.6.tgz

  Spark目录:

    bin包涵用来和斯Parker交互的可施行文件,如斯Parker shell。

    examples富含部分单机斯Parker job,能够研商和平运动转这几个事例。

  Spark的Shell:

    斯Parker的shell能够管理布满在集群上的数目。

    斯Parker把数量加载到节点的内部存款和储蓄器中,因而遍及式管理可在秒级实现。

    火速利用迭代式总结,实时查询、分析平时能够在shells中实现。

    Spark提供了Python shells和Scala shells。

  这里以Scala shell为例,演示读取当守田件并实行操作:

    进入Scala shell:./spark-shell

    澳门金莎娱乐网站 2

    创立测验文件hello斯Parker并输入内容:

    澳门金莎娱乐网站 3

    输入val lines=sc.textFile("/home/lucy/hellospark") 加载文件内容,输入lines.count()举办总结行数:    ( 注:sc为spark content)

     澳门金莎娱乐网站 4

  ssh的配置:(ssh localhost须要输入密码,这在运行spark程序时是不得以的)

    ssh-keygen (生成秘钥)

    .ssh目录下cat xxx_rsa.pub> authorized_keys

    chmod 600 authorized_keys

Spark集群(standalone模式)安装

若使用spark对地点文件实行测量试验学习,能够不用安装上边的hadoop遇到,若要结合hdfs使用spark,则能够参见上边包车型大巴步调搭建hadoop。

1. 下载安装包并解压(如:~/tools/spark-2.3.1-bin-hadoop2.7);

  1. 起步服务
    a.启动master

    ./sbin/start-master.sh

b.启动slaves
  可首先登场录 ,获取“Spark URL”

./sbin/start-slave.sh <spark://xxxx-xxx:7077>

 

  1. 开采测量检验程序
    下边开辟二个特级轻易的rdd职责,逻辑(计算hdfs文件中蕴藏单词form的行及行数,并将结果保存到hdfs)仿照效法官网。

a. 使用第一讲中希图好的Scala碰着,成立三个scala maven project:mvn-rdd-test

b. 编写代码

package com.person.test

import org.apache.spark.{SparkConf,SparkContext}
  object MvnRddTest {
    def main(args: Array[String]): Unit = {
      val dataPath = "hdfs://localhost:9000/usr/test/LICENSE.txt"
      val resultPath = "hdfs://localhost:9000/usr/test/result"
      val sc = new SparkContext(new SparkConf().setAppName("Mvn-Rdd-Test"))
      try{
       val accm = sc.longAccumulator("LineAccumulator")
       val rdd = sc.textFile(dataPath,2)
       val sparkDs = rdd.filter(
         line => if(line.contains("form")){
           accm.add(1)
           true
         } else false
       )
       sparkDs.saveAsTextFile(resultPath)
       println(s"Lines that contains 'form' number is: ${accm.value}")
     }catch {
       case e:Exception => e.printStackTrace()
     }finally {
       sc.stop()
     }
   }
}

注:运维该示例必要上传一份文件到(二)的hdfs中,例中的LICENSE.txt来自hadoop安装包。

c. 打含重视项的jar包
pom.xml配置:

    <groupId>com.person.test</groupId>
    <artifactId>mvn-rdd-test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- spark core -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.3.1</version>
        </dependency>

        <!-- hdfs tool -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.7.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-assembly</artifactId>
            <version>0.8.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!-- build java -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.5.5</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.person.test.MvnRddTest</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- build scala -->
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId>
                <version>2.15.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 

双击Maven Projects-->mvn-rdd-test-->Lifecycle-->package就能够达成打包,“mvn-rdd-test-1.0-SNAPSHOT-jar-with-dependencies.jar”即为包涵信任项的包。
注:pom中引进的这两个build插件是必需的,分别用于build java和scala。

d. 测试:

./bin/spark-submit --master spark://xxxx-xxx:7077 --class com.person.test.MvnRddTest ~/Document/IdeaProjects/mvn-rdd-test/target/mvn-rdd-test-1.0-SNAPSHOT-jar-with-dependencies.jar

能够到hdfs上查看运行结果,终端会打字与印刷计数器的值。

只顾:使用maven打包,不要选取Build Artifacts方式打包。

参照他事他说加以考察资料:官方文书档案

后续会时断时续更新斯Parker 库罗德DD、斯Parker DataSet、斯Parker Streaming的用法;

2.Spark的特点

1)斯Parker是高效的

   Spark扩大了流行的Mapreduce计算模型

   斯Parker是依附内部存款和储蓄器的乘除

2)斯Parker是通用的

    斯Parker的规划容纳了其余分布式系统具有的职能

    批管理,迭代式总计,交互查询和流管理等

3)斯Parker是惊人开放的

    斯Parker提供了Python,Java,Scala,SQL的API和增进的内置库。

    斯Parker和别的的大数目工具整合的很好,满含hadoop,kafka等

一. Scala条件准备 查看
二. Hadoop集群(伪分布方式)安装 查看
三. Spark集群(standalone模式)安装

9.编写制定第贰个Scala程序

  依次点击File->New->Project,选用Scala->SBT,下一步,展开如下窗口:

  澳门金莎娱乐网站 5

  这里Scala选用为2.11.6,成立达成后会进行伊始化操作,自动下载jar包等。下载时常看现实互联网状态。待全体进程条完成后,项目目录已经出去了,如下:

  澳门金莎娱乐网站 6

  编辑build.sbt:

  name := "LearnSpark"

  version := "1.0"

  scalaVersion := "2.11.1"

  libraryDependencies = "org.apache.spark" % "spark-core_2.11" % "2.0.2"

  编辑实现后,点击刷新,后台自动下载对应的信任性:

  澳门金莎娱乐网站 7

  src->scala右击新建scala类WordCount

  澳门金莎娱乐网站 8

import org.apache.spark.{SparkContext, SparkConf}
/**
  * Created by Lucy on 2017/7/4.
  */
object WordCount {
  def main(args: Array[String]) {
    val conf=new SparkConf().setAppName("wordcount")
    val sc=new SparkContext(conf)
    val input=sc.textFile("/home/lucy/helloSpark")
    val lines=input.flatMap(line=>line.split(" "))
    val count=lines.map(word=>(word,1)).reduceByKey{case (x,y)=>x y}
    val output=count.saveAsTextFile("/home/lucy/hellosparkRes")
  }
}

  代码编写成功后,进行打包(配置jar包,build):

  配置jar包:File->Project Structure,选择Artifacts,点击 号:

  澳门金莎娱乐网站 9

  澳门金莎娱乐网站 10  

  这里不打包注重。配置jar包完结后,Build->Build Artifacts,等待build完毕。

10.运行第三个斯Parker程序

  这里须要先运行集群:

  启动master:  ./sbin/start-master.sh

  启动worker:  ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://localhost:7077  

        这里的地点为:运营master后,在浏览器输入localhost:8080,查看见的master地址

        澳门金莎娱乐网站 11

  运维成功后,jps查看进程:

  澳门金莎娱乐网站 12

  接下去执行提交命令,将打好的jar包上传到linux目录,jar包在项目目录下的outartifacts下。

  提交作业: ./bin/spark-submit --master spark://localhost:7077 --class WordCount /home/lucy/learnspark.jar

  能够在4040端口查看job进程:

  澳门金莎娱乐网站 13

  查看结果:

  澳门金莎娱乐网站 14

  由于根据空格分割字符串,所以这里将斯Parker! 视为三个单词。至此,任务运维甘休!

6.斯Parker运维条件

  斯Parker是Scala写的,运维在JVM上,所以运维条件Java7

  要是使用Python API,须要安装Python2.6 恐怕Python3.4

  版本对应:斯Parker1.6.2 -  Scala2.10    斯Parker2.0.0 -  Scala2.11

3.Spark的组件

斯Parker包罗四个紧聚焦成的零部件

澳门金莎娱乐网站 15

 Spark Core:

  满含斯Parker的基本成效,满含职责调节,内部存款和储蓄器管理,容错机制等

  内部定义了EvoqueDDs(弹性分布式数据集)

  提供了无数APIs来成立和操作这么些PRADODDs

  应用场景,为任何零件提供底层的服务

Spark SQL:

   是斯Parker管理结构化数据的库,就好像Hive SQL,Mysql一样

  应用场景,公司中用来做报表总括

Spark Streaming:

  是实时数据流管理组件,类似Storm

  斯Parker Streaming提供了API来操作实时代前卫数据

  应用场景,公司中用来从Kafka接收数据坚实时总计

MLlib:

       三个带有通用机械学习效果的包,Machine learning lib

       饱含分类,聚类,回归等,还包涵模型评估和多少导入。

  MLlib提供的地点那么些措施,都补助集群上的横向扩充。

  应用场景,机器学习。

Graphx:

  是管理图的库(举例,社交互连网图),并进行图的并行计算。

  像SparkStreaming,斯Parker SQL一样,它也三番五次了SportageDD API。

澳门金莎娱乐网站 ,  它提供了种种图的操作,和常用的图算法,举例PangeRank算法。

  应用场景,图总计。

Cluster Managers:

  就是集群管理,斯Parker自带二个集群管理是独自调节器。

  常见集群管理包蕴Hadoop YA福睿斯N,Apache Mesos

本文由金沙澳门官网发布于数据库信息,转载请注明出处:Spark新手入门,环境搭建

关键词: 金沙澳门官网

上一篇:斯Parker新手入门
下一篇:没有了