文档

Jupyterhub

更新时间:

Jupyterhub是一个支持多用户的Notebook服务器,用于创建、管理和代理多个Jupyter Notebook实例。本文为您介绍如何访问Jupyterhub的Web UI,以及Jupyterhub的使用示例。

前提条件

  • 已创建DataScience集群。

  • 集群安全组中已打开12443端口。

获取主节点的公网IP地址

  1. 进入集群管理页签。

    1. 登录阿里云E-MapReduce控制台

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组

    3. 单击上方的集群管理页签。

  2. 集群管理页面,单击相应集群所在行的详情

  3. 集群基础信息页面的主机信息区域,获取主节点的公网IP地址。

    IP

添加Linux用户

  1. 通过SSH方式连接集群。

    详情请参见登录集群

  2. 执行如下命令,添加Linux用户。

    useradd <user>
    说明

    user为待添加的用户名。

  3. 执行如下命令,设置Linux用户的密码。

    passwd <user>
  4. 执行如下命令,编辑jupyterhub_config.py

    vim /etc/jupyterhub/jupyterhub_config.py
  5. 添加用户至白名单。

    c.Authenticator.whitelist = {'admin', 'admin1','<user>', 'aiker'}
    说明

    user步骤2添加的Linux用户名。

访问Jupyterhub的Web UI

  1. 添加12443端口到安全组。

    详情请参见添加安全组规则

  2. 访问Web UI。

    在浏览器地址栏输入https://<主节点公网IP地址>:12443,即可访问相应的Web UI。

    主节点公网IP地址的获取方式请参见获取主节点的公网IP地址

示例

本文通过以下三种方式为您展示Jupyterhub的使用:

  • WordCount

    1. 通过SSH方式连接集群。

      详情请参见登录集群

    2. 创建测试数据hello.txt,内容如下:

      hello world
      hello alibaba
      hello taobao
    3. 创建测试数据的上传目录。

      hadoop fs -mkdir  hdfs://emr-header-1:9000/user/spark/
    4. 上传测试数据至HDFS。

      hadoop fs -put hello.txt hdfs://emr-header-1:9000/user/spark/
    5. 在Jupyterhub页面,选择新建 > Python 3

      访问Jupyterhub的Web UI,详情请参见访问Jupyterhub的Web UI

    6. 拷贝如下代码至Cell中并单击运行

      代码如下:

      import findspark
      findspark.init()
      from pyspark import SparkContext, SparkConf
      try:
          sc.stop()
      except:
          pass
      conf = SparkConf().setAppName("wordcount").setMaster("local")
      sc = SparkContext(conf = conf)
      
      lines = sc.textFile("hdfs://emr-header-1:9000/user/spark/hello.txt")
      words = lines.flatMap(lambda line:line.split())
      pairs = words.map(lambda word:(word,1))
      counts = pairs.reduceByKey(lambda a,b:a + b)
      counts.countByKey()
      print(counts.collect())
      说明

      此方式支持local和yarn-client模式,不支持yarn-cluster模式,仅spark-submit方式支持yarn-cluster模式。

      WordCount

      返回结果如下:WordCount_result

  • MatPlot

    1. 在Jupyterhub页面,选择新建 > Python 3

      访问Jupyterhub的Web UI,详情请参见访问Jupyterhub的Web UI

    2. 拷贝如下代码至Cell中并单击运行

      代码如下:

      import numpy as np
      from matplotlib import  pyplot as plt
       
      ys = 200 + np.random.randn(100)
      x = [x for x in range(len(ys))]
      plt.plot(x,ys,'_')
      plt.fill_between(x,ys,195,where=(ys>195),facecolor = 'g',alpha = 0.6)
      plt.title('Fills and alpha example')
      plt.show()

      MatPlot

      返回结果如下:MatPlot_result

  • spark-submit

    1. 通过SSH方式连接集群。

      详情请参见登录集群

    2. 执行如下命令,查找JAR包。

      find / -name spark-examples_2.11-2.4.5.jar

      本示例返回信息如下所示:

      /opt/apps/ecm/service/spark/2.4.5-hadoop2.8-2.0.1/package/spark-2.4.5-hadoop2.8-2.0.1/examples/jars/spark-examples_2.11-2.4.5.jar
    3. 进入JAR包目录。

      cd /opt/apps/ecm/service/spark/2.4.5-hadoop2.8-2.0.1/package/spark-2.4.5-hadoop2.8-2.0.1/examples/jars/
    4. 根据相应模式提交Spark任务。

      • local模式

        spark-submit --master local --class org.apache.spark.examples.SparkPi spark-examples_2.11-2.4.5.jar 100
      • yarn-client模式

        spark-submit --master yarn-client --class org.apache.spark.examples.SparkPi spark-examples_2.11-2.4.5.jar 100
      • yarn-cluster模式

        spark-submit --master yarn-cluster --class org.apache.spark.examples.SparkPi spark-examples_2.11-2.4.5.jar 100

安装numpy包

您可以根据以下步骤,安装numpy包至Jupyterhub环境中。

  1. 通过SSH方式连接集群。

    详情请参见登录集群

  2. 执行如下命令,安装numpy包。

    conda install -c conda-forge numpy -n jt
    说明

    如果您使用的是Worker节点,则需要先给Worker节点开公网IP,再执行安装命令。Worker节点开通公网IP的详情,请参见Worker节点开通公网IP

  • 本页导读 (1)
文档反馈