Jupyter ile Uzak Server’a Bağlanma
--
Merhabalar, bu kısa yazıda sizlere Jupyter Notebook kullanarak nasıl remote servera bağlanabileceğinizi göstereceğim. Böylece serverdan kendi local bilgisayarınıza istediğiniz dosyaları kolayca indirebilir, notebooklarınızı görüntüleyebilir, serverdaki cpu ve gpu’dan yararlanarak kod yazabilir kısacası Jupyter’in size sunduğu tüm avantajları server altyapısı ile kullanabilirsiniz.
- Jupyter Kurulumu
Öncelikle serverdaki hesabımıza jupyter kurmamız gerekiyor. pip paketini kullanarak Jupyter’i kurabiliriz.
pip install jupyter
2. Virtual Environment
Virtual environment python paketlerimizi yüklememiz için önemlidir. Bazen projelerimizde kullanacağımız paketlerin sürümleri çakışabilir ve bunun sonucunda python ortamınız kullanılmaz bir hal alabilir. O sebeple proje bazlı virtual environmentlar hayat kurtarır. Serverda bir virtual environment kurmak için basitçe virtualenv paketini kullanabilirsiniz.Öncelikle bu paketi indirmeniz gerekiyor. Bunu pip ile yapabilirsiniz.
pip install virtualenv
Ardından tek yapmanız gereken pathinizi seçerek virtual environmentınızı oluşturmak. Burada size önerim tüm virtual environmentlarınız için bir directory oluşturmak. Ardından o directory’nin içine environmentlarınızı kurabilirsiniz. Örneğin venvs diye bir klasörünüz var ve buraya ‘env-medium’ adında bir environment kurmak istiyorsunuz, bunun için:
virtualenv venvs/env-medium
komutunu çalıştırmanız yeterli olacaktır. Ardından bu environment’i aktif etmemiz ve buradaki ortama bağlanıp çalışacağımızı belirtmemiz gerekiyor. Bunu da basitçe şu komut ile belirtiyoruz:
source venvs/env-medium/bin/activate
Bunu yaptığınızda ekranda o environment’a bağlı olduğunuzu kullanıcı adınızın yanında görebilirsiniz.
Eğer environmentınızdan çıkmak istiyorsanız terminale:
deactivate
yazıp çıkış yapabilirsiniz. Bunun ardından kullanıcı adınızın yanındaki env isminin yok olduğunu göreceksiniz.
3. Jupyter İle Server Bağlantısı
3.1 Server İçerisi
Jupyter notebooklarınızı kerneller ile açar ve kodlarınız bu kerneller üzerinde çalışır. Bu sebeple kernelimizi virtual environment ortamında tanımlayıp jupyter içine yüklediğimizde istediğimiz notebook’u istediğimiz virtual environment aracılığı ile çalıştırabiliriz. Bu nedenle ilk adımımız yeni bir kernel tanımlamak olacak.
3.1.1 Kernel Yükleme
Burada önemli olan şey kernelimizi virtual environment’a bağlı iken yüklemek. Böylece o kernel direkt olarak virtual environment içindeki tüm paketleri notebook’da kullanabilecek. Bu nedenle öncelikle virtual environmentımızı aktif ediyoruz.
source venvs/env-medium/bin/activate
Ardından ipykernel paketini yükleyeceğiz. Böylece bazı durumlarda oluşabilecek kernel uyumsuzluklarının önüne geçebiliriz.
pip install ipykernel
Artık kernelimizi istediğimiz isimde oluşturabiliriz. deneme-medium adında bir kernel oluşturalım.
python -m ipykernel install — user — name=”deneme-medium”
Artık bağlı olduğumuz environmentdaki paketleri kullanabileceğimiz bir kernelimiz var. Şimdi environmentımızı deactivate edip serverımızda bir port belirleyerek (ben 8892'yi kullanıcam) bu porta notebook bilgilerini yollayabiliriz. Bunu şu komutla yapıyoruz:
jupyter notebook — no-browser — port=8892
Artık bu kernel hep jupyterinize tanımlı bir şekilde kalacak ve buraya kadar olan steplerden sadece port açma kısmını yapmanız gerekecek. Tabiki eğer bir library yüklemek isterseniz kernelinizi yüklediğiniz zaman aktif olan environmentınızı tekrar aktif hale getirip istediğiniz kütüphaneyi yükleyebilirsiniz.
3.2 Local Bilgisayarımız
Evet artık server tarafında bize jupyter notebook bilgilerini göndermeye hazır bir portumuz var. Artık tek yapmamız gereken bu portu kendi bilgisayarımızdaki bir port yardımı ile dinlemek. Bunun için terminalde şu komutu giriyoruz:
ssh -L 8889:localhost:8892 username@server_adress
- -L: local bir port açar
- username@server_adress -> server’a bağlanırken kullandığınız bilgiler
Bu komut bilgisayara 8889 local portundan 8892 portunu dinle diyor.
Şimdi yapmanız gereken hangi web browser’ı kullanıyorsanız onu açıp localhost:8889 yazmak.
Karşınıza Çıkan ekranda sizden giriş token’ı isteyecek. Bunu serverdaki token kısımdan alacağız. Aşağıdaki resimden hangi kısmı alacağınızı daha net görebilirsiniz.
Vee artık jupyterin tüm nimetlerini serverın altyapısıyla kullanmaya hazırız.
Bir üstteki resimde de görebileceğiniz gibi new butonuyla yeni bir notebook yaratırken kullanacağınız kerneli seçebiliyorsunuz. Biz deneme-medium kernelimizi kendi environmentımız içerisindeyken yarattığımız için tüm paketlerimiz kullanıma hazır bir şekilde bizi bekliyor olacak. Yeni paketler yüklemek için terminalden server’a bağlanıp istediğiniz environment’ı aktif edip yüklemelerinizi yapabilirsiniz.
Umarım biraz da olsa local bilgisayarınızı rahatlatacak bir çözüm olan jupyter’in uzak sunucuya bağlanmasını anlatabilmişimdir. İletişim için: