SparkSQL安装使用手册
一、Spark简介
1.1.什么是Spark
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
与Hadoop采用MapReduce不同,Spark建立在统一抽象的RDD 之上,使得它可以以基本一致的方式应对不同的大数据处理场景。RDD,全称为Resilient Distributed Datasets,是一个容错的、并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区。同时,RDD还提供了一组丰富的操作来操作这些数据。
基于Spark的并行运算框架之上,Spark提供了4类应用框架,一是SparkSQL,用于类似Hive的数据仓库方案;二是Spark Streaming,类似于Apache Storm的流计算框架;三是MLib,用于机器学习,四是GraphX,用于图计算。
本文档仅仅介绍SparkSQL相关的内容,其他相关框架在后续逐步学习理解后,将逐步形成文档。
SparkSQL与Hive有着千丝万缕的关系,SparkSQL的前身为Shark,Shark直接使用了Hive的语法解析器、查询优化器等,在后续的SparkSQL中,虽然摆脱了Hive的依赖,但SparkSQL在数据、语法上
完全保证了Hive的兼容。
1.2.Spark架构
Spark提供三种部署方式:独立运行模式(可配置HA模式)、Mesos 集模式、YARN集模式。
⏹HA的独立运行模式
⏹YARN模式
采用YARN模式的话,其实就是把Spark作为一个客户端提交作业给YARN的ResourceManager,实际运行程序的是YARN,就不需要部
署多个节点,部署一个节点就可以。
1.3.环境说明
二、Scala安装
Spark因采用的Scala语言进行的编写,因此实现安装Scala。
从Scala(/download/)上下载最新版本的Scala安装包,本示例采用的为scala-2.。
将下载的安装包上传到服务器上,解压安装包;
$tar–zxvf scala-2.-C/opt
设置环境变量
$sudo vi/etc/profile
增加以下内容:
export SCALA_HOME=/opt/scala
export PATH="$SCALA_HOME:$PATH"
启用环境变量
$source/etc/profile
备注:在所有服务器上,均需要安装Scala。
三、Spark安装
2.1.下载并解压
从()上下载最新的二进制包,因本安装示例采用的Hadoop为2.6.x版本,所以下载的安装文件为spark-1.5.。
下载后,将文件上传至服务器上,进行解压操作。
$tar-zxvf spark-1.5.-C/opt
$ln-s/opt/spark-1.5.2-bin-hadoop2.6/opt/spark
2.2.修改配置文件
⏹修改环境变量
$sudo vi/etc/profile
修改内容如下:
export JAVA_HOME=/opt/jdk
export SCALA_HOME=/opt/scala
export ZOOKEEPER_HOME=/opt/zookeeper
export HADOOP_HOME=/opt/hadoop
export HADOOP_PREFIX=$HADOOP_HOME
export HIVE_HOME=/opt/hive
export SPARK_HOME=/opt/spark
export
PATH="$JAVA_HOME/bin:$SCALA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$H IVE_HOME/bin:$SPARK_HOME/bin:$PATH"
启用配置
$source/etc/profile
⏹修改Spark配置文件
$vi$SPARK_HOME/conf/spark-env.sh
增加如下内容:
export SCALA_HOME=/opt/scala
export JAVA_HOME=/opt/jdk
export HADOOP_HOME=/opt/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_CONF_DIR=/opt/hive/conf/
⏹拷贝Hive配置
$cp$HIVE_HOME/l$SPARK_HOME/conf
备注:请将安装文件、调整后的配置,同步到所有服务器。
2.3.独立运行模式
⏹设定work节点
在master服务器上进行如下配置:
$vi$SPARK_HOME/conf/slaves
增加以下内容:
hdfs1
hdfs2
hdfs3
⏹启动服务
$$SPARK_HOME/sbin/start-all.sh
启动后,在不同的服务器上运行
$jps
查看Master进程、Worker进程是否在运行中。
同时可以用浏览器输入hdfs1:8080查看Spark的运行状态。
⏹启动SparkSQL
$$SPARK_HOME/bin/spark-sql--master spark://hdfs1:7077--executor-memory1g
--total-executor-cores10--driver-class-path/opt/hive/lib/mysql-connector-java-5.1.36.jar
待启动完成后,输入show tables或其他HiveQL进行数据处理。
⏹启动ThriftServer
启动服务
$$SPARK_HOME/sbin/start-thriftserver.sh--master spark://hdfs1:7077--executor-memory1g --total-executor-cores10--driver-class-path/opt/hive/lib/mysql-connector-java-5.1.36.jar
运行CLI
$$SPARK_HOME/bin/beeline-u jdbc:hive2://hdfs1:10000
同时,也可用浏览器输入hdfs1:4040查看ThriftServer的运行情况。
2.4.HA模式
在上述的独立运行模式中,Master节点为中心节点,一旦出现故障,Spark将无法正常运行,在HA模式中,采用ZooKeeper实现Master 的主从。
mysql下载是安装包备注:在HA模式下不需要修改conf/slaves文件,请开展下列配置前,请先停止独立模式。
⏹修改Spark配置文件
$vi$SPARK_HOME/conf/spark-env.sh
增加如下内容:
export SPARK_DAEMON_JAVA_OPTS="-veryMode=ZOOKEEPER
-keeper.url=hdfs1:2181,hdfs2:2181,hdfs3:2181"
备注:所有Master节点服务器需要配置。
⏹在Master节点启动Master服务
$$SPARK_HOME/sbin/start-master.sh
备注:使用master-server-ip:8080,查看服务状态,Master节点应当有且只有一个处于活动状态。
⏹在Worker节点启动Worker服务
$$SPARK_HOME/sbin/start-slave.sh spark://hdfs1:7077,hdfs2:7077
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论