Java的安装
这里以windows上安装为例,实际使用应该在Linux下安装
首先安装JAVA11 http://jdk.java.net/java-se-ri/11

然后解压安装 最好在C盘的Program files中创建一个java文件夹作为安装位置
然后把解压后的文件复制过去

接下来添加环境变量
先添加JAVA_HOME

然后在PATH中新建,把bin目录的位置放进去

现在就安装完成了,可以检查一下

安装hadoop
如果是在mac或者linux上面安装可以跳过安装winutils这一步骤 https://github.com/cdarlint/winutils
可以看到很多版本 这里使用hadoop-2.7.7,将这个文件夹下面的bin目录放置于一个安全的位置

然后新建一个环境变量HADOOP_HOME

接下来把bin目录也添加到PATH中

最后检查一下

安装SPARK
http://spark.apache.org/downloads.html
安装这个版本,注意下面的Hadoop2.7使刚才的版本

将解压的文件夹重命名成spark3然后放置在一个安全的位置
在bin目录下可以看到一个spark-shell的文件,有两个,一个使linux下用的script file一个使windows下面用的cmd file

为了将spark安装上我们需要进行下面的这些配置

- SPARK_HOME

然后再PATH中添加bin目录

2.PYSPARK_PYTHON
这里使用的使anaconda进行安装 推荐的python 版本使3.7
1 |
conda create -n spark pip python=3.7 |
创建好了之后把这个anaconda环境的python作为系统的python


3. PYTHONPATH
PYTHONPATH是一个环境变量,可以让python找到额外的package
1 2 |
C:\spark\spark3\python C:\spark\spark3\python\lib\py4j-0.10.9-src.zip |

4. Log4j.properties

可以将后面的template去掉,还有spark-defaults后面的template也去掉
打开这个文件把下面这条的Info修改为WARN,这是因为spark在执行的过程中会输出很多的INFO信息,我们把级别调整到WARN


接下来启动一下spark,注意设置完环境变量之后要重启一下CMD新的环境变量才会生效
1 |
spark-shell |

这个时候可以能会看到一些warning,这些warning出现的原因使因为使用了java9以上,我们可以忽略掉这些warning
接下来检查pyspark是否安装好

接下来配置IDE
首先下载需要用到的python代码
https://github.com/LearningJournal/Spark-Streaming-In-Python
接下来在pycharm中打开这个项目
然后切换环境

接下来在这个环境安装上pyspark
1 |
pip install pyspark |

接下来运行

如果看到了下面几行就证明运行成功了,这些warning如果用的使JAVA 9+以后会一直存在,可能在之后的版本中会修复掉,可以忽略掉他们。
安装KAFKA
首先下载kafka

这里我们下载2.12的

接下来重命名一下,然后放在一个安全的位置
在config目录下有两个需要用到的文件

这两个文件需要修改一下,第一个文件的日志路径

第二个文件,取消掉这里的注释

然后修改日志的位置

接下来修改环境变量

然后再path中添加,如果是在linux上面就直接添加bin,这里是在windows上面所以是bin\windows这个位置

接下来启动一下KAFKA,启动KAFKA是两个过程,首先启动zookeeper然后启动kafka,具体参考
https://kafka.apache.org/documentation/#quickstart
官网中给的指令是这样的,这是LINUX下面的指令
1 2 |
$ bin/zookeeper-server-start.sh config/zookeeper.properties $ bin/kafka-server-start.sh config/server.properties |
再windows下,我们使用的是刚才添加到环境变量中的bat来进行操作所以指令应该要修改成下列的,需要注意的是二者的执行路径应该一致,并且执行的路径具体写入权限否则会启动失败。
1 2 |
zookeeper-server-start.bat %KAFKA_HOME%/config/zookeeper.properties kafka-server-start.bat %KAFKA_HOME%/config/server.properties |

可以看到zookeeper已经启动并且端口为2181,接下来再另一个cmd中启动kakfa

可以看到broker 0 已经启动起来了
接下来我们创建一个生产者和消费者来测试kafka的一切功能是否正常
创建一个主题
1 |
kafka-topics.bat --create --topic quickstart-event --bootstrap-server 0.0.0.0:9092 |

接下来启动一个consumer,这里不会看到任何的数据输出,当时consumer已经启动了:
1 |
kafka-console-consumer.bat --topic quickstart-events --from-beginning --bootstrap-server localhost:9092 |
接下来再另一个cmd里面创建一个producer
1 |
kafka-console-producer.bat --topic quickstart-events --bootstrap-server localhost:9092 |
接下来再producer中发送消息可以看到再consumer中收到了

总结一下,这里我们启动了4个CMD分别是:
- zookeeper
- kafka-server
- kafka-consumer
- kafka-producer