spark初体验

原创 2016年03月31日 23:31:28

        现在这个美好的时代,作为一个技术人,如果连Spark的大名都不知道,那显然是说不过去的,话说大数据的时候,必提Hadoop、Spark。我跟进Spark也好些日子,这次用最新搭建的Hadoop实验集群用最新的Spark来体验了一把酸甜苦辣!

        环境信息:

        centos 6.7 64位  

        Hadoop-2.7.2(QJM HA) 

        Spark-1.6.1

        scala 2.10.5

     

        我用的是Standalone模式,hadoop-2.7.2已经安装好,并且支持LZO压缩,Hive-1.2.1运行良好,spark和hadoop都运行在同一个用户和用户组下(hadoop:hadoop),HADOOP_HOME=/home/hadoop/hadoop-2.7.2,spark和Hadoop混合部署,在有hadoop的节点上都部署spark。

        直接下载:http://www.apache.org/dyn/closer.lua/spark/spark-1.6.1/spark-1.6.1-bin-without-hadoop.tgz,解压缩后做如下变更即可试运行spark了。

      (1)变更spark-env.sh文件内容

#SYSTEM
JAVA_HOME=/usr/local/jdk
SCALA_HOME=/usr/local/scala
HADOOP_HOME=/home/hadoop/hadoop-2.7.2
HADOOP_CONF_DIR=/home/hadoop/hadoop-2.7.2/etc/hadoop
SPARK_DIST_CLASSPATH=$(/home/hadoop/hadoop-2.7.2/bin/hadoop classpath) 
#SPARK_DIST_CLASSPATH=$(hadoop --config /home/hadoop/hadoop-2.7.2/etc/hadoop classpath)
#export SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/home/hadoop/hadoop-2.7.2/share/hadoop/tools/lib/*"
#spark
SPARK_HOME=/home/hadoop/spark
SPARK_MASTER_IP=lrts5
SPARK_WORKER_CORES=4
SPARK_WORKER_INSTANCES=1
SPARK_WORKER_MEMORY=4g
SPARK_EXECUTOR_CORES=1
SPARK_EXECUTOR_MEMORY=1g
#spark
SPARK_WORKER_DIR=/home/hadoop/spark/work
SPARK_LOG_DIR=/home/hadoop/spark/logs
SPARK_PID_DIR=/home/hadoop/spark/pid
#LZO
export SPARK_CLASSPATH=/home/hadoop/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20-SNAPSHOT.jar 
export SPARK_CLASSPATH=$SPARK_CLASSPATH:$CLASSPATH
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=/home/hadoop/hadoop-2.7.2/etc/hadoop

      (2)变更slave文件内容

lrts5
lrts6
lrts7
lrts8
      (3)将Hadoop的hdfs-site.xml 和core-site.xml文件复制到spark/conf目录下

      (4)追加如下内容到 spark-defaults.conf文件

spark.files file:///home/hadoop/spark/conf/hdfs-site.xml,file:///home/hadoop/spark/conf/core-site.xml
          如果不加这个,会有如下问题发生:

java.lang.IllegalArgumentException: java.net.UnknownHostException: mycluster
    at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:418)
    at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:231)
    at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:139)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:510)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:453)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:136)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2433)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:88)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2467)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2449)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:367)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:287)
    at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:221)
    at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:270)
    at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:172)
    at org.apache.spark.rdd.RDD

      (5)读取hdfs中的lzo文件,并且分片来执行

import org.apache.hadoop.io._
import com.hadoop.mapreduce._
val data = sc.newAPIHadoopFile[LongWritable, Text, LzoTextInputFormat]("hdfs://mycluster/user/hive/warehouse/logs_app_nginx/logdate=20160322/loghost=70/var.log.nginx.access_20160322.log.70.lzo")
data.count()
      (6)读取hdfs中的通配符表示的目录和子目录下文件,并且分片来执行
import org.apache.hadoop.io._
import com.hadoop.mapreduce._
val dirdata = sc.newAPIHadoopFile[LongWritable, Text, LzoTextInputFormat]("hdfs://mycluster/user/hive/warehouse/logs_app_nginx/logdate=20160322/loghost=*/")
dirdata.count()


参考:

http://stackoverflow.com/questions/33174386/accessing-hdfs-ha-from-spark-job-unknownhostexception-error

Spark配置参数详解

以下是整理的Spark中的一些配置参数,官方文档请参考Spark Configuration。 Spark提供三个位置用来配置系统: Spark属性:控制大部分的应用程序参数,可以用SparkCon...
  • guohecang
  • guohecang
  • 2016年08月01日 20:26
  • 31067

spark的安装和使用

spark最近出了2.0版本,其安装和使用也发生了些许的变化。笔者的环境为:centos7. 该文章主要是讲述了在centos7上搭建spark2.0的具体操作和spark的简单使用,希望可以给刚...
  • ouyangyanlan
  • ouyangyanlan
  • 2016年08月29日 18:01
  • 31321

Spark集群安装(h15\h16\h18上)

Spark集群安装(h15\h16\h18上)
  • high2011
  • high2011
  • 2016年06月07日 09:53
  • 534

安装spark,基于hadoop的

安装Scala 安装spark之前先安装scala,scala下载地址 下载最新的版本就行,我的是scala-2.11.8.tgz在home中创建scala文件夹 mkdir scala(根据自...
  • ling811
  • ling811
  • 2016年07月13日 16:55
  • 1601

spark源码学习(二)------------spark-shell启动分析

上一节学习了spark源码的编译方法,这一节我们跟踪一下spark-shell的启动. spark-shell是spark提供一个控制台,通过它我们可以方便的学习spark的API,类似于scala的...
  • happyAnger6
  • happyAnger6
  • 2015年04月23日 23:29
  • 5270

Spark计算Pi运行过程详解---Spark学习笔记4

上回运行了一个计算Pi的例子 那么Spark究竟是怎么执行的呢? 我们来看一下脚本 #!/bin/sh export YARN_CONF_DIR=/home/victor/software/h...
  • u014388509
  • u014388509
  • 2014年03月31日 00:09
  • 7715

spark jar包方式运行hive步骤

1,用maven install 打包 2,配置好下面的脚本,其中--driver-class-path要选择mysql的jar包所在的目录,另外有博客说可以在spark-env指定 export S...
  • u011007180
  • u011007180
  • 2016年08月23日 21:27
  • 1250

spark-submit的参数files

参考:http://blog.csdn.net/book_mmicky/article/details/25714545 –files FILES 用逗号隔开的要放置在每...
  • u012307002
  • u012307002
  • 2016年12月28日 17:26
  • 2070

spark-submit使用及说明

一、命令  1.向spark standalone以client方式提交job。 ? 1 ./spark-submit --master s...
  • wwwxxdddx
  • wwwxxdddx
  • 2016年04月27日 15:56
  • 13664

java.lang.IllegalArgumentException: java.net.UnknownHostException: user 错误解决

在spark-shell环境运行官网实例,每次涉及action操作,总出现错误: java.lang.IllegalArgumentException: java.net.UnknownHostEx...
  • heming621
  • heming621
  • 2016年11月24日 10:30
  • 3419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spark初体验
举报原因:
原因补充:

(最多只允许输入30个字)