
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。

创建保密字典: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

切换命名空间到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"

配置项名称: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=53.4创建配置项:node-one-configNode在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小时:432004.创建存储卷(PersistentVolume)、存储声明(PersistentVolumeClaim)
创建存储卷:snb-pv

创建存储声明:snb-pvc

创建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

应用名称设置为: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*

应用名称设置为: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:test5.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观察日志:
应用名称设置为: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观察日志:
应用名称设置为: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观察日志:
配置NAT或SLB,映射外网到web-svc服务,这部分忽略,请参考阿里云文档。注:配置NAT请注意ECS的安全组配置中网络配置。
7.登录试用配置外网访问后,登录页如下:
默认用户名和密码:
默认用户名:snb-demo@
默认密码:123456
7.2配置Node计算节点信息环境--重新挂载环境中的"域名或者IP"配置项修改为:如下图:




print("WelcometotheworldofSmartNoteBook\n"*15)
公众号:新语数据故事会

微信联系
Email联系wangxinyi@