返回本案例首页
《Spark+Kafka构建实时分析Dashboard案例——步骤一:实验环境准备》
开发团队:厦门大学数据库实验室 联系人:林子雨老师 ziyulin@xmu.edu.cn
版权声明:版权归厦门大学数据库实验室所有,请勿用于商业用途;未经授权,其他网站请勿转载
本教程介绍大数据课程实验案例“Spark+Kafka构建实时分析Dashboard案例”的第一个步骤,实验环境准备工作,有些软件的安装在相应的章节还会介绍。
预备知识
Linux系统命令使用、了解如何安装Python库。
训练技能
熟悉Linux基本操作、Pycharm的安装、Spark安装,Kafka安装,PyCharm安装。
任务清单
- Spark安装
- Kafka安装
- Python安装
- Python依赖库
- PyCharm安装
实验系统和软件要求
Ubuntu: 16.04
Spark: 2.1.0
Scala: 2.11.8
kafka: 0.8.2.2
Python: 3.x(3.0以上版本)
Flask: 0.12.1
Flask-SocketIO: 2.8.6
kafka-python: 1.3.3
系统和软件的安装
Spark安装
Spark的安装可以参考Spark系列教程,地址为Spark2.1.0入门:Spark的安装和使用;
Kafka安装
kafka的安装可以参考博客Kafka的安装和简单实例测试;
Python安装
Ubuntu16.04系统自带Python2.7和Python3.5,本案例直接使用Ubuntu16.04自带Python3.5;
Python依赖库
本案例主要使用了两个Python库,Flask和Flask-SocketIO,这两个库的安装非常简单,请启动进入Ubuntu系统,打开一个命令行终端(可以使用快捷键Ctrl+Alt+T)。
Python之所以强大,其中一个原因是其丰富的第三方库。pip则是python第三方库的包管理工具。Python3对应的包管理工具是pip3。因此,需要首先在Ubuntu系统中安装pip3,命令如下:
sudo apt-get install python3-pip
安装完pip3以后,可以使用如下Shell命令完成Flask和Flask-SocketIO这两个Python第三方库的安装以及与Kafka相关的Python库的安装:
pip3 install flask
pip3 install flask-socketio
pip3 install kafka-python
这些安装好的库在我们的程序文件的开头可以直接用来引用。比如下面的例子。
from flask import Flask
from flask_socketio import SocketIO
from kafka import KafkaConsumer
from import 跟直接import的区别举个例子来说明。
import socket的话,要用socket.AF_INET,因为AF_INET这个值在socket的名称空间下。
from socket import* 是把socket下的所有名字引入当前名称空间。
PyCharm安装
PyCharm是一款Python开发IDE,可以极大方便工程管理以及程序开发。请在Ubuntu系统中打开自带的火狐浏览器,前往PyCharm官网下载免费的Community版本,下载后默认会被保存到当前登录用户的主目录下的“下载”目录中。比如,如果当前使用hadoop用户名登录了Ubuntu系统,那么,就会被保存在“/home/hadoop/下载”这个目录下。然后执行如下命令对安装文件进行解压缩:
cd ~ #进入当前hadoop用户的主目录
sudo tar -zxvf ~/下载/pycharm-community-2016.3.2.tar.gz -C /usr/local #把pycharm解压缩到/usr/local目录下
cd /usr/local
sudo mv pycharm-community-2016.3.2 pycharm #重命名
sudo chown -R hadoop ./pycharm #把pycharm目录权限赋予给当前登录Ubuntu系统的hadoop用户
然后,执行如下命令启动PyCharm:
cd /usr/local/pycharm
./bin/pycharm.sh #启动PyCharm
执行上述命令之后,即可开启PyCharm。
Python工程目录结构
这里先给出本案例Python工程的目录结构,后续的操作可以根据这个目录进行操作。
- data目录存放的是用户日志数据;
- scripts目录存放的是Kafka生产者和消费者;
- static/js目录存放的是前端所需要的js框架;
- templates目录存放的是html页面;
- app.py为web服务器,接收Spark Streaming处理后的结果,并推送实时数据给浏览器;
- External Libraries是本项目所依赖的Python库,是PyCharm自动生成。
至此,本案例需要的开发环境就介绍完毕,顺带说一句,Spark自带Scala,因此如果是开发Spark应用程序,则没必要单独安装Scala。