Me gustaría configurar un servidor que pueda soportar un equipo de ciencia de datos de la siguiente manera: ser un punto central para almacenar, versionar, compartir y, posiblemente, también ejecutar cuadernos Jupyter.
Algunas propiedades deseadas:
- Diferentes usuarios pueden acceder al servidor y abrir y ejecutar cuadernos almacenados por ellos o por otros miembros del equipo. La pregunta interesante aquí es cuál sería el comportamiento si el usuario X ejecuta celdas en un cuaderno creado por el usuario Y. Supongo que el cuaderno NO debe cambiarse:
- La solución debe ser autohospedada.
- Los cuadernos deben almacenarse en el servidor o en la unidad de Google o en una instancia autohospedada de owncloud.
- (Bonus) Las computadoras portátiles estarán bajo el control de versiones de git (git puede ser autohospedado. No puede vincularse a GitHub o algo por el estilo).
Miré a JupyterHub y Binder . Con el primero, no entendía cómo permitir el acceso cruzado de usuarios. Este último parece admitir solo GitHub como el almacenamiento de los portátiles.
¿Tienes experiencia con alguna de las soluciones?
software-recommendation
Dror Atariah
fuente
fuente
Respuestas:
Airbnb abrió recientemente su repositorio interno de conocimiento de ciencia de datos: https://github.com/airbnb/knowledge-repo
Por su léame, parece que podría ajustarse libremente a su caso de uso:
También hay una publicación de blog que comenta sobre su motivación.
fuente
JupyterHub no proporciona un sistema de control de versiones ni facilita el intercambio de portátiles. Usted mencionó la limitación de Binder.
Prueba Zeppelin . La versión 0.7 debería lanzarse dentro de unos días.
En esencia, creo que cumple con todos los requisitos que publicaste. Además de eso, ofrece capacidades de visualización más ricas y una gran cantidad de otras funciones (funciona con Shiro, Knox, Kerberos, ¿seguro Spark cualquiera?).
fuente
La única solución autohospedada que conozco es la configuración de nube paga de Anaconda Enterprise, https://anaconda.org/about . ¡Las otras soluciones que conozco no son autohospedables!
fuente
¿No es esta solución lo suficientemente buena?
Puede proteger el acceso con ssh, y los archivos alojados podrían ser el repositorio git que desee, con diferentes accesos de usuario de Linux (o lo que sea). Necesitarás tu propio servidor.
fuente
Lo que encontré: compartir cuadernos para científicos de datos no es un formato deseable para la comunicación. Muchos de ellos prefieren IDE como Spider / RStudio o simplemente editores de texto (conozco algunos científicos de datos que usan
vi
).Es posible que solo comparta código por su control de origen y datos por almacenes en la nube. Aumentará la flexibilidad.
Recientemente he abierto una herramienta que combina código, datos y las dependencias entre datos y código en un solo entorno y hace que su proyecto de ciencia de datos sea reproducible: DVC o dataversioncontrol.com (hay un tutorial).
Con la herramienta DVC, solo puede compartir su proyecto con Git, sincronizar datos a S3 con un solo comando DVC. Si algunos de sus científicos de datos deciden cambiar el código en cualquier etapa de su proyecto, el resultado final podría reproducirse fácilmente con un solo comando
dvc repro data/target_metrics.txt
.fuente
Laboratorio de datos de Domino ofrece alojamiento de portátiles locales, SaaS y VPC (Jupyter, Zeppelin, RStudio), integración git, cómputo escalable, plantillas de entorno y muchas otras cosas útiles. Las ofertas de locales / VPC pueden ser excesivas y demasiado caras si es un equipo pequeño, pero los planes SaaS tienen un precio bastante razonable.
[Divulgación completa: soy un ex empleado de Domino]
fuente