码迷,mamicode.com
首页 > 其他好文 > 详细

spark基础知识

时间:2016-05-13 00:27:11      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:

  1. 预备知识

1、如果要跑spark例子程序,最好配置环境变量时,加入如下内容。

省区频繁输入调用jar包。

注意不同的spark版本,对应路径不同。技术分享

2、修改配置文件(这里针对standalone模式)

host文件:

Master(Master):127.0.0.1(名称与IP对应关系)

slave1(Worker):127.0.0.1(名称与IP对应关系)

slave2(Worker):127.0.0.1(名称与IP对应关系)

注意:Master只有一个,slave有好几个。

spark-env.sh文件:

按官方文档要求设置Masterslave的配置参数

对于.sh脚本文件,设置后要用source命令让其马上生效。

slaves文件:

切记:spark根目录下配置文件夹conf下的文件都是.template,即都是模板。

根据需要,我们要对其修改,修改后的文件后缀名就不是template了,是我们自己要求的格式。

为了方便查看,建议复制文件,按照模板格式修改。

3、所有主机必须关闭防火墙。

    1. spark运行shell和示例

    2. spark支持四种语言:scalajavapythonR。对应分别有4中语言的版本。
    3. 注意加载时的路径(公共目录为spark根目录下的examples/src/main)、方式。
    4. 1、运行示例程序
      1.       1.1、运行scalajava示例程序
      2.                  命令./bin/run-example
        			<class> [params]
        1.                  命令将调用spark-submit启动程序。
        2.      1.2、运行python示例程序
        3.                 命令./bin/spark-submit
          								<.py> [params]
        4.                
          								示例如:./bin/spark-submit
          								examples/src/main/python/pi.py 10
        5. 
          								     1.3、运行R示例程序
          1. 
            									               命令:./bin/spark-submit
            									<.R> [params]
          2. 
            									               示例如:./bin/spark-submit
            									examples/src/main/r/dataframe.R
    5. 2、交互方式调用spark.java不是脚本语言,所有没有交互调用方式)
      1.       2.1scala交互:调用./bin/spark-shell
        			(--master local[n])
          1.                  --master
            							local[n]:明确master
            							url即进行数量。
            1.                 
              									这里master设置为local本地,线程数量为n.
            2.                 
              									默认情况下,master也为local,线程数为1.
            3.                 
              									更多关于spark-shell使用方法,参考--help.
        1.       2.2python交互:调用./bin/pyspark
          				(--master local[n])
        2.                  参数设置同上。      
          				        
          				
          1.       2.3R交互:调用./bin/sparkR
            					(--master local[n])
            1.                  参数设置同上。
    6. spark处理过程

      1. 1spark程序有两个很重要的概念,或者说部件。
      2. 2、分别是sparkContext,RDD.
      3. 3、可以对应hadoopmap
        						reduce函数来理解其重要性和执行顺序,但实际上不是一回事。
      4. 4spark启动交互界面后会将source
        						context简化为sc
      5. 5RDD是弹性分布式数据集的简写,是spark处理数据的方式。
    7. spark部署方式

      1. 1Amazon
        						EC2:启动spark速度非常快,需要EC2脚本支持。
      2. 2standalone:部署在私有集群上最简单的方式,便于程序开发和调试。
      3. 3Apache
        						mesos:更通用的方式,可以运行hadoopmap
        						reduce程序和服务。
      4. 4hadoop
        						yarn:运行在yarn上(即mapreduce2.0版本)。
      5. 作为个人开发测试,建议standalone方式。
    8. spark部署方式、交互界面、IDE编程

      1. 1、部署是在本机或者集群上,spark的布置方式。决定程序的运行和资源调度方式。
      2. 2、交互界面是用scalapythonR等脚本语言,调用spark,实现某项小功能。
      3. 3java是程序设计语言,同c/c++.不是脚本语言,所以不能用于交互编程。
      4. 4IDE编程是编写中大型程序是,为了加快速度和效率,在IDE集成环境下,编写基于spark的程序。
      5. 5、交互shell能快速看到运行结果,便于随时修改;IDE便于代码集成、打包.
      6.       
        						这两者在编程中经常穿插使用,提高开发效率。
    9. spark处理过程

1、获得外部数据
2、数据处理:用RDD
API(包括transformationactions
	2.1、转换为新数据(把外部数据)
	2.2、启动job(在cluster执行)

补充说明:
1RDD
APIspark最基本的APIRDD是弹性分布式数据集Resilient
Distributed Dataset
2、在它之上更高级的APImachine
learning APIDataFrame
API.相比基本API,它们提供对数据更精确的操作。
    1. spark程序调试几个疑问

1、现象:java.net.ConnectException:
Call From peter-HP-ENVY-Notebook/127.0.1.1 to localhost:9000 failed
on connection exception: java.net.ConnectException: 拒绝连接。
可能原因:没有访问hdfs的权限,可能是端口设置问题。
		
可能是hdfs.xml文件设置问题。
		
也可能是防火墙问题。(在一台机器上运行spark,应该不是防火墙)
2、示例程序(scala交互界面)中输入README.md
		
没有设置文件路径啊,在哪里得到这个文件。
		
这个文件是在spark的根目录下。
    1. spark编译两种方式

1sbt:需要联网,需要git工具,编译较慢。对应scala语言程序。
2maven:需要联网,需要maven工具,编译较快。对应java语言程序。

spark基础知识

标签:

原文地址:http://blog.csdn.net/qq_23617681/article/details/51348660

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!