启动Spark集群

来自CloudWiki
跳转至: 导航搜索

Spark 最初的设计目标是使数据分析更快,不仅运行速度快,也要能快速、容易地编写程序。 Spark 为了使程序运行更快,提供了内存计算和基于 DAG 的任务调度执行机制,减少了迭代计算时的 I/O 开销。而为了使编写程序更为容易, Spark 使用简练、优雅的 Scala 语言编写,以及基于 Scala 提供了交互式的编程体验。同时, Spark 支持 Scala 、 Java 、 Python 、 R 等多种编程语言。

Spark 与 Hadoop 的运行速度的差异主要是因为 Spark 的中间数据存放于内存中,有更高的迭代运算效率,而 Hadoop 每次迭代的中间数据存放于 HDFS 中,涉及硬盘的读写,明显降低了运算效率。

实训环境

(1) 使用 CentOS 6.10 的 Linux 操作系统搭建的 3 个节点的 Hadoop 集群。

(2) 使用 1.8 的 JDK 。

(3) 使用 2.6.4 版本的 Hadoop 。

(4) 使用 2.3.1 版本的 Spark 。

实训步骤

(1) 在 Linux 终端执行命令“ $HADOOP_HOME/sbin/start-all.sh ”,或双击桌面上名称为“ hadoop ”的图标,启动 hadoop 集群。

(2) 在 Linux 终端执行命令“ $SPARK _HOME/sbin/start-all.sh ”,或双击桌面上名称为“ spark’ ”的图标,启动 spark 集群。

(3) 在 Linux 终端执行命令“ service mysqld start ”启动 mysql 服务。

(4) 在 Linux 终端执行命令“ hive --service metastore & ”启动 Hive 服务。

(5) 在 Linux 终端执行命令“ spark-shell ”进入 spark shell 命令窗口,若需要退出命令行,则可通过输入“ :q ”并回车进行退出操作。

(6) 启动 Spark 集群后,可通过网址“ http://matser:4040 ”在浏览器上查看 Spark 监控窗口。

实训注意事项

(1) 数据或代码文件可通过实训环境的“文件传输”助手进行上传下载,文件默认上传到环境中“ /data ”路径下,对于课程对应代码中出现的数据路径,应用时需根据实际情况进行修改。

(2) 在搭建课程相关的 Scala 工程时,选择添加的 Scala 组件的目录为 “ /usr/local/scala-2.11.5 ” ; 选择添加 spark/jars 包的路径为“ /usr/local/spark/jars/ ”,其中,由于 Linux 系统目录与 Windows 目录有所区别,注意选择添加 jar 包时不要直接选取 jars 目录,可通过点击第一个 jar 包,按住 Shift 键,再点击最后一个 jar 包选中所有 jar 包,通过找到“ commons-compiler-3.0.8.jar ” , 按 Ctrl 取消该 jar 包的选择。

(3) 执行数据上传到 HDFS 目录的步骤之前,需要先手动创建 HDFS 目录,可通过在 Linux 终端执行命令“ hdfs dfs -mkdir -p /user/root/ ”创建 /user/root 目录。运行命令后可通过在浏览器网址“ http://master:50070/dfshealth.jsp” 上查看 HDFS 目录文件。

(4) 启动 Spark 集群后,可通过网址“ http://matser:4040 ”在浏览器上查看 Spark 监控窗口。

(5) 运行 spark-submit 命令时,可通过 yarn 集群或者 Spark 集群的方式提交,需要注意的是,通过 Spark 集群的方式提交时,平台环境对应的 url ,即视频中出现的 “ --master ” 后的设置,需要在平台浏览器输入网址 “master:8080” ,根据网址页面中对应的 url 进行修改,例如修改为“ --master spark://spark2-master-0.spark2-master.user-10208.svc.cluster.local:7077 ”。