最近想要学习spark,首先需要搭建spark的环境,之前零零散散也接触过一些spark的东西,但是都没有记录下来。刚好新安装了一个ubuntu18.04系统,想在此系统上进行环境搭建,趁机记录一下过程。
访问spark的官网,阅读spark的安装过程,发现spark需要使用到hadoop,java JDK等,当然官网也提供了Hadoop free的版本。本文还是从安装java JDK开始,逐步完成spark的单机安装。
1. java JDK8的安装
前往Oracle官网下载JDK8,选择适合自己操作系统的版本,此处选择Linux 64
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载之后的包放到某个目录下,此处放在/opt/java目录
使用命令:tar -zxvf jdk-8u201-linux-x64.tar.gz 解压缩
修改配置文件/etc/profile,使用命令:sudo vim /etc/profile
在文件末尾增加以下内容(具体路径依据环境而定):
export JAVA_HOME=/opt/java/jdk1.8.0_201
export JRE_HOME=/opt/java/jdk1.8.0_201/jre
export PATH=${JAVA_HOME}/bin:$PATH
保存退出,在终端界面使用命令: source /etc/profile 使配置文件生效。
使用java -version验证安装是否成功,以下回显表明安装成功了。
2. 安装Hadoop
前往官网https://hadoop.apache.org/releases.html下载hadoop,此处选择版本2.7.7
hadoop需要ssh免密登陆等功能,因此先安装ssh。
使用命令:sudo apt-get install ssh
sudo apt-get install rsync
将下载的包放到某个目录下,此处放在/opt/hadoop
使用命令:tar -zxvf hadoop-2.7.7.tar.gz 进行解压缩
此处选择伪分布式的安装方式(Pseudo-Distributed)
修改解压后的目录下的子目录文件 etc/hadoop/hadoop-env.sh,将JAVA_HOME路径修改为本机JAVA_HOME的路径
配置hadoop的环境变量
使用命令:sudo vim /etc/profile 添加以下内容:
export HADOOP_HOME=/opt/hadoop/hadoop-2.7.7
修改PATH变量,添加hadoop的bin目录进去
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH
修改解压后的目录下的子目录文件 etc/hadoop/core-site.xml
修改解压后的目录下的子目录文件 etc/hadoop/hdfs-site.xml
设置免密登陆
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
使用命令:ssh localhost 验证是否成功,如果不需要输入密码即可登陆说明成功了。
接下来需要验证Hadoop的安装
a. 格式化文件系统
bin/hdfs namenode -format
b. 启动Namenode和Datanode
c.浏览器访问http://localhost:50070
3. 安装spark
前往spark官网下载spark
https://spark.apache.org/downloads.html
此处选择版本如下:
将spark放到某个目录下,此处放在/opt/spark
使用命令:tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz 解压缩即可
使用命令: ./bin/run-example SparkPi 10 测试spark的安装
配置环境变量SPARK_HOME
在/etc/profile中添加
export SPARK_HOME=/opt/spark/spark-2.4.0-bin-hadoop2.7
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${SPARK_HOME}/bin:$PATH
4. 安装pyspark
pyspark的安装比较简单,直接使用pip install pyspark即可
5. 安装zeppelin
Zeppelin是一个基于Web的notebook,提供交互数据分析和可视化。后台支持接入多种数据处理引擎,如spark,hive等。支持多种语言: Scala(Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。
前往官网下载zeppelin
http://www.apache.org/dyn/closer.cgi/zeppelin/zeppelin-0.8.1/zeppelin-0.8.1-bin-all.tgz
放到某个目录下,此处放在/opt/zeppelin
使用命令:tar -zxvf zeppelin-0.8.1-bin-all.tgz进行解压
编辑配置文件conf/zeppelin-env.sh,添加环境变量
启动zeppelin
bin/zeppelin-daemon.sh start
访问http://localhost:8080
在zeppelin中配置spark解释器后,即可在zeppelin中创建notebook编写代码。