如何查找在计算机的不同核心中创建的Spark RDD

时间:2016-08-12 22:48:21

标签: python apache-spark ipython

我只想更多地了解Spark。所以想问这个问题。

我当前在本地计算机上安装了Spark。它的硬度为16GB。

我已经连接了一台运行Pyspark的Jupyter笔记本。

所以现在当我在那个笔记本上做任何编码时,比如读取数据并将数据转换成Spark DataFrame,我想检查一下:

1)。所有数据集都在本地计算机上分发。就像它使用不同的CPU核心等分发数据集一样?有没有办法找到它?

2)。仅使用没有火花的Jupyter笔记本运行代码和计算与使用Pyspark运行Jupyter笔记本不同?就像第一个只使用机器的一个核心并使用一个线程运行而具有Pyspark的Jupyter笔记本运行代码并使用多线程/处理在CPU的不同内核上运行?这种理解是否正确?

有没有办法检查这些。

由于

1 个答案:

答案 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上提供