张子阳的博客

首页 读书 技术 店铺 关于
张子阳的博客 首页 读书 技术 关于

Spark 安装和配置(单节点)

2018-07-14 张子阳 分类: 大数据处理

Apache Spark被称为第三代大数据处理平台,也当前应用最广泛的大数据处理方案,这篇文章将介绍如何在Linux系统(Cent OS7)上以单机模式(Stand alone)模式安装Apache Spark。当前的最新稳定版是2.3.1。

此定义来源于网络,非官方定义:第一代Hadoop,第二代Storm,第三代Spark,第四代Flink。因为Flink比较新,从应用的广泛度方面而言不及Spark,相关的资料也比较少,因此在生产环境使用时,最好选用Spark。在试验环境,可以对Flink做一些尝试。

下载Spark

在浏览器上打开Spark官网的下载页:http://spark.apache.org/downloads.html

下载页1

选择最新的版本(当前是2.3.1),点击spark-2.3.1-bin-hadoop2.7.tgz,进入下载链接页:

下载页2

复制页面上的下载链接:http://apache.communilink.net/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz

登录Linux服务器,进入 ~/downloads 文件夹(如果没有则创建一个),使用wget命令进行下载:

# wget http://apache.communilink.net/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz

解压、配置PATH环境变量

使用tar命令,解压到/opt/spark文件夹:

# tar -xzvf spark-2.3.1-bin-hadoop2.7.tgz -C /opt/spark

使用vim编辑~/.bashrc,编辑最后两行,加入以下内容,配置环境变量:

# vim ~/.bashrc

export SPARK_HOME=/opt/spark/spark-2.3.1-bin-hadoop2.7 export PATH=$PATH:$SPARK_HOME/bin

使用source命令,以使得变量立即生效

# source ~/.bashrc

如果重复执行source命令,再执行echo $PATH时,会看到路径重复出现了很多次。此时可以执行这个命令:export PATH=$(echo $PATH | tr : "\n"| sort | uniq | tr "\n" :)
还有一个更简单的方法,就是exit退出登录,然后重新登录。

验证安装

输入pyspark,如果一切正常,会看到下面的界面:

# pyspark Python 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2 Type "help", "copyright", "credits" or "license" for more information. 2018-07-13 11:50:35 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 2.3.1 /_/ Using Python version 2.7.5 (default, Aug 4 2017 00:39:18) SparkSession available as 'spark'. >>>

底部是spark的命令窗口,可以按Ctrl+D退出。

上面出现了一个警告:NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable。

解决的办法是:编辑~/.bashrc 文件,在底部加入下面一行:
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$LD_LIBRARY_PATH

注意,前提是你已经安装了Hadoop,并配置好了$HADOOP_HOME环境变量。如何单机安装Hadoop,参考linux上安装和配置Hadoop(单节点)

在控制台启动的情况下,在浏览器输入:http://spark-host-ip:4040,可以进入到Spark的Web UI界面。在这里可以查看Spark当前的运行情况。

Spark WebUI - Jobs

在Environment选项卡中,可以查看到当前Spark的运行环境,可以看到Spark.master一栏显示的是local[*],说明当前Spark运行的是local模式,Spark还可以运行在YARN(和Hadoop共用YARN,减少运维复杂度)或者是Mesos上。

Spark WebUI - Environment

配置控制台日志数据级别

默认情况下,Spark会在控制台输出INFO级别以上的信息,这样控制台的信息会非常多,不利于查看错误消息。可以通过修改配置文件,来让Spark在控制台只输出ERROR信息:

进入$SPARK_HOME/conf文件夹,复制log4j.properties.template,并重命名为log4j.properties,然后编辑log4j.properties:

cd $SPARK_HOME/conf;\ cp log4j.properties.template log4j.properties;\ vim log4j.properties

找到log4j.rootCategory=INFO, console,修改为:log4j.rootCategory=ERROR, console

# Set everything to be logged to the console log4j.rootCategory=ERROR, console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.target=System.err ...

感谢阅读,希望这篇文章能给你带来帮助!