SPARK安装在Hadoop2.7

A.SPARK安装(Hadoop2.7环境已安装好)                 李万鸿

1.   安装Scala

用户需要根据Spark官方规定的Scala版本进行下载和安装。

Scala官网地址为http://www.scala-lang.org。

以Scala-2.11.4为例进行介绍。

1)  下载Scala-2.11.7.tgz。

wget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz

2)  在目录下解压

tar  –zxvf scala-2.11.7.tgz

[hadoop@cmanager jars]$ sudo tar -zxvf scala-2.11.7.tgz

[hadoop@cmanager jars]$sudo mv scala-2.11.7 /gtabigdata/soft/scala

[hadoop@cmanager jars]$ sudo chown -R hadoop:hadoop/gtabigdata/soft/scala

3)  配置环境变量,在/etc/profile中添加下面的内容。

vim /etc/profile

#scala

export  SCALA_HOME=/gtabigdata/soft/scala

export  PATH=$PATH:${SCALA_HOME}/bin

4)  使profile文件更新生效

source  /etc/profile

2.   安装Spark

进入官网下载对应Hadoop版本的Spark程序包,官网地址为http://spark.apache.org/downloads.html

由于Hadoop已安装2.7的版本,Spark最新版本是1.4.1

wget http://archive.apache.org/dist/spark/spark-1.4.1/spark-1.4.1-bin-hadoop2.6.tgz

下载spark-1.0.2-bin-hadoop2.tgz

1)         解压tar  –zxvf  spark-1.4.1-bin-hadoop2.6.tgz

[hadoop@cmanager jars]$sudo tar  -zxvf  spark-1.4.1-bin-hadoop2.6.tgz

[hadoop@cmanager jars]$sudo mv  spark-1.4.1-bin-hadoop2.6/gtabigdata/soft/spark

[hadoop@cmanager jars]$chown -R  hadoop:hadoop/gtabigdata/soft/spark

2)         配置conf/spark-env.sh

[hadoop@cmanager conf]$cp spark-env.sh.template spark-env.sh

<1> 用户可以配置基本的参数,其他更复杂的参数请参加官网的配置(Configuration)页面,Spark配置地址为:http://spark.apache.org/docs/latest/configuration.html

<2> 编辑conf/spark-env.sh文件,加入下面的配置参数。

vim/gtabigdata/soft/spark/conf/spark-env.sh

exportSCALA_HOME=/gtabigdata/soft/scala/

exportSPARK_WORKER_MEMERY=5g

exportSPARK_MASTER_IP=cmanager

exportMASTER=spark://cmanager:7077

exportJAVA_HOME=/usr/java/jdk1.7.0_71

exportSPARK_EXECUTOR_MEMORY=512m

exportSPARK_DRIVER_MEMORY=1g

export SPARK_JAR=/gtabigdata/soft/spark/lib/spark-assembly-1.4.1-hadoop2.6.0.jar

exportHADOOP_CONF_DIR=/gtabigdata/soft/hadoop/etc/hadoop

exportYARN_CONF_DIR=/gtabigdata/soft/hadoop/etc/hadoop

exportSPARK_YARN_USER_ENV=/gtabigdata/soft/hadoop/etc/hadoop

exportSPARK_SUBMIT_LIBRARY_PATH=/gtabigdata/soft/hadoop/lib/native

 

 

参数SPARK_WORKER_MEMORY决定在每一个Worker节点上可用的最大内存,增加这个数值可以在内存中缓存更多数据,但是一定要给Slave数据节点的操作系统和其他服务预留足够的内存空间。

需要配置SPARK_MASTER_IP和MASTER否则会造成Slave无法注册主机错误。

3)         配置slaves文件

vim slaves

同Hadoop的slaves配置文件一致         


 

3.   安装sbt(scala编译环境)

以sbt-0.13.9为例。

3.1    下载sbt-0.13.9.tgz

官网地址:

wget  https://dl.bintray.com/sbt/native-packages/sbt/0.13.9/sbt-0.13.9.tgz

解压sbt-0.13.5.tgz

如:[hadoop@cmanagerjars]$ sudo tar -zxvf sbt-0.13.9.tgz  

[hadoop@cmanager jars]$ sudo mv sbt /gtabigdata/soft/sbt

[hadoop@cmanager jars]$ sudo chown -R hadoop:hadoop/gtabigdata/soft/sbt/

3.2    备份软件自带的sbt

mv sbt sbt.bk

3.3    新建sbt文件

[hadoop@cmanagerjars]$ cd /gtabigdata/soft/sbt

[hadoop@cmanagersbt]$ vim sbt

然后输入如下内容:

SBT_OPTS="-Xms512M    -Xmx1536M    -Xss1M-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"

java $SBT_OPTS -jar `dirname $0`/bin/sbt-launch.jar"$@"

保存,然后修改其权限:

chmod u + x sbt

 

 

 

 

[hadoop@cmanager sbt]$ chmod u+x sbt

 

3.4    控制台输入sbt sbt-version

[hadoop@cmanager sbt]$ cd /gtabigdata/soft/sbt/bin

[hadoop@cmanager bin]$ ./sbt sbt-version

此命令会默认下载一些依赖包,等到下载完成,可以看到如下信息,说明安装成功。

3.5    验证hello world

新建文件夹test,然后输入如下内容保存:

echo 'object Hi { def main(args:Array[String]) = println("Hello World!") }' > hw.scala

控制台输入sbt,进入sbt shell界面

输入run命令,查看结果:

4.   安装sbteclipse插件

4.1    全局配置法

1)   Hadoop账户安装完成sbt后,在~目录会生成一个隐藏文件夹 .sbt,执行如下命令:

  cd  ~/.sbt/0.13

2)   创建plugins文件夹

 mkdir plugins

3)   vimplugins.sbt

添加如下内容:

addSbtPlugin("com.typesafe.sbteclipse"% "sbteclipse-plugin" % "4.0.0-RC1")

注意版本问题,请参考https://github.com/typesafehub/sbteclipse 

4)   控制台输入sbt  eclipse进行验证

期间会下载一些依赖包如下所示:

4.2局部配置法

1)在eclipse工作目录workspace下新建build.sbt文件

输入如下:(输入一行注意留空行)

name :="hello"

 

version :="1.0"

 

scalaVersion :="2.10.4"

2)在每个项目跟目录下project/下添加plugins.sbt文件,内容如下:

addSbtPlugin("com.typesafe.sbteclipse"% "sbteclipse-plugin" % "4.0.0-RC1")

3)执行sbt eclipse进行验证

5. 安装sbt-assembly

参考https://github.com/sbt/sbt-assembly/tree/0.11.2

只需要添加sbt-assembly的依赖在project/assembly.sbt

内容如下:

addSbtPlugin("com.eed3si9n"% "sbt-assembly" % "0.11.2")

然后就可以在sbt的shell界面输入assembly,查看是否可以进行打包

更多详细的配置请参考官方文档


 

B.Hive On Spark

Hive on Spark更加详细的配置请参考如下地址:

https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started

1.   Spark  Installation

如上所述,安装好Spark。

注意,spark安装的版本不要带有hive的jar包,在Spark的安装目录下可以使用如下命令检查:

./make-distribution.sh --name"hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.4"

2.   Configuring  Yarn

在yarn-site.xml中添加如下属性:

[hadoop@cmanager hadoop]$ vim/gtabigdata/soft/hadoop/etc/hadoop/yarn-site.xml

<property>

<name>yarn.resourcemanager.scheduler.class</name>

<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>

</property>

 

3.   Configuring  Hive

3.1  spark-assembly版本

3.2  将Spark的依赖加入Hive

有如下几种方式将Spark的依赖加入Hive。

1.设置spark.home指向spark安装目录

hive> setspark.home=/gtabigdata/soft/spark

2.在启动Hive CLI/HiveServer2之前,设置好spark环境变量

export SPARK_HOME=/gtabigdata/soft/spark.

3.设置spark-assembly jar 到Hive auxpath

hive--auxpath  /gtabigdata/soft/spark/lib/spark-assembly-*.jar

4.在当前用户会话中加入spark-assembly jar

hive>add jar  /gtabigdata/soft/spark/lib/spark-assembly-*.jar;

5.    将spark-assembly jar添加到Hive安装目录/lib下

注意:方法3和方法4是不被推荐的,因为这2种方式在查询的时候,会导致spark跳过spark-assembly jar到每一个执行器去执行

这里我们使用5

 

3.3 配置Hive的执行引擎spark

hive> set hive.execution.engine=spark;

我认为也可以在hive-site.xml中进行配置。

 

3.4 Hive配置spark应用配置

详细配置参数请参考:http://spark.apache.org/docs/latest/configuration.html.

也可以添加一个文件"spark-defaults.conf"用如下的这些属性添加到Hive的classpath目录下。或者在hive-site.xml中进行设置。

hive> set spark.master=<Spark Master URL>

hive> set spark.eventLog.enabled=true;

hive> set spark.eventLog.dir=<Spark event logfolder (must exist)>

hive> set spark.executor.memory=512m;              

hive>setspark.serializer=org.apache.spark.serializer.KryoSerializer;

spark.executor.memory:每个执行器处理可以使用的内存数量

spark.executor.cores: 每个执行器CPU的个数

spark.yarn.executor.memoryOverhead: The amount of off heap memory (inmegabytes) to be allocated per executor, when running Spark on Yarn. This ismemory that accounts for things like VM overheads, interned strings, othernative overheads, etc. In addition to the executor's memory, the container inwhich the executor is launched needs some extra memory for system processes,and this is what this overhead is for.

spark.executor.instances:每个应用被分配的执行器个数。.

spark.driver.memory:分配到Remote Spark Context (RSC)的内存数量.推荐 4GB.

spark.yarn.driver.memoryOverhead: 推荐400 (MB).

3.5 将hive配置文件hive-site.xml拷贝到$SPARK_HOME/conf

cp/gtabigdata/soft/hive/conf/hive-site.xml /gtabigdata/soft/spark/conf/

[hadoop@cmanagerconf]$ cp hive-site.xml /gtabigdata/soft/spark/conf/

vim /gtabigdata/soft/spark/conf/hive-site.xml

 

 

将scala,spark安装软件风别拷贝到slave上

[hadoop@cmanager soft]$ scp -r scala/hadoop@cslave5:/gtabigdata/soft/

[hadoop@cmanager soft]$ scp -r spark/hadoop@cslave1:/gtabigdata/soft/

 

 

在主节点启动spark

因为这里没有配置spark的环境变量所以我们直接金融spark/sbin目录才进行启动

cd /gtabigdata/soft/spark/sbin

./start-all.sh

启动完成查看master和slave上spark进程:

namenode上master就是spark进程标志

Datanode上的worker进程就是spark的进程标志

 

 

 

 

因为前边我们已经配置了hive on spark,我们验证一下是否成功

 

[hadoop@cmanager ~]$/gtabigdata/soft/spark/bin/spark-shell --master spark://cmanager:7077

 

开启的过程中发现报错了

 

这种应该是hive-site.xml文档的问题,进行修改

vim /gtabigdata/soft/spark/conf/hive-site.xml

将有报错的1s后的s拿掉只留下数字

你可能感兴趣的:(SPARK安装在Hadoop2.7)