我只想更多地了解Spark。所以想问这个问题。
我当前在本地计算机上安装了Spark。它的硬度为16GB。
我已经连接了一台运行Pyspark的Jupyter笔记本。
所以现在当我在那个笔记本上做任何编码时,比如读取数据并将数据转换成Spark DataFrame,我想检查一下:
1)。所有数据集都在本地计算机上分发。就像它使用不同的CPU核心等分发数据集一样?有没有办法找到它?
2)。仅使用没有火花的Jupyter笔记本运行代码和计算与使用Pyspark运行Jupyter笔记本不同?就像第一个只使用机器的一个核心并使用一个线程运行而具有Pyspark的Jupyter笔记本运行代码并使用多线程/处理在CPU的不同内核上运行?这种理解是否正确?
有没有办法检查这些。
由于
答案 0 :(得分:0)
Jupyter主要有三部分Jupyter Notebook,Jupyter Clients和Kernels。 http://jupyter.readthedocs.io/en/latest/architecture/how_jupyter_ipython_work.html
以下是Jupyter主页的内核简短说明。
内核是在特定内容中运行交互式代码的进程 编程语言并将输出返回给用户。内核也 响应标签完成和内省请求。
Jupyter的工作是在内核(如python内核,spark内核......)和web界面(你的笔记本)之间进行通信。因此,引擎盖上的火花正在为你运行驱动程序和执行程序,Jupyter帮助与火花驱动程序进行通信。
1)。所有数据集都在本地计算机上分发。喜欢 它使用不同的CPU核心等分发数据集?在那儿 一种找到它的方法?
Spark将使用--num-executors
生成n个执行程序(负责执行任务的进程),执行程序由spark驱动程序管理(程序/进程负责通过Spark引擎运行作业)。因此,在运行spark程序时指定执行程序的数量,您将找到此内核conf目录。
2)。仅使用Jupyter笔记本运行代码和计算 没有火花与Pyspark运行Jupyter笔记本有什么不同? 就像第一个只使用机器的一个核心并运行使用 一个线程,而与Pyspark的Jupyter笔记本运行代码和 使用多线程/处理在不同的CPU核心上进行计算? 这种理解是否正确?。
是的,正如我解释的那样,Jupyter只是一个允许你运行代码的界面。在引擎盖下,Jupyter连接到内核,无论是普通的Python还是Apache Spark。
Spark拥有自己监控作业的良好UI,默认情况下它在端口4040上的spark主服务器上运行。在您的情况下,它将在http://localhost:4040上提供