SmartNoteBook,让数据触手可及!

SmartNoteBook(简称:SNB)是一款现代化的Notebook工具,它是一个开箱即用、云原生、协作式的在线数据科学与数据分析、人工智能平台,是大数据和AI应用开发的一站式平台。SNB具有以下特点:

数据连接:SNB可以连接到各种数据形式,包括数据文件、数据库/仓库、数据湖、图数据库、数据开放平台API等。您可以轻松地获取所需的数据,无论数据存储在哪里。

数据分析与探索:通过SNB可以进行探索性数据分析,内置探索性数据分析的低代码组件、SQL原生支持,支持数据清洗、转换、合并、聚合等操作,深入了解数据的特征和模式。同时也可以使用Python、R等生态体系内各种强大的工具和库。

建立预测模型与服务API:SNB提供了机器学习和预测建模的功能。支持Scikit-learn、TensorFlow等库,建立预测模型,并将其敏捷创建为服务API(FaaS:函数即服务),供其他应用程序调用和使用。

支持知识图谱挖掘:SNB支持连接图数据库进行关系数据的分析、计算和挖掘,将数据之间的关系和连接进行可视化,有助于发现数据之间的隐藏模式和洞察。

数据可视化与报告生成:SNB提供了丰富的数据可视化功能,敏捷可视化分析和输出,用于展示和传达数据的见解和故事。

仪表盘与报告共享:通过SNB创建交互式的数据仪表盘和报告。可以将数据的洞察和分析结果以直观和易于理解的方式与团队或其他利益相关者共享。

数据智灵(人工智能AI伴侣):用户可以通过自然语言描述数据分析需求生成、编辑、bug修复和文档注释Python或SQL代码,这种方式可以帮助用户更加轻松地处理和分析数据,尤其是对于那些不熟悉编程的人员来说,使用自然语言描述数据分析需求会更加直观和方便。


SmartNoteBook致力于实现从数据接入到数据价值的全流程,使数据处理和分析变得更加简单、高效和可协作。通过SNB,您可以轻松地进行数据处理、分析和可视化,并通过共享报告和仪表盘将数据的洞察传达给相关人员。

为了更好地理解Notebook,以及体验SNB(SmartNotebook)功能,我们整理了基于阿里云的文件存储NAS服务、容器服务ACK(K8S:Kubernetes)服务的部署手册。您只需按照指引,无需进行任何修改,即可轻松在阿里云部署SNB,从而畅享SNB的功能。

阿里云文件存储NAS介绍和开通地:

容器服务ACK(容器服务Kubernetes版):说明和开通地址:

1.创建命名空间:

创建K8S命名空间统一为snb,因为服务发现DNS要用到命名空间名称,为了统一配置项,命名空间统一为snb。


2.创建保密字典

创建保密字典:snb-password

切换命名空间到snb,左边导航菜单:配置管理--保密字典,创建Opaque类型字典:snb-password,配置Mysqlroot密码、mimio用户名和密码,key和Value如下:

MYSQL_ROOT_PASSWORD=SnbMysql_WXY_231116MIMIO_ADMIN_USER=SNB_MINIO_ADMINMIMIO_ADMIN_PASSWORD=SnbMinio_WXY_231116


3.创建配置项

切换命名空间到snb,左边导航菜单:配置管理--配置项。需要创建redis-config、web-config、server-config、node-one-config四个配置项,配置项内key就是文件名,value就是配置文件的内容,通过pod的数据卷添加本地存储类型为配置项,将配置项映射到容器路径中,以key为文件名在容器内生成对应配置文件。

3.1创建配置项:redis-config

配置项名称:redis-config

键:

值:

requirepass"5e11a0dc0699-44faf83d-5c122c1b-847b"


3.2创建配置项:web-config

配置项名称:web-config

键:

值:

error_log/var/log/nginx/;设置网路连接序列化,防止惊群现象发生,默认为onmulti_accepton;useepoll;最大连接数,默认为512}http{include/etc/nginx/;默认文件类型,默认为text/plain取消服务日志log_formatmyFormat'$remote_addr–$remote_user[$time_local]$request$status$body_bytes_sent$http_referer$http_user_agent$http_x_forwarded_for';combined为日志格式的默认值sfileon;每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。keepalive_timeout65;错误页limit_req_zone$binary_remote_addrzone=api:10mrate=5r/s;server{listen80;server_;设置上传文件和请求体参数大小charsetutf-8;location/{root/usr/share/nginx/html;html文件名称try_files$uri$uri//;nginx会等待多长时间来获得请求的响应proxy_s_timeout30s;location/kernel{}proxy_pass;/view/notebook/EXECUTE_log_HTML_CONTENT=snb_server/config/email_exec_[File]BUF_SIZE=1024[Minio]MINIO_HOST=_PORT=9000MINIO_ACCESS_KEY=SNB_MINIO_ADMINMINIO_SECRET_KEY=SnbMinio_WXY_231116[FileStorage]USER_LOGO_BUCKET=userlogoUSER_LOGO_DEFAULT=_LOGO_BUCKET=workspacelogoWORKSPACE_LOGO_DEFAULT=_UPLOAD_BUCKET=workspaceupload[K8sConfig]K8S_LOGIN_TYPE=yamlK8S_INTER_PORT=8888[ServerOther]PAGE_NUM=10[Node]NODE_TOTAL_PATH=/snb_node_data/NODE_TOTAL_PATH=nfs://172.30.81.86/data02/NFS_DATA/pvcPERMISSION=:8888/api/node/permission_config[WSRestriction]GRADE_RESTRICTION=BASICGREAT_ENT_SIZE=10GREAT_PRO_SIZE=5
3.4创建配置项:node-one-config

Node在SNB中负责计算的引擎,可以配置多个,每个配置文件有可能不同,先配置一个默认的:

配置项名称:node-one-config

键:node_

值:配置demo如下,具体配置参考snb中的环境--配置同步的内容

环境开发环境的配置如下,配置到node节点或容器内部:/home/.config/node_[snb_server_url]BASE_URL=[workspace]private_pem=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDV3dJQkFBS0JnUUNEK0E2K1lRbWtPWjd1TXllNlBIZ3V6aDhKbXR6blRVRFBlRzRzZ1ZJZnEyNXV1QUhNCnF4bG54WGluM28reFBCTnkvdEdFR3BGMkg4ak1Ncjh1aXZuQjE3WlhadGIwTzV3ei9KVnBLSlJyOVpvSWR0WjEKSEk1ekZEK1I0eWs3UXlNUmRiUTQ5WmlrdjQwS1ZxcnVIQW1sbGRsL2RNaUNvbHR4UzVOUDR5L2VOd0lEQVFBQgpBb0dBRkJtQ09BYlVPVzlqNngyMEl2a0xjNmd3aHFoUDZ1bG83SnN5dno2TWE5eG9FUjcwenpVT3hTK3paUnRRCmJBc2RYem9SQ1NZa0dqSC9HdkxEdHVxek1xczl2MlZzNW5TR2xwQnQ5Q1lseXVLZXFOdUVXcEYyN1RqNEQvMmUKNDNic1orbkdTKzVDNzZJUTczQyt3Tmt0TnJWUmp4UEhvWnR1OE1kN1gxb1lRMEVDUVFDM3Jpb2ZtSXJlOFJBNwpxTmN0SEw3Z0FxWjVSdDd4bG1XdzVqd0FMVWdPamNWeVk3d1dCTGpHOGhiZEFzMUp6VHVyeDJrL3N3S3d2Q2p5Cmphdll3b09oQWtFQXQrMjF1NngxR3g5R2ptQ3RNeUd1U2FodEFXL01tSEdCN0JtaEcrT3o3alBaMm5xZHhkQ0YKRTBGTER6ZDJkVnVsYld0V05yQ3I0bEtSSWJieFlWSVMxd0pBYmpPNFlpeUxaU2NNcmo2bW14SmNFdHFFTnM4bQpnNXZRZDBvclJZL2xZNVg3bUozdUF1ZmlWTHA2clM4NUs4Wk92c2x0aENKS3d1NmhRcVZ0TFNmSEFRSkFJd2NaClFobVEzODV3QUhOMjZMTDBYMEM5S2JYaDcvSkYvUEhRbGVBaWh5M0d3bTN4bUJlakVFeXgvNzdmUjNCaHE5bnkKUEU0ZkhlWDlqNzhvYnhGVFZ3SkFMNm9kdlRDWDJyOStDTWt3SjB5OStmT1ZTRE53aXFaYVQwakpTY2p3NWRUSgpuRk9aTUt3WW1VcklFNXNEY0hGalpTbi81UDBZOUVEQk1paTZobXVXemc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==workspace_uid=111111111111-11111111-11111111-0002envir_uid=0242ac1b0006-11ee82b8-18ed2176-a663[kernel]cull_idle_timeout=4320012小时:43200
4.创建存储卷(PersistentVolume)、存储声明(PersistentVolumeClaim)

创建存储卷:snb-pv


创建存储声明:snb-pvc


5.创建Pod(工作负载)及Service(服务)

创建Pod(工作负载):mysql、minio、redis、web、server、node-one及对应的service:mysql-svc、minio-svc、redis-svc、snb-web-svc、server-svc、node-one-svc。

应用名称

镜像名称(官方)

端口

环境变量

数据卷

服务名

mysql

mysql:5.7.39

3306

类型:保密字典

变量名称:MYSQL_ROOT_PASSWORD,

变量/变量引用:snb-password、MYSQL_ROOT_PASSWORD

类型:云存储

挂载源:snb-pvc

容器路径:/var/lib/mysql

子路径:snb-mysql

mysql-svc

minio

smartnotebook/snb-minio:

9000

9001

保密字典、MINIO_ROOT_USER、snb-password、MINIO_ROOT_USER

保密字典、MINIO_ROOT_PASSWORD、snb-password、MINIO_ROOT_USER

挂载源:snb-pvc

容器路径:/bitnami/minio/data

子路径:snb_minio_data

minio-svc

redis

redis:5.0.8

6379

默认

数据卷:添加本地存储

选择配置项:redis-config

容器路径:/usr/local/etc/redis/

redis-svc

web

smartnotebook/snb-web:1.7.3

80

默认

添加本地存储

配置项、web-conifg

容器路径:/tmp/snb_web/

web-svc

server

smartnotebook/snb-server:1.7.3

9000

默认

添加本地存储

配置项、server-conifg

容器路径:/home/.config/

挂载源:snb-pvc

容器路径:/home

子路径:server

server-svc

node-one

smartnotebook/snb-node:1.7.3

8888

默认

添加本地存储

配置项、node-one-conifg

容器路径:/home/.conifg

挂载源:snb-pvc

容器路径:/home

子路径:node_one

node-one-svc

5.1创建MySQL步骤5.1.1使用镜像创建

应用名称设置为:mysql、副本数量:1、类型:有状态(statefulSet)、时区同步:容器与节点使用相同时区

5.1.2容器配置

镜像名称:mysql镜像版本:5.7.39

环境变量:初始密码变量配置

类型:保密字典、变量名称:MYSQL_ROOT_PASSWORD、变量/变量引用:snb-password--MYSQL_ROOT_PASSWORD


注:变量引用保密字典,配置参照:配置管理--保密字典

数据卷:添加云存储声明(pvc)

选择挂载源:snb-pvc、容器路径:/var/lib/mysql、子路径:mysql

其他选项忽略

5.1.3高级配置

配置服务(service):mysql-svc、虚拟集群IP、3306(服务端口)--3306(容器端口)


其他选项默认。

5.1.4创建:3-5分钟或10分钟左右,具体时间要系统心情。5.1.5进入终端测试

连接mysql、查看库:mysql-uroot-pSnbMysql_WXY_231116


5.2创建Redis步骤5.2.1使用镜像创建

应用名称设置为:redis、副本数量:1、类型:有状态(statefulSet)、时区同步:容器与节点使用相同时区

5.2.2容器配置

镜像名称:redis、镜像版本:5.0.8

启动命令:redis-server参数:/usr/local/etc/redis/

数据卷:添加本地存储、选择配置项:redis-config、容器路径:/usr/local/etc/redis/

其他选项忽略

5.2.3高级配置

配置服务(service):服务名称:redis-svc、服务类型:虚拟集群IP、服务端口:6379容器端口:6379协议:TCP

5.2.4创建:3-5分钟或10分钟左右,具体时间要系统心情5.2.5进入终端测试

连接redis:redis-cli

auth5e11a0dc0699-44faf83d-5c122c1b-847bseta1getaKeys*


5.3创建Minio步骤5.3.1使用镜像创建

应用名称设置为:snb-minio、副本数量:1、类型:有状态(statefulSet)、时区同步:容器与节点使用相同时区

5.3.2容器配置

镜像名称:smartnotebook/snb-minio、镜像版本:

环境变量

保密字典、MINIO_ROOT_USER、snb-password、MINIO_ROOT_USER

保密字典、MINIO_ROOT_PASSWORD、snb-password、MINIO_ROOT_USER

数据卷:添加云存储、挂载源:snb-pvc、容器路径:/bitnami/minio/data、子路径:minio

其他选项忽略

5.3.3高级配置

配置服务(service):服务名称:minio-svc、服务类型:虚拟集群IP

服务端口:9000容器端口:9000协议:TCP

服务端口:9001容器端口:9001协议:TCP

5.3.4创建:

注:/bitnami/minio/data如果时映射挂载的需要修改相关权限,NAS系统的话先映射挂载到一台ECS,chmod777权限。

5.3.5进入终端测试
mcconfighostaddsnb_minio;_minio:testmccptestsnb_minio:_minio:testmclssnb_minio:test‍
5.4创建server步骤5.4.1使用镜像创建

应用名称设置为:server、副本数量:1、类型:有状态(statefulSet)、时区同步:容器与节点使用相同时区

5.4.2容器配置

选择镜像、选择tag:镜像名称:smartnotebook/snb-server、镜像版本:1.7.3

最新版本号:参见

数据卷:

添加本地存储:存储卷类型:配置项、挂载源:server-conifg、容器路径:/home/.config

添加云存储:挂载源:snb-pvc、容器路径:/home、子路径:server

其他选项忽略

5.4.3高级配置

配置服务(service):服务名称:server-svc、服务类型:虚拟集群IP、服务端口:9000容器端口:9000协议:TCP

5.4.4创建:5.4.5观察日志:


5.5创建web步骤5.5.1使用镜像创建

应用名称设置为:web、副本数量:1、类型:有状态(statefulSet)、时区同步:容器与节点使用相同时区

5.5.2容器配置

选择镜像、选择tag:镜像名称:smartnotebook/snb-web、镜像版本:1.7.3、最新版本号:参见

数据卷:

添加本地存储:存储卷类型:配置项、挂载源:web-conifg、容器路径:/tmp/snb_web/

其他选项忽略

5.5.3高级配置

配置服务(service):服务名称:web-svc、服务类型:节点端口、服务端口:80容器端口:80节点端口:31188协议:TCP

5.5.4创建:5.5.5观察日志:


5.6创建node-one步骤:可以配置多节点5.6.1使用镜像创建

应用名称设置为:node-one、副本数量:1、类型:有状态(statefulSet)、时区同步:容器与节点使用相同时区

5.6.2容器配置

选择镜像、选择tag:镜像名称:smartnotebook/snb-node、镜像版本:1.7.3、

最新版本号:参见

数据卷:

添加本地存储:存储卷类型:配置项、挂载源:node-one-conifg、容器路径:/home/.config

添加云存储:挂载源:snb-pvc、容器路径:/home、子路径:node_one

其他选项忽略

5.6.3高级配置

配置服务(service):服务名称:node-one-svc、服务类型:虚拟集群IP、服务端口:8888容器端口:8888协议:TCP

5.6.4创建:5.6.5观察日志:


6.配置NAT网络映射或SLB,使用SNB

配置NAT或SLB,映射外网到web-svc服务,这部分忽略,请参考阿里云文档。注:配置NAT请注意ECS的安全组配置中网络配置。

7.登录试用

配置外网访问后,登录页如下:

默认用户名和密码:

默认用户名:snb-demo@

默认密码:123456

7.2配置Node计算节点信息

环境--重新挂载环境中的"域名或者IP"配置项修改为:如下图:



7.3创建第一notebook:



7.4编写第一行python代码并运行
print("WelcometotheworldofSmartNoteBook\n"*15)



公众号:新语数据故事会


微信联系

Email联系wangxinyi@