How to set up Jupyter Lab on Huawei cloud
วิธีการติดตั้ง Jupyter Lab บน Huawei Cloud
--
สำหรับงานสาย Data Sci หรือ Hackathon ก็ตามที เพื่อนๆมักคุ้นชินกับ การใช้ Google Colab หรือการทำบน Localhost ใช่ไหม
ซึ่งในหลายๆงาน ไม่ว่าจะเป็นงานวิจัย หรือ Hackathon มักจะมี Cloud ให้ใช้ หลายๆคนอาจจะไม่คุ้นชิน ซึ่งคงเป็นเรื่องที่น่าเสียดายมาก ถ้า Facility ที่ได้มาให้คุ้ม
อนึ่ง จริงๆ Cloud ไม่ว่าจะเป็น GCP , AWS , Huawei ก็ Setting คล้ายๆกัน (เพราะเป็น Ubuntu ) บทความนี้จึงสามารถปรับใช้กับ GCP , AWS ได้อีกด้วย
TL;NR
- ใน Windows OS เราสามารถใช้ Bitvise แทน Putty , FileZilla ได้
- Jupyter Lab มีบน Anaconda Version ใหม่ ซึ่งจริงๆ เราสามารถ Download & Install Anaconda ก็สามารถใช้ Jupyter Lab ได้เลย
- Anaconda Version ใหม่ set Path ให้เราเองเวลา Install ไม่ต้องไปแก้ .bashrc อีกต่อไป
- เพื่อที่จะเรียก Jupyter Lab บน Server จากเครื่องเราได้ ต้องทำการ Bind IP ก่อน
0. รู้จักกับ Bitvise
ปกติเราจะใช้การ SSH (Secure Shell) ผ่าน CMD กันใช่ไหม แต่ SSH ของ window จะ Disconnect เอง เมื่อไม่ได้รับ Response ในระยะเวลาหนึ่ง
หลายๆคนอาจจะแก้ปัญหา ด้วยการใช้ Putty แทน ซึ่งสามารถใช้แทน SSH บน CMD ได้
แต่ตัว Putty ไม่สามารถ FTP ได้ จึงต้อง FTP ผ่าน FileZilla แทน แต่หมายความว่า เราต้อง Login 2 Program ซึ่งถือว่ายุ่งยากระดับหนึ่ง ( แล้วตัว Putty กับ FileZilla นี่ไม่ได้ใช้ง่ายนะ ใช้ครั้งแรกต้องมางมแน่ๆ )
ผู้เขียนบทความจึงเสนอให้ใช้ Bitvise แทน โดยสามารถเป็นได้ทั้ง FTP และ SSH ซึ่ง UX&UI ถือว่าใช้ง่ายอย่างสุดๆ ประเภทที่ ใส่ HOST , Username , Password (Port ก็ไม่ต้องใส่ ถ้าเป็น default) ก็สามารถใช้ได้ทันที
อนึ่ง OSX , Linux ไม่มี Bitvise ใครใช้ระบบดังกล่าว ต้องใช้วิธี SSH , FTP แบบเดิม
1. Install Anaconda
1.1 Download Anaconda
Anaconda เป็น Starter Package ของ Python ส่วนตัวผู้เขียนบทความ Download ด้วย wget ผ่าน tsinghua.edu
โดยให้เลือก Download Link ที่เป็น Linux-x86_64.sh เพราะเราทำงานบน Ubuntu-64bit
อย่างไรก็ตาม ถ้า tsinghua.edu เกิดเข้าไม่ได้หรือไม่อัพเดท เพื่อนๆยังสามารถ Download ผ่าน Official Website ได้
1.2 Install Anaconda
สำคัญ ถ้าเป็น Version เก่าๆ เราจะต้อง set enviroment path เอง แต่ถ้า version ใหม่ Anaconda จะถามว่า จะให้ set Enviroment path ไหม ให้ตอบ yes ไป
สำคัญ เวลา set Enviroment Path ทุกครั้ง ต้อง Restart Terminal ่ด้วย(ในที่นี้คือปิดแล้วเปิดใหม่)
2. Install Jupyter lab
Anaconda version ใหม่ๆ ปกติจะติดตั้ง Jupyter Lab ให้แล้ว สามารถทดสอบเปิดได้ผ่านคำสั่งด้านล่าง
3. Binding IP
ก่อนจะไปขั้นตอนต่อไป ต้องเข้าใจเรื่อง Inbound & Outbound ก่อน
เมื่อเราเรียก Jupyter Lab ผ่าน localhost:8000 ซึ่ง Port 8000 ถือเป็น Inbound เพราะเรียกจาก Host เอง
ทางกลับกัน สมมุติเราเรียก SSH ผ่าน ssh user@IP -p 26 , Port 26 นี้ ถือเป็น Outbound เพราะถูกเรียกจาก Client -> Host
Inbound Port, Outbound Port ถือว่าเป็นคนละ Port กัน การที่เรา Mapping Outbound Port : Inbound Port เรียกว่า “การ Bind IP”
ในที่นี้ เมื่อเราต้องการเรียกใช้งาน Jupyter Lab จาก Server สังเกตว่าเป็นการเรียก Outbound Port ของ Client ไป Inbound Port ของ Server ในกรณีนี้ ถึงต้อง Bind IP
ซึ่งวิธีที่ง่ายที่สุด คือ แก้ config บนใน file jupyter_notebook_config.py
4. Start Jupyter Lab Server
จากนั้น เราจะสามารถเรียก IP.huawei.cloud@8080 ผ่าน Web Browser ได้แล้ว
หลังจากนี้ก็สามารถใช้ Conda Install เพื่อติดตั้ง Package ที่จำเป็นเหมือนที่เพื่อนๆเคยทำได้เลย
ในส่วนท้ายของบทความนี้ ต้องขอขอบคุณทาง Huawei Cloud และ True Lab Startup Sandbox ที่จัดการแข่งขันที่น่าสนใจ และเพื่อนๆที่อ่านบทความนี้จนจบด้วยนะครับ
PS.เพื่อนๆที่เซิร์ซเจอบทความนี้ ต้องกำลังแข่ง Hackathon อยู่อย่างแน่นอน (เหมือนเจ้าของบทความในวันนั้น) ขอให้เพื่อนโชคดีกับการแข่งนะครับ
Ref
https://www.programmersought.com/article/47726882708/
https://stackoverflow.com/questions/18675907/how-to-run-conda
https://stackoverflow.com/questions/1621457/about-ip-0-0-0-0-in-django