Настройка сведений о прокси для подключения к Snowflake

Я пытаюсь проверить, могу ли я использовать разъем Snowflake для искры, чтобы подключиться к Snowflake с моего питона / ноутбука. Ниже я использую для этого подключения.

Версия Spark - 2.3

Снежинка JDBC - snowflake-jdbc-3.9.2.jar

Коннектор снежинка - spark-snowflake_2.11-2.4.14-spark_2.3.jar

Однако я использую корпоративный прокси, и мне нужно будет где-то указать настройки прокси. Не уверен, как добиться того же.

В идеале, если я использую соединение JDBC, я бы указал что-то вроде этого.

jdbc: snowflake: //myaccount.snowflakecomputing.com/? inventory = mywh & role = myrole & useProxy = true & proxyHost = myproxy & proxyPort = 80

Но теперь, когда я использую собственный коннектор для снежинки, согласно документации на веб-сайте снежинки, необходимо установить параметры, как показано ниже, но не упоминаются переменные прокси. Был бы признателен, если бы у кого-нибудь есть материалы для меня здесь.

Установите параметры ниже

 sfOptions = {
  "sfURL" : "<account_name>.snowflakecomputing.com",
  "sfAccount" : "<account_name>",
  "sfUser" : "<user_name>",
  "sfPassword" : "<password>",
  "sfDatabase" : "<database>",
  "sfSchema" : "<schema>",
  "sfWarehouse" : "<warehouse>",
}

person Hari Thatavarthy    schedule 20.11.2019    source источник


Ответы (2)


Помимо параметра подключения, доступны другие параметры для настройки прокси-сервера с помощью драйвера Snowflake JDBC. Вы видели здесь документацию? https://docs.snowflake.net/manuals/user-guide/jdbc-configure.html#connecting-using-a-proxy-server

person Suzy Lockwood    schedule 21.11.2019
comment
да . Я пробовал все это. Я попытался передать параметры JVM, как показано ниже, поскольку я запускаю искру в клиентском режиме. Но не повезло --driver-java-options '-Dhttp.useProxy=true -Dhttps.proxyHost=myproxy.com -Dhttp.proxyHost=8080 -Dhttps.proxyPort=myproxy.com -Dhttp.proxyPort=8080' --driver-class-path /path/to/spark-snowflake_2.11-2.4.14-spark_2.3.jar:/path/to/snowflake-jdbc-3.9.2.jar --jars /path/to/snowflake-jdbc-3.9.2.jar,/path/to/spark-snowflake_2.11-2.4.14-spark_2.3.jar pyspark-shell - person Hari Thatavarthy; 21.11.2019
comment
Вы получаете сообщение об ошибке при их установке? Они не проходят? Что вы видите? Вы также можете протестировать настройку прокси с другим приложением, подключенным к Snowflake, и убедиться, что значения принимают. - person Suzy Lockwood; 22.11.2019

После многих безуспешных попыток, наконец, я смог понять это.

а. Выберите подходящий коннектор «снежинка» для своей spark / scala (см. https://github.com/harithatavarthy/Spark-Snowflake/blob/master/sparkSession_toSnowflake.ipynb)

б. Передайте данные прокси-сервера в качестве входных данных для extraJavaOptions .. В клиентском режиме эту конфигурацию нельзя устанавливать через SparkConf непосредственно в вашем приложении, потому что в этот момент драйвер JVM уже запущен.

    os.environ['PYSPARK_SUBMIT_ARGS']="--driver-class-path /path/to/snowflake-jdbc- 
    3.6.12.jar:/path/to/spark-snowflake_2.11-2.4.8.jar --conf 
    'spark.driver.extraJavaOptions=-Dhttp.useProxy=true -Dhttps.useProxy=true - 
    Dhttp.proxyHost=proxy.server.com -Dhttp.proxyPort=8080 - 
    Dhttps.proxyHost=proxy.server.com -Dhttps.proxyPort=8080' --conf 
   'spark.executor.extraJavaOptions=-Dhttp.useProxy=true -Dhttps.useProxy=true - 
    Dhttp.proxyHost=proxy.server.com -Dhttp.proxyPort=8080 - 
    Dhttps.proxyHost=proxy.server.com -Dhttps.proxyPort=8080' --jars 
    /path/to/snowflake-jdbc-3.6.12.jar,/path/to/spark-snowflake_2.11-2.4.8.jar 
    pyspark-shell"
person Hari Thatavarthy    schedule 07.02.2020