- Spark环境准备:
- Java
- Jdk1.8
- Java
spark依赖java,首先电脑中必须安装java。
地址:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
根据系统下载对应的jdk,下载后双击exe文件进行安装,可选择安装位置。
环境变量配置
依次点击我的电脑 ->属性->高级系统设置->环境变量,在系统变量选项卡中,新建一个系统变量,如下,变量名为JAVA_HOME,变量值为本地安装java的路径。
添加好JAVA_HOME后,需要为Path变量增加值,选择Path变量(同样在系统变量中),点击编辑,弹出如下弹窗,新建两个值,分别为%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin。
添加好后,确定、保存。
测试
环境变量配置好后,测试java是否安装成功,win+R打开运行对话框,输入cmd命令进入命令行窗口,输入java -version查看java版本,有输出则说明java安装成功。
2 scala 安装
下载
spark是由scala语言编写的,需要安装scala。
地址:https://www.scala-lang.org/download/
根据系统下载对应的版本,进行安装,安装位置可自行选择。
环境变量配置
同样,在系统变量的Path中,增加一个值,为scala的安装路径。
测试
同样,打开命令行窗口,输入scala,出现如下界面表示安装成功。
3 hadoop安装
下载
地址:http://hadoop.apache.org/releases.html
下载,安装到本地。
需要注意的是hadoop的安装路径中不要有空格,例如不要放在Program Files文件夹下。
环境变量配置
新增HADOOP_HOME系统变量,值为本地hadoop安装路径。
增加Path系统变量的值,为%HADOOP_HOME%\bin
4 spark安装
下载
下载地址:http://spark.apache.org/downloads.html
下载,然后本地安装。
需要注意的是spark版本需要和hadoop版本对应,如界面所示的spark 3.0.0对应hadoop 2.7。
环境变量配置
新增SPARK_HOME系统变量,值为本地spark安装路径。
增加Path系统变量的值,为%SPARK_HOME%\bin。
测试
在命令行窗口,输入spark-shell,出现如下界面,表示spark安装成功。
spark window单机版安装成功!单机版可以用来学习spark的基础使用,python用户可以用pyspark模块使用spark,R用于可以用SparkR包使用spark。
https://blog.csdn.net/jhr112/article/details/115206629
Kafka
- 安装dk
2 下载Kafka
下载地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.0/kafka_2.11-2.1.0.tgz
3 解压并配置Kafka
将kafka_2.11-2.1.0.tgz解压到D:\kafka_2.11-2.1.0文件夹。(注:文件夹不能带空格,否则zookeeper启动报错)
bin目录:启动,停止等命令。
config目录: 配置文件
libs目录: 类库
4 启动和停止kafka
4.1 配置
注:在本实验中我将所有的localhost更换为127.0.0.1
4.1.1 zookeeper.properties
#dataDir与dataLogDir需要指定一个目录(需要创建D:/zookeeper/data与D:/zookeeper/log目录),否则启动kafka会报java.nio.file.AccessDeniedException错误。
dataDir=D:/zookeeper/data
dataLogDir=D:/zookeeper/log
clientPort=2181
maxClientCnxns=0
4.2 启动kafka
进入bin\windows目录下,按先后顺序启动
启动zookeeper,端口2181
zookeeper-server-start.bat ../../config/zookeeper.properties
启动kafka,端口9092
kafka-server-start.bat ../../config/server.properties
Kafka Connect 启动:(此处不需要,用于连接数据库)
connect-standalone.bat ../../config/connect-standalone.properties ../../config/mysql.properties
zookeeper启动
kafka启动成功
4.3 停止kafka
进入bin\windows目录下,按先后顺序启动
kafka-server-stop.bat
zookeeper-server-stop.bat
4.4 topic创建
进入bin\windows目录下
方法一:自动创建
kafka-console-producer.bat --broker-list 127.0.0.1:9092 --topic test
方法二:
创建一个拥有3个副本,1个分区的topic
kafka-topics.bat --create --zookeeper 127.0.0.1:2181 --replication-factor 1 -partitions 3 --topic test1
4.5 topic删除
进入bin\windows目录下
kafka-topics.bat --delete --zookeeper 127.0.0.1:2181 --topic test
4.6 查看topic
进入bin\windows目录下
#查看topic列表
kafka-topics.bat --zookeeper 127.0.0.1:2181 --list
#查看topic名称为test对应的具体信息
kafka-topics.bat --describe --zookeeper 127.0.0.1:2181 --topic test
4.7 启动生产者
kafka-console-producer.bat --broker-list 127.0.0.1:9092 --topic test
4.8 启动消费者
kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test --from-beginning
5 可视化工具kafka-manager
下载地址:
https://github.com/yahoo/kafka-manager/releases 需要编译
编译后:https://pan.baidu.com/s/1qYifoa4 密码:el4o(来源https://www.cnblogs.com/dadonggg/p/8205302.html)
配置conf/application.conf文件
manager.zkhosts="127.0.0.1:2181"
启动: 启动前需要启动zookeeper与kafka
进入bin目录,默认端口9000
输入命令:kafka-manager
成功后访问地址:localhost:9000
创建主题test,关联上面zookeeper 127.0.0.1:2181
点击active下新建的主题
点击圈中topitcs对应数字。
topitcs列表详情
https://blog.csdn.net/qq_34553637/article/details/86672925
脚本
from __future__ import print_function
from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
if __name__ == "__main__":
sc = SparkContext(appName="streamingkafka")
sc.setLogLevel("WARN") # 减少shell打印日志
ssc = StreamingContext(sc, 5) # 5秒的计算窗口
brokers='127.0.0.1:9092'
topic = 'test1'
# 使用streaming使用直连模式消费kafka
kafka_streaming_rdd = KafkaUtils.createDirectStream(ssc, [topic], {"metadata.broker.list": brokers})
lines_rdd = kafka_streaming_rdd.map(lambda x: x[1])
counts = lines_rdd.flatMap(lambda line: line.split(" ")) \
.map(lambda word: (word, 1)) \
.reduceByKey(lambda a, b: a+b)
# 将workcount结果打印到当前shell
counts.pprint()
ssc.start()
ssc.awaitTermination()
https://blog.csdn.net/wulantian/article/details/69525601
spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.4 Kafka_spark.py