Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
HDInsight' ın Spark kümesinde iki yerleşik Python yüklemesi vardır: Anaconda Python 2.7 ve Python 3.5. Müşterilerin dış Python paketlerini yükleme gibi Python ortamını özelleştirmesi gerekebilir. Burada, HDInsight üzerinde Apache Spark kümeleri için Python ortamlarını güvenli bir şekilde yönetmenin en iyi uygulamasını göstereceğiz.
Önkoşullar
HDInsight üzerinde bir Apache Spark kümesi. Yönergeler için bkz. Azure HDInsight'ta Apache Spark kümeleri oluşturma. HDInsight'ta bir Spark kümeniz yoksa, küme oluşturma sırasında betik eylemlerini çalıştırabilirsiniz. Özel betik eylemlerini kullanma hakkında belgelere göz atın.
HDInsight kümelerinde kullanılan açık kaynak yazılım desteği
Microsoft Azure HDInsight hizmeti, Apache Hadoop çevresinde oluşturulan açık kaynak teknolojilerin bulunduğu bir ortam kullanır. Microsoft Azure, açık kaynak teknolojiler için genel bir destek düzeyi sağlar. Daha Fazla Bilgi İçin Bakınız: Azure Desteği Sıkça Sorulan Sorular Web Sitesi. HDInsight hizmeti, yerleşik bileşenler için ek bir destek düzeyi sağlar.
HDInsight hizmetinde kullanılabilen iki tür açık kaynak bileşeni vardır:
| Bileşen | Açıklama |
|---|---|
| Dahili | Bu bileşenler HDInsight kümelerine önceden yüklenmiştir ve kümenin temel işlevselliğini sağlar. Örneğin, Apache Hadoop YARN Resource Manager, Apache Hive sorgu dili (HiveQL) ve Mahout kitaplığı bu kategoriye aittir. Küme bileşenlerinin tam listesi , HDInsight tarafından sağlanan Apache Hadoop küme sürümlerindeki yenilikler bölümünde bulunabilir. |
| Özel | Kümenin kullanıcısı olarak, toplulukta bulunan veya sizin tarafınızdan oluşturulan herhangi bir bileşeni iş yükünüzde yükleyebilir veya kullanabilirsiniz. |
Önemli
HDInsight kümesiyle sağlanan bileşenler tam olarak desteklenir. Microsoft Desteği, bu bileşenlerle ilgili sorunları yalıtmaya ve çözmeye yardımcı olur.
Özel bileşenler, sorunu daha fazla gidermenize yardımcı olmak için ticari olarak makul bir destek alır. Microsoft desteği sorunu çözebilir veya sizden bu teknolojiye ilişkin derin uzmanlığın bulunduğu açık kaynak teknolojileri için kullanılabilir kanallarla etkileşim kurmanızı isteyebilir. Örneğin, kullanılabilecek birçok topluluk sitesi vardır: HDInsight için Microsoft Soru-Cevap soru sayfası, https://stackoverflow.com. Ayrıca Apache projelerinin üzerinde https://apache.orgproje siteleri de vardır.
Varsayılan Python yüklemesini anlama
HDInsight Spark kümelerinde Anaconda yüklüdür. Kümede Iki Python yüklemesi vardır: Anaconda Python 2.7 ve Python 3.5. Aşağıdaki tabloda Spark, Livy ve Jupyter için varsayılan Python ayarları gösterilmektedir.
| Ayarlar | Python 2.7 | Python 3.5 |
|---|---|---|
| Yol | /usr/bin/anaconda/bin | /usr/bin/anaconda/envs/py35/bin |
| Spark sürümü | Varsayılan ayar 2,7 | Yapılandırmayı 3.5 olarak değiştirebilir |
| Livy sürümü | Varsayılan ayar 2,7 | Yapılandırmayı 3.5 olarak değiştirebilir |
| Jupyter | PySpark çekirdeği | PySpark3 çekirdeği |
Spark 3.1.2 sürümü için Apache PySpark çekirdeği kaldırılır ve altında /usr/bin/miniforge/envs/py38/binPySpark3 çekirdeği tarafından kullanılan yeni bir Python 3.8 ortamı yüklenir.
PYSPARK_PYTHON ve PYSPARK3_PYTHON ortam değişkenleri aşağıdakilerle güncelleştirilir:
export PYSPARK_PYTHON=${PYSPARK_PYTHON:-/usr/bin/miniforge/envs/py38/bin/python}
export PYSPARK3_PYTHON=${PYSPARK_PYTHON:-/usr/bin/miniforge/envs/py38/bin/python}
Dış Python paketlerini güvenli bir şekilde yükleme
HDInsight kümesi, hem Python 2.7 hem de Python 3.5 yerleşik Python ortamına bağlıdır. Bu varsayılan yerleşik ortamlara özel paketlerin doğrudan yüklenmesi beklenmeyen kitaplık sürümü değişikliklerine neden olabilir. Ve kümeyi daha fazla parçalayın. Spark uygulamalarınız için özel dış Python paketlerini güvenli bir şekilde yüklemek için adımları izleyin.
conda kullanarak Python sanal ortamı oluşturun. Sanal ortam, projeleriniz için diğerlerini bölmeden yalıtılmış bir alan sağlar. Python sanal ortamını oluştururken kullanmak istediğiniz Python sürümünü belirtebilirsiniz. Python 2.7 ve 3.5 kullanmak isteseniz de sanal ortam oluşturmanız gerekir. Bu gereksinim, kümenin varsayılan ortamının kırılmadığından emin olmaktır. Python sanal ortamı oluşturmak için aşağıdaki betikle kümünüzdeki tüm düğümler üzerinde betik işlemlerini çalıştırın.
-
--prefixconda sanal ortamının yaşadığı yolu belirtir. Burada belirtilen yola göre daha fazla değiştirilmesi gereken birkaç yapılandırma vardır. Bu örnekte, kümenin zaten py35 adlı mevcut bir sanal ortamı olduğundan py35new kullanırız. -
python=sanal ortamın Python sürümünü belirtir. Bu örnekte, kümenin yerleşik sürümüyle aynı sürüm olan 3.5 sürümünü kullanacağız. Sanal ortamı oluşturmak için diğer Python sürümlerini de kullanabilirsiniz. -
anacondasanal ortama Anaconda paketlerini yüklemek için anaconda olarak package_spec belirtir.
sudo /usr/bin/anaconda/bin/conda create --prefix /usr/bin/anaconda/envs/py35new python=3.5 anaconda=4.3 --yes-
Gerekirse dış Python paketlerini oluşturulan sanal ortama yükleyin. Dış Python paketlerini yüklemek için aşağıdaki betikle tüm düğümler için kümenizde betik eylemlerini çalıştırın. Sanal ortam klasörüne dosya yazmak için burada sudo ayrıcalığına sahip olmanız gerekir.
Paket dizininde kullanılabilir paketlerin tam listesini arayın. Diğer kaynaklardan kullanılabilir paketlerin listesini de alabilirsiniz. Örneğin conda-forge aracılığıyla kullanıma sunulan paketleri yükleyebilirsiniz.
Kitaplığı en son sürümüyle yüklemek istiyorsanız aşağıdaki komutu kullanın:
Conda kanalını kullan:
-
seabornyüklemek istediğiniz paket adıdır. -
-n py35newyeni oluşturulan sanal ortam adını belirtin. Adı, sanal ortam oluşturma işleminize göre karşılık gelen şekilde değiştirdiğinizden emin olun.
sudo /usr/bin/anaconda/bin/conda install seaborn -n py35new --yes-
PyPi deposunu kullanın ve
seabornilepy35newayarlarını karşılık gelecek şekilde değiştirin.sudo /usr/bin/anaconda/envs/py35new/bin/pip install seaborn
Belirli bir sürüme sahip bir kitaplık yüklemek istiyorsanız aşağıdaki komutu kullanın:
Conda kanalını kullan:
-
numpy=1.16.1yüklemek istediğiniz paket adı ve sürümüdür. -
-n py35newyeni oluşturulan sanal ortam adını belirtin. Adı, sanal ortam oluşturma işleminize göre karşılık gelen şekilde değiştirdiğinizden emin olun.
sudo /usr/bin/anaconda/bin/conda install numpy=1.16.1 -n py35new --yes-
Veya PyPi deposunu kullanın,
numpy==1.16.1vepy35newsırasıyla değiştirin.sudo /usr/bin/anaconda/envs/py35new/bin/pip install numpy==1.16.1
Sanal ortam adını bilmiyorsanız, kümenin baş düğümüne SSH yapabilir ve tüm sanal ortamları göstermek için komutunu çalıştırabilirsiniz
/usr/bin/anaconda/bin/conda info -e.Spark ve Livy yapılandırmalarını değiştirin ve oluşturulan sanal ortama işaret edin.
Ambari kullanıcı arabirimini açın, Spark 2 sayfası, Yapılandırmalar sekmesine gidin.
Advanced livy2-env'yi genişletin, alta aşağıdaki deyimleri ekleyin. Sanal ortamı farklı bir ön ekle yüklediyseniz, yolu buna karşılık olarak değiştirin.
export PYSPARK_PYTHON=/usr/bin/anaconda/envs/py35new/bin/python export PYSPARK_DRIVER_PYTHON=/usr/bin/anaconda/envs/py35new/bin/python
Gelişmiş spark2-env'yi genişletin, alttaki mevcut dışarı aktarma PYSPARK_PYTHON deyimini değiştirin. Sanal ortamı farklı bir ön ekle yüklediyseniz, yolu buna karşılık olarak değiştirin.
export PYSPARK_PYTHON=${PYSPARK_PYTHON:-/usr/bin/anaconda/envs/py35new/bin/python}
Değişiklikleri kaydedin ve etkilenen hizmetleri yeniden başlatın. Spark 2 hizmetinin yeniden başlatılması, bu değişiklikleri gerektirir. Ambari kullanıcı arabirimi gerekli bir yeniden başlatma anımsatıcısı ister, etkilenen tüm hizmetleri yeniden başlatmak için Yeniden Başlat'a tıklayın.
İşin güncelleştirilmiş Spark yapılandırmasına işaret etmesini sağlamak için Spark oturumunuza iki özellik ayarlayın:
spark.yarn.appMasterEnv.PYSPARK_PYTHONvespark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON.Terminal veya not defteri kullanarak
spark.conf.setişlevini kullanın.spark.conf.set("spark.yarn.appMasterEnv.PYSPARK_PYTHON", "/usr/bin/anaconda/envs/py35/bin/python") spark.conf.set("spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON", "/usr/bin/anaconda/envs/py35/bin/python")kullanıyorsanız
livy, istek gövdesine aşağıdaki özellikleri ekleyin:"conf" : { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"/usr/bin/anaconda/envs/py35/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"/usr/bin/anaconda/envs/py35/bin/python" }
Jupyter'da yeni oluşturulan sanal ortamı kullanmak istiyorsanız. Jupyter yapılandırmalarını değiştirin ve Jupyter'ı yeniden başlatın. Jupyter'ı yeni oluşturulan sanal ortama yönlendirmek için aşağıdaki komutu kullanarak tüm başlık düğümlerinde betiği çalıştırın. Sanal ortamınız için belirttiğiniz ön ekin yolunu değiştirdiğinizden emin olun. Bu betik eylemini çalıştırdıktan sonra, bu değişikliği kullanılabilir hale getirmek için Ambari kullanıcı arabirimi aracılığıyla Jupyter hizmetini yeniden başlatın.
sudo sed -i '/python3_executable_path/c\ \"python3_executable_path\" : \"/usr/bin/anaconda/envs/py35new/bin/python3\"' /home/spark/.sparkmagic/config.jsonKodu çalıştırarak Jupyter Notebook'ta Python ortamını iki kez onaylayabilirsiniz: