Windows에서 Hadoop 및 Spark 설치 및 실행
Windows에서 Hadoop 및 Spark 설치 및 실행
최근 Hadoop과 Spark(H/S)를 실행하고 생물 제약 업계를 위한 소프트웨어에 대한 개념 검증 테스트를 할 수 있는 새로운 대형 서버가 생겼습니다. Windows Server 2016/Windows 10에 H/S를 설치하고 실행하는 데 장애가 발생했습니다.나는 이 아파치 제품을 Windows cmd
알림부호에서 직접 설치하고 실행하는 방법을 한 걸음 한 걸음 기록했다. Linux 모방이 필요 없다.
Update 16 Dec 2019: Software version numbers have been updated and the text has been clarified.
소프트웨어 가져오기
첫 번째 단계는 자바, 하둡, 스파크를 다운로드하는 것이다.Spark는 최신 버전의 Java를 사용할 때 문제가 발생한 것 같아서 Java 8을 계속 사용하고 있습니다.
Update 16 Dec 2019: Software version numbers have been updated and the text has been clarified.
첫 번째 단계는 자바, 하둡, 스파크를 다운로드하는 것이다.Spark는 최신 버전의 Java를 사용할 때 문제가 발생한 것 같아서 Java 8을 계속 사용하고 있습니다.
I can't guarantee that this guide works with newer versions of Java. Please try with Java 8 if you're having issues. Also, with the new Oracle licensing structure (2019+), you may need to create an Oracle account to download Java 8. To avoid this, simply download from AdoptOpenJDK instead.
Java의 경우 AdoptOpenJDK HotSpot JVM의'Windows x64'버전(
jdk8u232-b09
)을 다운로드했습니다.Hadoop의 경우 v3.1.3의 바이너리 파일(hadoop-3.1.3.tar.gz
);Spark의 경우 v3.0.0 "Apache Hadoop 2.7 이상 버전을 위해 사전 구축"(spark-3.0.0-preview-bin-hadoop2.7.tgz
).이 점에서 말하자면, 나는 일반적으로 이 판본들을 hadoop-<version>
과 spark-<version>
이라고 부른다.이 강좌의 나머지 부분은 버전 번호로 바꾸십시오.Even though newer versions of Hadoop and Spark are currently available, there is a bug with Hadoop 3.2.1 on Windows that causes installation to fail. Until that patched version is available (3.3.0 or 3.1.4 or 3.2.2), you must use an earlier version of Hadoop on Windows.
다음은 download 7-Zip에서
*gz
파일을 추출합니다.두 번 추출해야 할 수도 있습니다. (한 번은 *gz
에서 *.tar
파일로 이동하고 두 번째는 "untar"로 이동합니다.)추출 후(Hadoop 소요 시간) 모든 *.tar
및 *gz
파일을 삭제할 수 있습니다.현재 다운로드 디렉터리에는 두 개의 디렉터리와 JDK 설치 프로그램이 있어야 합니다.위의 그림과 같이 Hadoop 디렉토리와 Spark 디렉토리에는 각각
LICENSE
, NOTICE
및 README
파일이 포함되어 있습니다.특정 버전의 Hadoop을 사용하면 다음과 같은 디렉터리 구조를 추출하고 얻을 수 있습니다C:\Users\<username>\Downloads\hadoop-<version>\hadoop-<version>\...
...이 경우 복사 및 붙여넣기를 통해 내부 hadoop-<version>
디렉터리의 내용을 외부 hadoop-<version>
디렉터리로 이동한 다음 내부 hadoop-<version>
디렉터리를 삭제합니다.예를 들어, LICENSE
파일의 경로는 다음과 같아야 합니다.C:\Users\<username>\Downloads\hadoop-<version>\LICENSE
...Spark 디렉토리와 유사합니다.WARNING: If you see a message like "Can not create symbolic link : A required privilege is not held by the client" in 7-Zip, you MUST run 7-Zip in Administrator Mode, then unzip the directories. If you skip these files, you may end up with a broken Hadoop installation.
Spark 및 Hadoop 디렉토리를
C:\
디렉토리로 이동합니다. 이 작업을 수행하려면 시스템에 관리자 권한이 있어야 할 수 있습니다.그런 다음 Java 설치 프로그램을 실행하지만 기본 C:\Program Files\AdoptOpenJDK\jdk-<version>\
에서 C:\Java
으로 대상 폴더를 변경합니다.(H/S는 이름에 공백을 포함하는 디렉토리에서 문제가 발생할 수 있습니다.)설치가 완료되면 Java
*.msi
설치 프로그램을 제거할 수 있습니다.C:\Hadoop
과 C:\Spark
이라는 두 개의 새 디렉터리를 만들고 hadoop-<version>
과 spark-<version>
디렉터리를 각각 복사합니다."이름이 너무 깁니다"형식의 경고를 받으면 이 파일들을 건너뛰십시오.이 파일은
*.html
개에 불과하여 H/S를 실행하는 데 중요하지 않습니다.환경 변수 설정
다음으로 우리는 환경 변수를 설정해야 한다.Control Panel > System and Security > System > Advanced System Settings > Environment Variables...
으로 이동:
...다음 이름으로 새 시스템 변수(아래 상자)를 추가합니다.
JAVA_HOME
--> C:\Java
HADOOP_HOME
--> C:\Hadoop\hadoop-<version>
SPARK_HOME
--> C:\Spark\spark-<version>
그리고
Path
을 편집하고 하단의 시스템 변수 상자에 \bin
의 변수를 추가합니다(Hadoop에도 \sbin
).echo %PATH%
에서 cmd
을 사용한다면, 사용자 경로가 %PATH
변수의 시스템 경로에 추가되었기 때문에 경로 중간 어딘가에서 이 세 디렉터리를 볼 수 있을 것입니다.현재 java -version
, hdfs -version
및 spark-shell --version
이 버전 번호로 되돌아오는지 확인해야 합니다. 아래와 같습니다.이것은 %PATH%
에 올바르게 설치되어 추가되었음을 의미합니다.위의 명령을 경로에 공백이 있는 위치에서 실행하려고 하면 실패할 수 있습니다.예를 들어, 사용자 이름이 "Firstname Lastname"이고 Hadoop 버전을 확인하려고 하면 다음과 같은 오류 메시지가 나타날 수 있습니다.
C:\Users\Firstname Lastname>hdfs -version
Error: Could not find or load main class Lastname
이 문제를 해결하려면 경로에 빈 칸이 없는 작업 디렉터리로 이동하십시오. (위의 화면 캡처에서 제가 한 것처럼)C:\Users\Firstname Lastname>cd ..
C:\Users>hdfs -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.232-b09, mixed mode)
Hadoop 구성
다음은 %HADOOP_HOME%\etc\hadoop
으로 이동하여 파일 core-site.xml
을 편집(또는 만들기)하여 다음과 같이 보십시오.
핵심 사이트.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
같은 디렉토리에서 다음과 같이 mapred-site.xml
을 편집(또는 작성)합니다.
그려진 사이트입니다.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
다음으로 hdfs-site.xml
을 편집하거나 작성합니다.
hdfs 사이트.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///C:/Hadoop/hadoop-<version>/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///C:/Hadoop/hadoop-<version>/datanode</value>
</property>
</configuration>
...예, Windows에서 백슬래시를 사용하더라도 정슬래시여야 합니다.이것은 Hadoop이 이러한 파일 경로를 설명하는 방식 때문입니다.또한 <version>
을 적절한 Hadoop 버전 번호로 교체해야 합니다.마지막으로 yarn-site.xml
을 편집합니다. 내용은 다음과 같습니다.
사선 현장.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
우리가 해야 할 마지막 일은 hdfs-site.xml
에서 인용한 디렉터리를 만드는 것이다.
패치 Hadoop
현재 a patch created by and posted to GitHub by user cdarlint을 신청해야 합니다.(이 패치는 설치 중인 Hadoop 버전에 해당되지만 정확한 버전이 없으면 필요한 버전 이전 버전을 사용하십시오....이 경우 가능합니다.)%HADOOP_HOME%\bin
디렉터리(\bin.old
또는 유사한 디렉터리로 복사)를 백업한 다음 패치 파일 (상기git repo에서 다운로드한 것) 을 낡은 %HADOOP_HOME%\bin
디렉터리로 복사하여 새 파일로 이전 파일을 대체합니다.hdfs namenode -format
에서 cmd
을 실행하면 다음과 같이 표시됩니다.
hadoop-yarn-server-timelineservice-<version>
을 C:\Hadoop\hadoop-<version>\share\hadoop\yarn\timelineservice
에서 C:\Hadoop\hadoop-<version>\share\hadoop\yarn
으로 복사하는 일도 있습니다.(이것들은 3.1.3
JAR
파일 이름과 디렉터리 이름 사이에 일치하지 않을 수 있는 짧은 버전 번호입니다.)
HDFS 부트
마지막으로 start-dfs.cmd
에서 start-yarn.cmd
및 cmd
을 실행하여 HDFS를 부트할 수 있습니다.
namenode
명령을 사용하여 datanode
, resourcemanager
, nodemanager
및 jps
이 실행 중인지 확인해야 합니다.
또한 새로운 Hadoop 분산 파일 시스템을 모니터링하기 위해 브라우저에서 localhost:8088
및 localhost:9870
을 열 수 있습니다.
마지막으로 hadoop fs -mkdir /test
을 실행하여 파일 시스템을 편집할 수 있는지 테스트합니다. 이것은 루트 디렉터리에 test
이라는 디렉터리를 생성합니다.
Hadoop 및 Spark 테스트
HDFS에 디렉터리(fs -mkdir
)를 만들고 그 내용(fs -ls
)을 열거하는 방법을 알고 있습니다. 그러면 파일을 만들고 편집합니까?음, 파일은 fs -put
을 통해 로컬 파일 시스템에서 HDFS로 복사할 수 있습니다.그리고 spark-shell
을 사용하여 sc.textFile(...)
의 파일을 읽을 수 있습니다.
hdfs://localhost:9000/
뿐만 아니라 hdfs://
에서도 HDFS에서 파일을 읽을 수 있습니다.이것은 우리가 defaultFS
에서 정의한 core-site.xml
이기 때문이다.
HDFS를 중지하려면 다음 명령을 실행합니다.
C:\Users> stop-dfs.cmd
화목하다
C:\Users> stop-yarn.cmd
자, 여기 있습니다!Spark는 Windows에서 실행되며 HDFS에 저장된 파일을 읽습니다.이것은 일을 해야만 시작할 수 있다. 나는 이전에 나와 같은 잘못을 저지른 사람을 만났거나 이전에 강좌를 작성한 사람을 만나서 매우 고맙다. 나는 이 강좌들을 본 연습의 틀로 사용한다.다음은 이 강좌를 구축하기 위한 블로그, GitHub repos 등의 게시물입니다.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///C:/Hadoop/hadoop-<version>/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///C:/Hadoop/hadoop-<version>/datanode</value>
</property>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
현재 a patch created by and posted to GitHub by user cdarlint을 신청해야 합니다.(이 패치는 설치 중인 Hadoop 버전에 해당되지만 정확한 버전이 없으면 필요한 버전 이전 버전을 사용하십시오....이 경우 가능합니다.)
%HADOOP_HOME%\bin
디렉터리(\bin.old
또는 유사한 디렉터리로 복사)를 백업한 다음 패치 파일 (상기git repo에서 다운로드한 것) 을 낡은 %HADOOP_HOME%\bin
디렉터리로 복사하여 새 파일로 이전 파일을 대체합니다.hdfs namenode -format
에서 cmd
을 실행하면 다음과 같이 표시됩니다.hadoop-yarn-server-timelineservice-<version>
을 C:\Hadoop\hadoop-<version>\share\hadoop\yarn\timelineservice
에서 C:\Hadoop\hadoop-<version>\share\hadoop\yarn
으로 복사하는 일도 있습니다.(이것들은 3.1.3
JAR
파일 이름과 디렉터리 이름 사이에 일치하지 않을 수 있는 짧은 버전 번호입니다.)HDFS 부트
마지막으로 start-dfs.cmd
에서 start-yarn.cmd
및 cmd
을 실행하여 HDFS를 부트할 수 있습니다.
namenode
명령을 사용하여 datanode
, resourcemanager
, nodemanager
및 jps
이 실행 중인지 확인해야 합니다.
또한 새로운 Hadoop 분산 파일 시스템을 모니터링하기 위해 브라우저에서 localhost:8088
및 localhost:9870
을 열 수 있습니다.
마지막으로 hadoop fs -mkdir /test
을 실행하여 파일 시스템을 편집할 수 있는지 테스트합니다. 이것은 루트 디렉터리에 test
이라는 디렉터리를 생성합니다.
Hadoop 및 Spark 테스트
HDFS에 디렉터리(fs -mkdir
)를 만들고 그 내용(fs -ls
)을 열거하는 방법을 알고 있습니다. 그러면 파일을 만들고 편집합니까?음, 파일은 fs -put
을 통해 로컬 파일 시스템에서 HDFS로 복사할 수 있습니다.그리고 spark-shell
을 사용하여 sc.textFile(...)
의 파일을 읽을 수 있습니다.
hdfs://localhost:9000/
뿐만 아니라 hdfs://
에서도 HDFS에서 파일을 읽을 수 있습니다.이것은 우리가 defaultFS
에서 정의한 core-site.xml
이기 때문이다.
HDFS를 중지하려면 다음 명령을 실행합니다.
C:\Users> stop-dfs.cmd
화목하다
C:\Users> stop-yarn.cmd
자, 여기 있습니다!Spark는 Windows에서 실행되며 HDFS에 저장된 파일을 읽습니다.이것은 일을 해야만 시작할 수 있다. 나는 이전에 나와 같은 잘못을 저지른 사람을 만났거나 이전에 강좌를 작성한 사람을 만나서 매우 고맙다. 나는 이 강좌들을 본 연습의 틀로 사용한다.다음은 이 강좌를 구축하기 위한 블로그, GitHub repos 등의 게시물입니다.
HDFS에 디렉터리(
fs -mkdir
)를 만들고 그 내용(fs -ls
)을 열거하는 방법을 알고 있습니다. 그러면 파일을 만들고 편집합니까?음, 파일은 fs -put
을 통해 로컬 파일 시스템에서 HDFS로 복사할 수 있습니다.그리고 spark-shell
을 사용하여 sc.textFile(...)
의 파일을 읽을 수 있습니다.hdfs://localhost:9000/
뿐만 아니라 hdfs://
에서도 HDFS에서 파일을 읽을 수 있습니다.이것은 우리가 defaultFS
에서 정의한 core-site.xml
이기 때문이다.HDFS를 중지하려면 다음 명령을 실행합니다.
C:\Users> stop-dfs.cmd
화목하다C:\Users> stop-yarn.cmd
자, 여기 있습니다!Spark는 Windows에서 실행되며 HDFS에 저장된 파일을 읽습니다.이것은 일을 해야만 시작할 수 있다. 나는 이전에 나와 같은 잘못을 저지른 사람을 만났거나 이전에 강좌를 작성한 사람을 만나서 매우 고맙다. 나는 이 강좌들을 본 연습의 틀로 사용한다.다음은 이 강좌를 구축하기 위한 블로그, GitHub repos 등의 게시물입니다.Reference
이 문제에 관하여(Windows에서 Hadoop 및 Spark 설치 및 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/awwsmm/installing-and-running-hadoop-and-spark-on-windows-33kc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)