2015-09-14 8 views
0

Я получаю ошибку RDOBC в RStudio, которая не возникает, когда я использую R на самом сервере.RStudio - LD_PREOAD Проблема

R -

R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet" 
Copyright (C) 2014 The R Foundation for Statistical Computing 
Platform: x86_64-unknown-linux-gnu (64-bit) 

library(RODBC) 
conn = odbcConnect("Cloudera_HIVE64", uid="manishm", pwd="tdpass") 
data = sqlQuery(conn,"SELECT * from default.test") 
data 
[1] test.id test.name 
<0 rows> (or 0-length row.names) 

RStudio -

R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet" 
Copyright (C) 2014 The R Foundation for Statistical Computing 
Platform: x86_64-unknown-linux-gnu (64-bit) 

library(RODBC) 
conn = odbcConnect("ClouderaHIVE64", uid="manishm", pwd="tdpass") 
Warning messages: 
1: In odbcDriverConnect("DSN=ClouderaHIVE64;UID=manishm;PWD=tdpass") : 
[RODBC] ERROR: state HY000, code 11560, message [unixODBC][Cloudera]ODBC Unable to locate SQLGetPrivateProfileString function. 
2: In odbcDriverConnect("DSN=Cloudera_HIVE64;UID=manishm;PWD=tdpass") : 
ODBC connection failed 

Я проверил переменные окружения и гарантировали, что ниже правильны для всех пользователей

ODBCINI=/opt/cloudera/hiveodbc/Setup/odbcinst.ini 
LD_PRELOAD=/usr/lib64/libodbcinst.so 

Любая идея, почему это будет работать в R, а не в RStudio с теми же настройками среды?

ответ

0

У меня когда-то была аналогичная проблема на ubuntu 12.04, которую я мог бы решить, но это было вроде хакки. По причинам, которые я не понимаю, кажется, что переменные среды иногда не передаются приложениям, которые запускаются щелчком по панели запуска. Проблема, с которой я столкнулся с другим пакетом, но симптомы были схожими: правильно определенная переменная среды, казалось, была неизвестна RStudio.

Из этого опыта, я предлагаю следующее:

  1. Открыть оболочки Linux и смените директорию cd /usr/share/applications
  2. Тип sudo cp rstudio.desktop rstudio.desktop.bak, чтобы создать резервную копию этого файла, который мы доработаем.
  3. Edit rstudio.desktop, как Судо с вашим любимым текстовым редактором, как sudo gedit rstudio.desktop
  4. Вторая строка после [Desktop Entry], вероятно, содержит что-то вроде Exec=/usr/lib/rstudio/bin/rstudio %F. Измените эту строку так, чтобы требуемые переменные среды были явно переданы, например, Exec=sh -c 'env LD_PRELOAD=/usr/lib64/libodbcinst.so /usr/lib/rstudio/bin/rstudio %F'
  5. Закрыть RStudio и попытаться начать заново; возможно, после перезагрузки.
  6. Если у вас возникли проблемы с запуском RStudio после этих изменений, восстановите предыдущую версию файла rstudio.desktop с помощью cd /usr/share/applications, а затем cp -f rstudio.desktop.bak rstudio.desktop. Это должно восстановить начальное состояние. Это означает, что ваша проблема не была вызвана, но по крайней мере никакого вреда не должно быть сделано.

Надеюсь, это поможет. Желаю вам удачи ...