버전 - windows hadoop download




루트 스크래치 디렉토리:HDFS의/tmp/hive는 쓰기 가능해야합니다. 현재 권한은 다음과 같습니다. rw-rw-rw-(Windows의 경우) (10)

Windows 7에서 Spark를 실행하고 있습니다. Hive를 사용할 때 다음 오류가 표시됩니다.

The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw- 

권한은 다음과 같이 설정됩니다

C:\tmp>ls -la
total 20
drwxr-xr-x    1 ADMIN Administ        0 Dec 10 13:06 .
drwxr-xr-x    1 ADMIN Administ    28672 Dec 10 09:53 ..
drwxr-xr-x    2 ADMIN Administ        0 Dec 10 12:22 hive

Windows-> 속성-> 보안-> 고급에서 모든 사용자에게 "모든 권한"을 설정했습니다.

그러나 여전히 같은 오류가 나타납니다. 도와주세요? 나는 많은 링크를 확인했으며, 일부는 이것이 Spark 1.5의 버그라고 말합니다. 이것이 사실입니까?

감사합니다 아티



Spark Jira에도 같은 버그가 있습니다. 이것은 며칠 전에 해결되었습니다. 여기 링크가 있습니다.

https://issues.apache.org/jira/browse/SPARK-10528

의견에는 모든 옵션이 있지만 보장 된 해결책은 없습니다.


Windows에서 실행되는 VM에서 spark-shell을 시작하는 동안 오류가 발생했습니다. 오류 메시지 : HDFS의 루트 스크래치 디렉토리 : / tmp / hive를 쓸 수 있어야합니다. 권한 거부

솔루션 : / tmp / hive는 임시 디렉토리입니다. 이 위치에는 임시 파일 만 보관됩니다. 이 디렉토리를 삭제해도 문제가 없으며 적절한 권한이 필요할 때 생성됩니다.

1 단계) hdfs에서 / tmp / hive 디렉토리 ==> "hdfs dfs -rm -r / tmp / hive"를 제거하십시오.

2) OS 수준에서도 dir / tmp / hive ==> rm -rf / tmp / hive 디렉토리를 삭제하십시오.

그 후, 스파크 쉘을 시작했는데 정상적으로 작동했습니다 ..


winutils.exe의 올바른 버전을 사용하면 나를 위해 속임수를 썼습니다. winutils는 Spark가 사전 빌드 된 Hadoop 버전에서 가져와야합니다.

HADOOP_HOME 환경 변수를 winutils.exe의 bin 위치로 설정하십시오. C : \ Spark \ bin 파일과 함께 winutils.exe를 저장했습니다. 이제 SPARK_HOME과 HADOOP_HOME은 동일한 위치 C:\Spark 가리 킵니다.

winultils가 경로에 추가되었으므로 winutils.exe를 사용하여 하이브 폴더에 대한 권한을 부여 winutils.exe chmod 777 C:\tmp\hive


다음 솔루션은 Windows에서 나를 위해 일했습니다.

  • 먼저 HADOOP_HOME을 정의했습니다. here 에 자세히 설명되어 here
  • 다음으로 Nishu Tayal을 좋아했지만 한 가지 차이점이 있습니다 C:\temp\hadoop\bin\winutils.exe chmod 777 \tmp\hive

\tmp\hive 는 로컬 디렉토리가 아닙니다


로컬 파일 시스템이 아닌 HDFS에서이 디렉토리의 권한을 설정해야합니다. core-site.xml의 fs.defaultFsfile://c:/ 설정하지 않는 한 /tmpC:\tmp 의미하지 않습니다.

사용하여 확인

hdfs dfs -ls /tmp 

사용하여 설정

hdfs dfs -chmod 777 /tmp/hive

방금 Win7 환경 에서이 문제를 해결했습니다. 잘못된 IP로 DNS 설정을 수정했습니다. 데스크톱이 도메인 컨트롤러에 연결하지 못했습니다. 올바른 DNS IP를 설정하고 컴퓨터를 다시 시작하십시오. 문제가 사라졌습니다. winutils를 사용하여 디렉토리를 ls 할 수 있습니다.


스파크 버전 2.0.2에서 해결 된 문제 (2016 년 11 월 14 일) 이 버전을 사용하십시오. 버전 2.1.0 2016 년 12 월 28 일 릴리스에는 동일한 문제가 있습니다.


우선, OS에 맞는 Winutils를 사용하고 있는지 확인하십시오. 다음 단계는 권한입니다.
Windows에서는 cmd에서 다음 명령을 실행해야합니다.

D:\winutils\bin\winutils.exe chmod 777 D:\tmp\hive

winutils를 이미 다운로드하여 HADOOP_HOME을 설정했으면합니다.


이것은 간단한 4 단계 프로세스입니다.

Spark 2.0 이상 :

  1. Windows / Winutils 용 Hadoop 다운로드
  2. 이것을 SparkSession 초기화 전에 코드에 추가하십시오.

    if(getOS()=="windows"){
        System.setProperty("hadoop.home.dir", "C:/Users//winutils-master/hadoop-2.7.1"); 
    }   
    
  3. 이것을 Spark 세션에 추가하십시오 (Desktop 대신 C:/Temp 변경할 수 있습니다) .

    .config("hive.exec.scratchdir","C:/Users//Desktop/tmphive")
    
  4. cmd.exe를 열고 다음을 실행하십시오.

    "path\to\hadoop-2.7.1\bin\winutils.exe" chmod 777 C:\Users\\Desktop\tmphive
    




hdfs