大数据分析方法与应用 课程实验一
1.实验目的
通过本实验,搭建基于 spark 的大数据分析与设计平台,为(可能的)后续的大数据实验做准备。能够在 Linux 操作系统下 pyspark 交互式方式下运行 python spark 语句。能够使用 spark-submit 提交数据处理任务。
2.实验步骤
第 0 步,准备工作
0.1 准备 Linux 操作系统,Ubuntu 16.04
本次采用阿里云平台轻量应用服务器作为搭建平台,安装的操作系统为 Ubuntu 16.04,以下操作均通过 Xshell 连接服务器完成,由于以 root 账户登录,下述命令不再以 sudo
命令开始。
0.2 安装 JDK1.8
- 首先添加源
apt install software-properties-common
apt-get install python-software-properties
add-apt-repository ppa:webupd8team/java
- 更新 source
apt-get update
- 安装 JDK
apt-get install oracle-java8-installer
- 配置环境变量
虽然安装完成后已经可以执行 java 命令,但最好还是配置一下环境变量:
echo '#set oracle jdk environment' >> /root/.bashrc
echo 'export JAVA_HOME="/usr/lib/jvm/java-8-oracle"' >> /root/.bashrc
echo 'export JRE_HOME="${JAVA_HOME}/jre"' >> /root/.bashrc
echo 'export CLASSPATH=".:${JAVA_HOME}/lib:${JRE_HOME}/lib"' >> /root/.bashrc
echo 'export PATH="${JAVA_HOME}/bin:$PATH"' >> /root/.bashrc
source /root/.bashrc
Java8 安装完成
0.3 安装 Anaconda
本次安装的版本为 Anaconda3-2018.12-Linux-x86_64.sh。
- 首先下载 anaconda
wget https://repo.continuum.io/archive/Anaconda3-2018.12-Linux-x86_64.sh
- 安装 anaconda
bash Anaconda3-2018.12-Linux-x86_64.sh
期间按 Enter
键阅读协议,同意协议后才能正常安装。可执行以下命令配置 conda 环境变量(请自行替换 anaconda 路径):
echo 'export PATH="/root/anaconda3/bin:$PATH"' >> /root/.bashrc
source ~/.bashrc
输入conda -V
可查看 conda 版本,输入conda upgrade --all
可更新 conda版本。
0.4 安装 PySpark
安装 PySpark 可采取多种方式,
-
使用 pip 进行安装,执行以下命令,即可完成安装:
PySpark 安装完成pip install pyspark
。
-
官网下载官方包手动解压安装的方式:
wget http://apache.stu.edu.tw/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
- 然后解压、安装
- 首先解压缩
tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz
- 移动到账户文件夹下(可选)
mv spark-2.4.0-bin-hadoop2.7 /opt/spark
- 配置环境变量
创建echo '#spark' >> /root/.bashrc echo 'export SPARK_HOME="/opt/spark"' >> /root/.bashrc echo 'export PATH="$PATH:${SPARK_HOME}/bin:${SPARK_HOME}/sbin"' >> /root/.bashrc source /root/.bashrc
spark-env.sh
文件
在里面写入:cp /opt/spark/conf/spark-env.sh.template /opt/spark/conf/spark-env.sh
使用内存大小根据机器配置自行选择。JAVA_HOME=/usr/lib/jvm/jdk1.8.0_181 SPARK_WORKER_MEMORY=1g
- 问题解决
在服务器端无论使用 pip 还是手动安装,在启动时收获一个异常:
Exception: Java gateway process exited before sending its port number
对于该异常目前搜遍了谷歌百度尚无较好的解决方案,已解决,请参看Exception: Java gateway process exited before sending its port number 解决方案
0.5 配置 PySpark
-
第1步 配置 Spark standalone 模式
- 1.1 运行
pyspark
- 1.2 执行以下代码
textFile = spark.read.text("/opt/spark/README.md") textFile.count()
输出结果为
105
。 - 1.1 运行
-
第2步 配置 singlenode cluster 模式
- 2.1 配置
conf/slaves
文件,增加 localhost
cp /opt/spark/conf/slaves.template /opt/spark/conf/slaves
在文件内增加一行
slaveslocalhost
- 2.2 执行
sbin/start-master.sh
查看http://服务器 ip:8080
- 2.1 配置
-
2.3
workerssbin/start-slaves.sh spark://127.0.0.1:7077
查看http://服务器 ip:8080
-
2.4 运行
pyspark master/bin/pyspark --master spark://127.0.0.1:7077
-
2.5(退出上一步的交互式环境)运行Spark例子:
./bin/spark-submit --master spark://127.0.0.1:7077 ./examples/src/main/python/pi.py 1000
查看 http://服务器 ip:8080
中的信息
- 第3步 愉快的开始spark Python编程
网友评论