spark 安装部署

一、安装spark依赖的内容

1.JDK

spark是由Scala语言编写的,但是运行的环境是jvm,所以需要安装JDK

编译过程:Python、java、Scala编写的代码 -> scala编译器编译解释,生成class文件 -> 由jvm负责执行class文件(与java代码执行一致)

2.scala

由于 spark是由Scala语言编写的,所以依赖Scala环境,且由Scala编写的执行代码也需要环境进行编译

3.配置SSH免密码登录

集群节点无密码访问,与安装Hadoop时一致

4.安装Hadoop

hdfs是作为spark的持久层,所以需要安装Hadoop,同时如果需要配置spark on yarn,则Hadoop需要安装yarn版本的

5.安装spark

安装spark,执行spark代码

二、JDK安装

1.下载地址

用户可以在官网下载相应版本的JDK,本例使用JDK1.6,下载地址为: http://www.oracle.com/technetwork/java/javase/archive-139210.html

development kit的bin包

2.下载后,在相应的目录下执行bin文件(假设JDK目录是 jdkpath)

./ jdk-6u45-linux-i586.bin

3.配置环境变量,修改/etc/profile文件增加以下内容

export  JAVA_HOME= $jdkpath

export   PATH=$JAVA_HOME/bin:$PATH

export  CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar

4.生效profile(或者重启机器)

source /etc/profile

5.终端输入 java -version

输出类似如下说明安装成功

三、安装Scala

1.下载地址

官网下载地址:http://www.scala-lang.org/download/all.html

本例使用的是Scala 2.9.3

2.在安装目录下解压(假设Scala目录是scalapath)

tar -zxvf scala-2.9.3.tgz

3.配置环境变量,修改/etc/profile文件增加以下内容

export  SCALA_HOME= $scalapath

export   PATH=$SCALA_HOME/bin:$PATH

4.生效profile(或者重启机器)

source /etc/profile

四、配置SSH免密码登陆

首先,需要配置各个机器间的相互访问:

1、 配置ssh的自动登陆(在master机上):

$ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa

完成后会在~/.ssh/(用户目录下)生成两个文件:id_dsa 和id_dsa.pub。

再把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件):

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

完成后可以实现无密码登录本机:

$ ssh localhost

2、把master上的id_dsa.pub 文件追加到slaves机器的authorized_keys 内( 以slaves1节点为例):

#拷贝master的id_dsa.pub文件(在master号机器上执行)

$ scp id_dsa.pub redmap@192.168.1.2:/home/redmap/

注:(只需在主节点上运行ssh-kegen程序。其他节点的目录结构创建后,将刚才在主节点创建的keys通过scp拷贝到从节点的同样的目录上。)

我们在实际执行中是手动把id_dsa.pub拷贝到其他slaves的节点中,而不是用scp命令。最好是直接手动拷贝过去,这样文件的权限是一致的。

登录192.168.1.2,进入用户目录下执行:

$ cat id_dsa.pub >> .ssh/authorized_keys

之后可以在master上不输入密码直接SSH访问slaves1

五、安装Hadoop2.x

1.下载Hadoop

下载地址 http://apache.fayea.com/hadoop/common/

本文使用hadoop-2.5.2.tar

2.解压压缩包到指定目录

tar -zxvf hadoop-2.5.2.tar -C /usr/local (目录自定义)

如果需要修改拥有者

chown -R hduser:hadoop hadoop-2.5.2

3.配置环境变量

编辑profile文件

vi /etc/profile

在profile文件增加以下内容

export HADOOP_HOME=/home/root/hadoop-2.5.2 (安装路径)

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

export HADOOP_MAPRED_HOME=${HADOOP_HOME}

export HADOOP_COMMON_HOME=${HADOOP_HOME}

export HADOOP_HDFS_HOME=${HADOOP_HOME}

export HADOOP_YARN_HOME=${HADOOP_HOME}

4.编辑配置文件

(1)进入Hadoop安装路径下的/etc/hadoop目录

(2)配置Hadoop-env.sh文件

增加 export JAVA_HOME=....(java JDK安装路径)

(3)修改hadoop安装目录下/etc/hadoop目录中的core-site.xml

<configuration>

<property>

<name>io.native.lib.available</name>

<value>true</value>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://host:9000</value>//本机的Ip地址或者域名,端口自己设置

<description>The name of the default file system.Either the literal string "local" or a host:port for NDFS.</description>

<final>true</final>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/tmp</value>

</property>

</configuration>

(4) 在etc/hadoop目录中编辑hdfs-site.xml

<configuration>

<property>

  <name>dfs.namenode.name.dir</name>

<value>file:/usr/hadoop23/dfs/name</value>//本机保存name数据的目录,自定义

<description>Determines where on the local filesystem the DFS name node should store the name table.If this is a comma-delimited list of directories,then name table is replicated in all of
the directories,for redundancy.</description>

  <final>true</final>

</property>

<property>

  <name>dfs.datanode.data.dir</name>

<value>file:/us/hadoop23/dfs/data</value>//本机保存data数据的目录,自定义

<description>Determines where on the local filesystem an DFS data node should store its blocks.If this is a comma-delimited list of directories,then data will be stored in all named directories,typically
on different devices.Directories that do not exist are ignored.

</description>

<final>true</final>

</property>

<property>

  <name>dfs.replication</name>

<value>1</value>

</property>

<property>

  <name>dfs.permission</name>

<value>false</value>

</property>

<property>

  <name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

  路径

file:/usr/hadoop23/dfs/name与

file:/usr/hadoop23/dfs/data

是计算机中的一些文件夹,用于存放数据和编辑文件的路径必须用一个详细的URI描述。

(5) 在etc/hadoop目录中编辑mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

<description>yarn,local,classic</description>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>master:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>master:19888</value>

</property>

</configuration>

(6)编辑yarn-site.xml

<configuration>

<property>

<name>yarn.resourcemanager.address</name>

<value>host:port</value>//本机的Ip地址或者域名,端口自己设置

<description>the host is the hostname of the ResourceManager and the port is the port on

which the clients can talk to the Resource Manager. </description>

</property>

<property>

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

<value> host:port </value>//本机的Ip地址或者域名,端口自己设置

<description>host is the hostname of the resourcemanager and port is the port

on which the Applications in the cluster talk to the Resource Manager.

</description>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value> host:port </value>//本机的Ip地址或者域名,端口自己设置

<description>host is the hostname of the resource manager and

port is the port on which the NodeManagers contact the Resource Manager.

</description>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value> host:8033 </value>//本机的Ip地址或者域名,端口自己设置

<description>host is the hostname of the resource manager and

port is the port on which the NodeManagers contact the Resource Manager.

</description>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value> host:8088 </value>//本机的Ip地址或者域名,端口自己设置

<description>host is the hostname of the resource manager and

port is the port on which the NodeManagers contact the Resource Manager.

</description>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce.shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>

</configuration>

5.配置masters和slaves文件

(1)如果etc/hadoop目录下没有masters文件,则新建一个,并添加集群的主节点名称或者IP,最好和之前的配置格式一致,同为IP或者同为主机名称

比如:本文配置的masters文件内容为(master为某个主节点名称)

master

(2)修改slaves文件,添加所有slave机器的名称或IP

比如:本文配置的slaves文件内容为(由于配置的是伪分布式集群,所以内容和masters文件一样)

master

6.如果有多个slaves机器,则需要把配置好的Hadoop文件分发到各个节点相同路径下,修改profile文件和master一致,修改hosts文件,增加所有的机器名称和IP对应关系,同时确保各个节点上Hadoop目录的权限,操作用户对Hadoop目录有拥有权

按以上的配置修改好集群的节点后,最好重启所有节点,确保所有配置文件生效

7.格式化namenode

hadoop namenode -format

8.启动Hadoop

./sbin/start-all.sh

9.查看是否启动成功

(1) 如果是单机伪分布式集群

执行 jps 命令,输出类似如下,则说明安装成功

8451 SecondaryNameNode

8721 NodeManager

8592 ResourceManager

9384 Jps

8152 NameNode

8282 DataNode

(2) 如果是多个几点的分布式集群

在主节点执行jps命令时,只有

8451 SecondaryNameNode

8592 ResourceManager

9384 Jps

8152 NameNode

而在slave机器执行命令时,只有

9384 Jps

8282 DataNode

8721 NodeManager

10.关闭Hadoop

./sbin/stop-all.sh

六、安装spark1.x

1.下载安装包

官网地址: http://spark.apache.org/downloads.html

本文使用的是spark1.0.0

2.解压压缩包到指定目录

tar -zxvf spark-1.0.0.tar.gz -C ‘指定目录’(假设为sparkpath)

3.修改profile文件

vi /etc/profile

添加以下内容

export SPARK_HOME=sparkpath

export PATH=$PATH:$SPARK_HOME/bin

4.编辑spark安装目录下conf/spark-env.sh文件,增加以下参数

export SCALA_HOME=scalahome

export JAVA_HOME=jdkhome

export SPARK_MASTER_IP=master

export SPARK_WORKER_MEMORY=256m (自定义,每个worker节点可用内存)

export MASTER=spark://master:7077  (master地址)

5.编辑conf/slaves文件

增加所有worker节点的主机名或IP,最好所有的配置都统一为机器名

6.启动spark集群

./sparkpath/sbin/start-all.sh

如果只是一个伪分布式的集群执行jps命令时,会多出两个进程

2222222

显示如上图所示,则说明配置成功,相应进程都启动

如果是多个节点的spark集群

则在master机器上只有 333333Master这个进程

而在slaves机器上只有444444Worker这个进程

7.关闭spark集群

./sparkpath/sbin/stop-all.sh

8.集群测试

./bin/run-example org.apache.spark.examples.SparkPi

结果输出有如下,则运行成功

Pi is roughly 3.1352 (类似结果)

9.spark-shell测试

交互终端

Spark context available as sc.   Spark context默认被初始化,sc

val data = Array(1, 2, 3, 4, 5)

val distData = sc.parallelize(data)

val totalSum = distData.reduce((a, b) => a + b)

println(totalSum)

由于,我本身机器内存不是很大,所以我在/conf/spark-defaults.conf 文件中增加了几个默认配置(机器不好)

spark.deploy.defaultCores 1  (默认内核数)

spark.default.parallelism 1  (并行数目)

spark.akka.threads 1

spark.cores.max 1     (最大内核数)

spark.executor.memory 50m (这个值要小于spark-env.sh中配置的SPARK_WORKER_MEMORY值,否则会报内存不够的警告,代码不执行)

10.访问web

http://master:8080/
 查看集群状态

http://master:4040/

时间: 2024-11-05 11:27:58

spark 安装部署的相关文章

Spark安装部署(local和standalone模式)

Spark运行的4中模式: Local Standalone Yarn Mesos 一.安装spark前期准备 1.安装java $ sudo tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/service/ export JAVA_HOME=/opt/service/jdk1.7.0_67 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.:$JAVA_HOME/l

spark安装部署

spark是由Scala语言编写的,但是运行的环境是jvm,所以需要安装JDK 编译过程:Python.java.Scala编写的代码 -> scala编译器编译解释,生成class文件 -> 由jvm负责执行class文件(与java代码执行一致) 由于 spark是由Scala语言编写的,所以依赖Scala环境,且由Scala编写的执行代码也需要环境进行编译. hdfs是作为spark的持久层,所以需要安装Hadoop,同时如果需要配置spark on yarn,则Hadoop需要安装ya

Spark安装部署| 运行模式

Spark 一种基于内存的快速.通用.可扩展的大数据分析引擎: 内置模块: Spark Core(封装了rdd.任务调度.内存管理.错误恢复.与存储系统交互): Spark SQL(处理结构化数据).Spark Streaming(对实时数据进行流式计算) . Spark Mlib(机器学习程序库包括分类.回归.聚合.协同过滤等).Spark GraghX(图计算):独立调度器.Yarn.Mesos 特点: 快( 基于内存.多线程模型(而mapReduce是基于多进程的).可进行迭代计算(而ha

spark安装部署手册

官网下载spark安装包 上传到服务器使用命令tar -zxvf 解压缩 解压后的spark通过start-master.sh启动,此时有可能启动报错,找不到java_home,这是需要修改spark-config.sh,需要在里面加上export JAVA_HOME=jdk路径 主节点启动后,一般是占用8080端口,如果不是依次类推,8081.... ,从管理控制台获取URL地址. 启动从节点,使用 start-slave.sh <master-spark-URL>(该URL)是从spark

spark2.10安装部署(集成hadoop2.7+)

这里默认你的hadoop是已经安装好的,master是node1,slaver是node2-3,hdfs启动在node1,yarn启动在node2,如果没安装好hadoop可以看我前面的文章 因为这里是spark和hadoop集成,我已经预先启动好了hdfs 和 yarn:MapReduce History Server也是需要启动的,详情往下看 Spark安装包:概述 类别 与Hadoop打包在一起的安装包 ? 比如:spark-2.1.0-bin-hadoop2.7.tgz,spark版本为

使用docker安装部署Spark集群来训练CNN(含Python实例)

使用docker安装部署Spark集群来训练CNN(含Python实例) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请附上本文链接,不甚感激! http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器,每台有8个tesla-GPU,然而平时做实验都只使用了其中的一个GPU,实在暴遣天物! 于是想用spark来把这些GPU都利用起来.听闻d

【原创 Spark动手实践 1】Hadoop2.7.3安装部署实际动手

目录: 第一部分:操作系统准备工作: 1. 安装部署CentOS7.3 1611 2. CentOS7软件安装(net-tools, wget, vim等) 3. 更新CentOS7的Yum源,更新软件速度更快 4. CentOS 用户配置,Sudo授权 第二部分:Java环境准备 1. JDK1.8 安装与配置 第三部分:Hadoop配置,启动与验证 1. 解压Hadoop2.7.3更新全局变量 2. 更新Hadoop配置文件 3. 启动Hadoop 4. 验证Hadoop =========

【Spark学习】Spark 1.1.0 with CDH5.2 安装部署

[时间]2014年11月18日 [平台]Centos 6.5 [工具]scp [软件]jdk-7u67-linux-x64.rpm spark-worker-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.noarch.rpm spark-core-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.noarch.rpm spark-history-server-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.

Spark、Shark集群安装部署及遇到的问题解决

1.部署环境 OS:Red Hat Enterprise Linux Server release 6.4 (Santiago) Hadoop:Hadoop 2.4.1 Hive:0.11.0 JDK:1.7.0_60 Python:2.6.6(spark集群需要python2.6以上,否则无法在spark集群上运行py) Spark:0.9.1(最新版是1.0.2) Shark:0.9.1(目前最新的版本,但是只能够兼容到spark-0.9.1,见shark 0.9.1 release) Zo