2016-10-17 2 views
0

Hue를 사용하여 Oozie에서 sqoop 작업을 실행하는 데 문제가 있습니다. Hortonworks HDP 기반의 4 노드 클러스터가 있습니다.Oozie의 Sqoop 작업을 실행할 수 없습니다. Hive 가져 오기

import 
--options-file ./dss_conn_parms.txt 
--table BD.BD_TABLE 
--target-dir /user/user_1/DMS 
--m 1 
--hive-import 
--hive-table BD.BD_TABLE_HIVE 

Oracle 데이터베이스의 데이터가 성공적으로 다운로드 및 HDFS에 삽입 :

내 Sqoop을 작업은 다음과 같습니다. 불행히도 하이브 가져 오기가 작동하지 않습니다. 오류는 허가와 관련이 있습니다 :

73167 [main] INFO org.apache.sqoop.hive.HiveImport - Loading uploaded data into Hive 
2016-10-17 09:42:55,203 INFO [main] hive.HiveImport (HiveImport.java:importTable(195)) - Loading uploaded data into Hive 
73180 [main] ERROR org.apache.sqoop.tool.ImportTool - Encountered IOException running import job: java.io.IOException: Cannot run program "hive": error=13, Permission denied 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 
at java.lang.Runtime.exec(Runtime.java:620) 
at java.lang.Runtime.exec(Runtime.java:528) 
at org.apache.sqoop.util.Executor.exec(Executor.java:76) 
at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:391) 
at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:344) 
at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:245) 
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:514) 
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605) 
at org.apache.sqoop.Sqoop.run(Sqoop.java:148) 
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) 
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:184) 
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:226) 
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:235) 
at org.apache.sqoop.Sqoop.main(Sqoop.java:244) 
at org.apache.oozie.action.hadoop.SqoopMain.runSqoopJob(SqoopMain.java:197) 
at org.apache.oozie.action.hadoop.SqoopMain.run(SqoopMain.java:177) 
at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:47) 
at org.apache.oozie.action.hadoop.SqoopMain.main(SqoopMain.java:46) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:241) 
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) 
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453) 
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) 
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:422) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1709) 
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162) 
Caused by: java.io.IOException: error=13, Permission denied 
at java.lang.UNIXProcess.forkAndExec(Native Method) 
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248) 
at java.lang.ProcessImpl.start(ProcessImpl.java:134) 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 
... 31 more 

2016-10-17 09:42:55,216 ERROR [main] tool.ImportTool (ImportTool.java:run(613)) - Encountered IOException running import job: java.io.IOException: Cannot run program "hive": error=13, Permission denied 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 
at java.lang.Runtime.exec(Runtime.java:620) 
at java.lang.Runtime.exec(Runtime.java:528) 
at org.apache.sqoop.util.Executor.exec(Executor.java:76) 
at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:391) 
at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:344) 
at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:245) 
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:514) 
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605) 
at org.apache.sqoop.Sqoop.run(Sqoop.java:148) 
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) 
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:184) 
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:226) 
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:235) 
at org.apache.sqoop.Sqoop.main(Sqoop.java:244) 
at org.apache.oozie.action.hadoop.SqoopMain.runSqoopJob(SqoopMain.java:197) 
at org.apache.oozie.action.hadoop.SqoopMain.run(SqoopMain.java:177) 
at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:47) 
at org.apache.oozie.action.hadoop.SqoopMain.main(SqoopMain.java:46) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:241) 
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) 
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453) 
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) 
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:422) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1709) 
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162) 
Caused by: java.io.IOException: error=13, Permission denied 
at java.lang.UNIXProcess.forkAndExec(Native Method) 
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248) 
at java.lang.ProcessImpl.start(ProcessImpl.java:134) 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 
... 31 more 

Intercepting System.exit(1) 

<<< Invocation of Main class completed <<< 

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SqoopMain], exit code [1] 

Sqoop 작업이 하이브 가져 오기 명령을 실행할 수없는 이유가 있습니까?

UPDATE 나는 명령 줄에서 하이브 가져 오기 옵션으로 Sqoop을 작업을 실행하고 나는 문제가 뭔지 알아.

Logging initialized using configuration in jar:file:/usr/hdp/2.4.2.0-258 /hive/lib/hive-common-1.2.1000.2.4.2.0-jar!/hive-log4j.properties 
OK 

문제는 하이브 - 공통 1.2.1000.2.4.2.0 항아리하는 로컬 파일 시스템에있는 액세스 할 수 있습니다 : 명령 줄에서 나는이 정보를 볼 수 있습니다. 어떤 생각을해야합니까?

+0

로그에 대한 사용 권한이 거부되었습니다. 액세스 권한을 확인하십시오. 하이브 가져 오기 –

+0

명령 줄에서이 sqoop 명령을 실행할 수 있기 때문에 하이브 가져 오기를 만들 수있는 권한이 있습니다. 나는 문제가 Oozie 또는 Hue라고 생각한다. –

+0

당신은 core-site.xml을 게시 할 수 있습니까? –

답변

0

1)

<property> 
     <name>hadoop.proxyuser.oozie.hosts</name> 
     <value>*</value> 
    </property> 
    <property> 
     <name>hadoop.proxyuser.oozie.groups</name> 
     <value>*</value> 
    </property> 
    <property> 
     <name>hadoop.proxyuser.YOUR_USERNAME.hosts</name> 
     <value>*</value> 
    </property> 
    <property> 
     <name>hadoop.proxyuser.YOUR_USERNAME.groups</name> 
     <value>*</value> 
    </property> 

를 추가하고 모두 다시 시작 코어를 site.xml에서 workflow.xml

2)에서 작업 정의의 <shell xmlns="uri:oozie:shell-action:0.2"> 섹션에

<env-var>HADOOP_USER_NAME=YOUR_USERNAME</env-var> 

를 추가하십시오 서비스를 선택한 다음 다시 시도하십시오.

관련 문제