복붙노트

[HADOOP] winutils 및 hadoop / spark에 대한 powershell chmod / tmp / hive

HADOOP

winutils 및 hadoop / spark에 대한 powershell chmod / tmp / hive

필자는 현재 PowerShell 스크립트에 테스트 스택에 Spark / Hadoop을 설정하는 프로세스를 통합하려고합니다.

그것은 Windows 환경이고 몇 비트가 커브를 던지고 있지만, thsi는 최악입니다 :)

수동으로 설치할 때 명령 행에서 % HADOOP_HOME % \ bin \ winutils.exe chmod 777 / tmp / hive를 실행할 수 있지만 지금 Powershell 스크립트로 변환해야합니다. 이것이 가능한가요? 나는 serached했지만 아직 솔루션을 가로 질러 오지 않았다. 하나의 게시물은 icacls를 사용하도록 제안되었지만 / tmp / hive는 arg로 허용되지 않습니다.

어떤 도움을 주셔서 감사합니다!

해결법

  1. ==============================

    1.배치 구문 (% VARIABLE %) 대신 PowerShell 환경 변수 구문 ($ env : VARIABLE)을 사용하면 충분합니다. 이 기능을 사용하려면 호출 연산자를 사용해야합니다. 또한 경로에 공백이있는 경우 큰 따옴표를 추가하는 것이 좋습니다.

    배치 구문 (% VARIABLE %) 대신 PowerShell 환경 변수 구문 ($ env : VARIABLE)을 사용하면 충분합니다. 이 기능을 사용하려면 호출 연산자를 사용해야합니다. 또한 경로에 공백이있는 경우 큰 따옴표를 추가하는 것이 좋습니다.

    & "${env:HADOOP_HOME}\bin\winutils.exe" chmod 777 /tmp/hive
    

    호출 연산자의 필요성은 PowerShell의 명령 구문 분석기가 표현식 $ variable \ something을 경로로 인식하지 못하기 때문에 나타납니다. & 없이는 예외가 생길거야.

  2. from https://stackoverflow.com/questions/36698907/powershell-chmod-on-tmp-hive-for-winutils-and-hadoop-spark by cc-by-sa and MIT license