Thứ tư, 12/09/2018 | 00:00 GMT+7

Cách cài đặt, chạy và kết nối với Jupyter Notebook trên server từ xa

Jupyter Notebook là một ứng dụng web tương tác, open-souce cho phép bạn viết và chạy mã máy tính bằng hơn 40 ngôn ngữ lập trình, bao gồm Python , R , JuliaScala . Một sản phẩm từ Project Jupyter , Notebook Jupyter rất hữu ích cho việc viết mã lặp đi lặp lại vì nó cho phép bạn viết một đoạn mã nhỏ, chạy nó và trả về kết quả.

Notebook Jupyter cung cấp khả năng tạo tài liệu sổ tay, được gọi đơn giản là "sổ ghi chép". Sổ tay được tạo từ Notebook Jupyter là tài liệu nghiên cứu có thể chia sẻ, có thể tái tạo bao gồm các phần tử văn bản phong phú, phương trình, mã và kết quả kết quả của chúng (hình, bảng, ô tương tác). Sổ tay cũng có thể được xuất thành file mã thô, trang HTML hoặc PDF hoặc được sử dụng để tạo trình chiếu hoặc trang web tương tác.

Bài viết này sẽ hướng dẫn bạn cách cài đặt và cấu hình ứng dụng Jupyter Notebook trên web server Ubuntu 18.04 và cách kết nối với ứng dụng này từ máy tính local của bạn. Ngoài ra, ta cũng sẽ xem xét cách sử dụng Jupyter Notebook để chạy một số mã Python ví dụ.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần :

Ngoài ra, nếu máy tính local của bạn đang chạy Windows, bạn cần cài đặt PuTTY trên đó để cài đặt tunnel SSH tới server của bạn . Làm theo hướng dẫn của ta về Cách tạo SSH key với PuTTY trên Windows để download và cài đặt PuTTY.

Bước 1 - Cài đặt Jupyter Notebook

Vì sổ ghi chép được sử dụng để viết, chạy và xem kết quả của các đoạn mã nhỏ, trước tiên, bạn cần cài đặt hỗ trợ ngôn ngữ lập trình. Notebook Jupyter sử dụng kernel dành riêng cho ngôn ngữ, một chương trình máy tính chạy và mã bên trong. Jupyter Notebook có nhiều nhân trong các ngôn ngữ khác nhau , mặc định là IPython . Trong hướng dẫn này, bạn sẽ cài đặt Jupyter Notebook để chạy mã Python thông qua nhân IPython.

Giả sử rằng bạn đã làm theo các hướng dẫn được liên kết trong phần Yêu cầu , bạn nên cài đặt Python 3, pip và môi trường ảo . Các ví dụ trong hướng dẫn này tuân theo quy ước được sử dụng trong hướng dẫn tiên quyết về cài đặt Python 3, đặt tên cho môi trường ảo là “ my_env ”, nhưng bạn nên đổi tên nó.

Bắt đầu bằng cách kích hoạt môi trường ảo:

  • source my_env/bin/activate

Sau đó, dấu nhắc của bạn sẽ có tiền tố là tên môi trường của bạn.

Đến đây bạn đang ở trong môi trường ảo của bạn , hãy tiếp tục và cài đặt Jupyter Notebook:

  • python3 -m pip install jupyter

Nếu cài đặt thành công, bạn sẽ thấy một kết quả tương tự như sau:

Output
. . . Successfully installed MarkupSafe-1.0 Send2Trash-1.5.0 backcall-0.1.0 bleach-2.1.3 decorator-4.3.0 entrypoints-0.2.3 html5lib-1.0.1 ipykernel-4.8.2 ipython-6.4.0 ipython-genutils-0.2.0 ipywidgets-7.2.1 jedi-0.12.0 jinja2-2.10 jsonschema-2.6.0 jupyter-1.0.0 jupyter-client-5.2.3 jupyter-console-5.2.0 jupyter-core-4.4.0 mistune-0.8.3 nbconvert-5.3.1 nbformat-4.4.0 notebook-5.5.0 pandocfilters-1.4.2 parso-0.2.0 pexpect-4.5.0 pickleshare-0.7.4 prompt-toolkit-1.0.15 ptyprocess-0.5.2 pygments-2.2.0 python-dateutil-2.7.3 pyzmq-17.0.0 qtconsole-4.3.1 simplegeneric-0.8.1 six-1.11.0 terminado-0.8.1 testpath-0.3.1 tornado-5.0.2

Cùng với đó, Jupyter Notebook đã được cài đặt vào server của bạn. Tiếp theo, ta sẽ xem qua cách chạy ứng dụng.

Bước 2 - Chạy Notebook Jupyter

Notebook Jupyter phải được chạy từ VPS của bạn để bạn có thể kết nối với nó từ máy local của bạn bằng Đường hầm SSH và trình duyệt web yêu thích của bạn.

Để chạy server Jupyter Notebook, hãy nhập lệnh sau:

  • jupyter notebook

Sau khi chạy lệnh này, bạn sẽ thấy kết quả giống như sau :

Output
[I 19:46:22.031 NotebookApp] Writing notebook server cookie secret to /home/sammy/.local/share/jupyter/runtime/notebook_cookie_secret [I 19:46:22.365 NotebookApp] Serving notebooks from local directory: /home/sammy/environments [I 19:46:22.365 NotebookApp] 0 active kernels [I 19:46:22.366 NotebookApp] The Jupyter Notebook is running at: [I 19:46:22.366 NotebookApp] http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675 [I 19:46:22.366 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 19:46:22.366 NotebookApp] No web browser found: could not locate runnable browser. [C 19:46:22.367 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675&tokenExample_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675

Bạn có thể nhận thấy trong kết quả có cảnh báo No web browser found . Điều này được mong đợi, vì ứng dụng đang chạy trên server và bạn có thể chưa cài đặt trình duyệt web trên đó. Hướng dẫn này sẽ trình bày về cách kết nối với Notebook trên server bằng cách sử dụng tunnel SSH trong phần tiếp theo.

Hiện tại, hãy thoát khỏi Notebook Jupyter bằng cách nhấn CTRL+C theo sau là y , rồi nhấn ENTER để xác nhận:

Output
Shutdown this notebook server (y/[n])? y [C 20:05:47.654 NotebookApp] Shutdown confirmed [I 20:05:47.654 NotebookApp] Shutting down 0 kernels

Sau đó đăng xuất khỏi server bằng cách sử dụng lệnh exit :

  • exit

Bạn vừa chạy Jupyter Notebook trên server của bạn . Tuy nhiên, để truy cập ứng dụng và bắt đầu làm việc với sổ ghi chép, bạn cần kết nối với ứng dụng bằng cách sử dụng tunnel SSH và trình duyệt web trên máy tính local của bạn .

Bước 3 - Kết nối với Ứng dụng Notebook Jupyter bằng Đường hầm SSH

SSH hầm là một cách đơn giản và nhanh chóng để kết nối với ứng dụng Jupyter Notebook đang chạy trên server của bạn. Secure shell (thường được gọi là SSH ) là một giao thức mạng cho phép bạn kết nối với server từ xa một cách an toàn qua mạng không an toàn.

Giao thức SSH bao gồm cơ chế chuyển tiếp cổng cho phép bạn chuyển các ứng dụng nhất định đang chạy trên một số cổng cụ thể trên server đến một số cổng cụ thể trên máy tính local của bạn. Ta sẽ tìm hiểu cách “chuyển tiếp” an toàn ứng dụng Jupyter Notebook đang chạy trên server của bạn (trên cổng 8888 , theo mặc định) đến một cổng trên máy tính local của bạn.

Phương pháp bạn sử dụng để cài đặt tunnel SSH sẽ phụ thuộc vào hệ điều hành máy tính local của bạn. Chuyển đến phần phụ bên dưới phù hợp nhất với máy của bạn.

Lưu ý: Có thể cài đặt và cài đặt Notebook Jupyter bằng Control panel web DigitalOcean, nhưng kết nối với ứng dụng qua tunnel SSH phải được thực hiện thông qua terminal hoặc bằng PuTTY.

SSH Tunneling bằng macOS hoặc Linux

Nếu máy tính local của bạn đang chạy Linux hoặc macOS, bạn có thể cài đặt tunnel SSH chỉ bằng cách chạy một lệnh duy nhất.

ssh là lệnh tiêu chuẩn để mở kết nối SSH, nhưng khi được sử dụng với lệnh -L , bạn có thể chỉ định rằng một cổng nhất định trên server local (tức là máy local của bạn) sẽ được chuyển tiếp đến server nhất định và cổng trên server từ xa (trong trường hợp này là server của bạn). Điều này nghĩa là bất kỳ thứ gì đang chạy trên cổng được chỉ định trên server từ xa ( 8888 , cổng mặc định của Jupyter Notebook) sẽ xuất hiện trên cổng được chỉ định trên máy tính local của bạn ( 8000 trong lệnh ví dụ).

Để cài đặt tunnel SSH của bạn , hãy chạy lệnh sau. Hãy thay đổi cổng 8000 thành một trong những lựa chọn của bạn, ví dụ, nếu 8000 đang được sử dụng bởi một quy trình khác. Bạn nên sử dụng một cổng lớn hơn hoặc bằng 8000 , vì những số cổng đó khó được dùng bởi một quy trình khác. Đảm bảo bao gồm địa chỉ IP server của bạn và tên của user không phải root server của bạn:

  • ssh -L 8000:localhost:8888 sammy@your_server_ip

Nếu không có lỗi nào từ lệnh này, nó sẽ đăng nhập bạn vào server từ xa của bạn. Từ đó, kích hoạt môi trường ảo:

  • source ~/environments/my_env/bin/activate

Sau đó chạy ứng dụng Jupyter Notebook:

  • jupyter notebook

Để kết nối với Jupyter Notebook, hãy sử dụng trình duyệt web yêu thích của bạn để chuyển đến cổng local trên server local : http://localhost: 8000 . Đến đây bạn đã kết nối với Jupyter Notebook, hãy tiếp tục chuyển sang Bước 4 để tìm hiểu cách sử dụng.

SSH Tunneling bằng Windows và PuTTY

PuTTY là một ứng dụng SSH open-souce cho Windows được dùng để kết nối với server của bạn . Sau khi download và cài đặt PuTTY trên máy Windows của bạn (như được mô tả trong hướng dẫn yêu cầu ), hãy mở chương trình và nhập URL server hoặc địa chỉ IP của bạn, như được hiển thị ở đây:

Nhập URL hoặc IP  server  vào Putty

Tiếp theo, nhấp vào + SSH ở cuối ngăn bên trái, sau đó nhấp vào Đường hầm . Trong cửa sổ này, nhập cổng mà bạn muốn sử dụng để truy cập Jupyter trên máy local của bạn ( 8000 ). Bạn nên sử dụng một cổng lớn hơn hoặc bằng 8000 vì những số cổng đó khó được dùng bởi một quy trình khác. Tuy nhiên, nếu 8000 được sử dụng bởi một quy trình khác, hãy chọn một số cổng khác, không sử dụng. Tiếp theo, đặt đích là localhost:8888 , vì cổng 8888 là cổng mà Jupyter Notebook đang chạy. Sau đó nhấp vào nút Thêm và các cổng sẽ xuất hiện trong trường Cổng được chuyển tiếp :

 Cấu hình  tunnel  SSH trong Putty

Cuối cùng, nhấp vào nút Mở . Điều này sẽ vừa kết nối máy của bạn với server qua SSH vừa tạo tunnel cho các cổng mong muốn. Nếu không có lỗi nào xuất hiện, hãy tiếp tục và kích hoạt môi trường ảo của bạn:

  • source ~/environments/my_env/bin/activate

Sau đó chạy Jupyter Notebook:

  • jupyter notebook

Tiếp theo, chuyển đến cổng local trong trình duyệt web yêu thích của bạn, ví dụ như http://localhost: 8000 (hoặc bất kỳ số cổng nào bạn chọn), để kết nối với version Jupyter Notebook đang chạy trên server . Đến đây bạn đã kết nối với Jupyter Notebook, hãy tiếp tục chuyển sang Bước 4 để tìm hiểu cách sử dụng.

Bước 4 - Sử dụng Jupyter Notebook

Khi được truy cập thông qua trình duyệt web, Jupyter Notebook cung cấp Control panel sổ tay hoạt động như một trình duyệt file và cung cấp cho bạn giao diện để tạo, chỉnh sửa và khám phá sổ ghi chép. Hãy coi những sổ ghi chép này là tài liệu (được lưu bằng phần mở rộng file .ipynb ) mà bạn điền vào bất kỳ số ô riêng lẻ nào. Mỗi ô chứa một editor tương tác được dùng để chạy mã hoặc viết văn bản được kết xuất. Ngoài ra, sổ ghi chép cho phép bạn viết và chạy các phương trình, bao gồm đa phương tiện khác, chẳng hạn như hình ảnh hoặc các ô tương tác, và chúng có thể được xuất và chia sẻ ở nhiều định dạng khác nhau ( .ipyb , .pdf , .py ). Để minh họa một số chức năng này, ta sẽ tạo file sổ ghi chép từ Control panel sổ tay, viết một bảng văn bản đơn giản với một phương trình và chạy một số mã Python 3 cơ bản.

Đến thời điểm này, bạn hẳn đã kết nối với server bằng tunnel SSH và khởi động ứng dụng Jupyter Notebook từ server của bạn. Sau khi chuyển đến http://localhost: 8000 , bạn sẽ thấy một trang đăng nhập:

Màn hình đăng nhập Jupyter Notebook

Trong trường Mật khẩu hoặc mã thông báo ở trên cùng, nhập mã thông báo hiển thị trong kết quả sau khi bạn chạy jupyter notebook từ server của bạn :

Output
[I 20:35:17.004 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret [I 20:35:17.314 NotebookApp] Serving notebooks from local directory: /home/sammy [I 20:35:17.314 NotebookApp] 0 active kernels [I 20:35:17.315 NotebookApp] The Jupyter Notebook is running at: [I 20:35:17.315 NotebookApp] http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675 [I 20:35:17.315 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 20:35:17.315 NotebookApp] No web browser found: could not locate runnable browser. [C 20:35:17.316 NotebookApp] . . .

Ngoài ra, bạn có thể sao chép URL đó từ kết quả của terminal và paste vào thanh địa chỉ của trình duyệt.

Tự động, sổ ghi chép Jupyter sẽ hiển thị tất cả các file và folder được lưu trữ trong folder mà sổ ghi chép chạy từ đó. Tạo file sổ ghi chép mới bằng cách nhấp vào Mới rồi đến Python 3 ở trên cùng bên phải của Trang tổng quan sổ tay:

Tạo sổ ghi chép Python3 mới

Trong notebook mới này, thay đổi các tế bào đầu tiên chấp nhận cú pháp markdown bởi Cell click> Loại di động> Markdown trên thanh chuyển ở phía trên. Ngoài chức năng đánh dấu, Loại ô này cũng cho phép bạn viết phương trình trong LaTeX. Ví dụ: nhập nội dung sau vào ô sau khi thay đổi thành đánh dấu:

# Simple Equation  Let us now implement the following equation in Python: $$ y = x^2$$  where $x = 2$ 

Để chuyển dấu xuống thành văn bản có dạng thức, hãy nhấn CTRL + ENTER và kết quả sau sẽ là:

Chuyển phương trình mẫu thành văn bản có dạng thức

Bạn có thể sử dụng các ô đánh dấu để ghi chú và ghi lại mã của bạn .

Bây giờ, hãy thực hiện một phương trình đơn giản và in kết quả. Bấm Chèn > Chèn Ô Bên dưới để chèn một ô. Trong ô mới này, hãy nhập mã sau:

x = 2 y = x*x print(y) 

Để chạy mã, nhấn CTRL + ENTER và sau đây sẽ là kết quả:

Giải phương trình mẫu

Đây là một số ví dụ tương đối đơn giản về những gì bạn có thể làm với Jupyter Notebook. Tuy nhiên, nó là một ứng dụng rất mạnh mẽ với nhiều trường hợp sử dụng tiềm năng. Từ đây, bạn có thể thêm một số thư viện Python và sử dụng sổ ghi chép như bạn làm với bất kỳ môi trường phát triển Python nào khác.

Kết luận

Như vậy, bạn có thể viết mã và văn bản Python có thể tái tạo bằng Notebook Jupyter chạy trên server từ xa. Để tham quan nhanh Jupyter Notebook, hãy nhấp vào Trợ giúp trong thanh chuyển trên cùng và chọn Tham quan giao diện user như được hiển thị ở đây:

Tìm kiếm chuyến tham quan trợ giúp về  Notebook  Jupyter

Nếu bạn quan tâm, ta khuyến khích bạn tìm hiểu thêm về Notebook Jupyter bằng cách xem qua tài liệu Dự án Jupyter . Ngoài ra, bạn có thể xây dựng dựa trên những gì bạn đã học được trong hướng dẫn này bằng cách học cách viết mã trong Python 3 .


Tags:

Các tin liên quan

Cách cài đặt và cấu hình Postfix làm server SMTP chỉ gửi trên Debian 9
2018-09-07
Cách cấu hình BIND làm server DNS Mạng Riêng trên Debian 9
2018-09-06
Thiết lập server ban đầu với Debian 9
2018-09-04
Cách cài đặt Linux, Apache, MariaDB, PHP (LAMP) trên Debian 9
2018-09-04
Cách phát triển ứng dụng Node.js TCP Server bằng PM2 và Nginx trên Ubuntu 16.04
2018-07-23
Cách thiết lập server VPN IKEv2 với StrongSwan trên Ubuntu 18.04
2018-07-16
Cách cấu hình BIND làm server DNS Mạng riêng trên Ubuntu 18.04
2018-07-06
Sử dụng Bộ định tuyến React 4 với Kết xuất phía server
2018-06-04
Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trên Ubuntu 18.04
2018-05-23
server Express cơ bản trong Node.js
2018-05-04