spark部署
三台云服务器配置均为单核CPU、2G内存,集群开启zookeeper、journalnode、yarn。
- 官网下载spark2.4.3
- 解压后在
etc/profile
加入SPARK_HOME/bin - 编辑
SPARK_HOME/conf/spark-env.sh
,添加export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
用于指定路径,让spark访问HDFS的数据,另外增加HADOOP_CONF_DIR=
指定hadoop配置文件的路径。
spark部署测试
运行官方测试例程
/bin/run-example SparkPi >2&1 | grep "Pi is"
运行结果
Pi is roughly 3.1414157070785356
spark访问hdfs文件
1、spark-shell
进入spark交互式环境
这部可能报错
"${SPARK_HOME}"/bin/spark-submit --class org.apache.spark.repl.Main --name "
原因是内存不足以运行当前的shell
2、进入shell交互模式后输入hdfs的文件路径scala>val sc.textFiles("/user/test.txt")
可能报错
Cannot allocate memory
原因也是内存不足,SPARK_DRIVER_MEMORY默认大小1G,使用free -h
发现总内存1.8G,可用只有400M。关闭yarn,free查看可用内存700M。修改spark-env.sh文件,增加变量值 SPARK_DRIVER_MEMORY=450
,重新运行成功