[HADOOP] Hadoop Pseudo-Distributed Operation 오류 : 프로토콜 메시지 태그의 와이어 유형이 잘못되었습니다.
HADOOPHadoop Pseudo-Distributed Operation 오류 : 프로토콜 메시지 태그의 와이어 유형이 잘못되었습니다.
Hadoop 2.6.0 단일 노드 클러스터를 설정 중입니다. 나는 hadoop-common / SingleCluster 문서를 따른다. 나는 우분투 14.04에서 일한다. 지금까지 필자는 독립 실행 형 작업을 성공적으로 실행했습니다.
가상 분산 작업을 수행하려고 할 때 오류가 발생합니다. 나는 NameNode 데몬과 DataNode 데몬을 시작할 수 있었다. jps oputut :
martakarass@marta-komputer:/usr/local/hadoop$ jps
4963 SecondaryNameNode
4785 DataNode
8400 Jps
martakarass@marta-komputer:/usr/local/hadoop$
그러나 MapReduce 작업을 실행하는 데 필요한 HDFS 디렉토리를 만들려고 할 때 다음과 같은 오류가 발생합니다.
martakarass@marta-komputer:/usr/local/hadoop$ bin/hdfs dfs -mkdir /user
15/05/01 20:36:00 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
mkdir: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message tag had invalid wire type.; Host Details : local host is: "marta-komputer/127.0.0.1"; destination host is: "localhost":9000;
martakarass@marta-komputer:/usr/local/hadoop$
(나는 내가 WARN을 무시할 수 있다고 믿는다. util.NativeCodeLoader : 당신의 플랫폼을위한 native-hadoop 라이브러리를로드 할 수 없다 ...이 시점에서 경고.)
Hadoop 설정 파일의 경우, 문서에 언급 된 파일 만 변경했습니다. 나는 가지고있다:
etc / hadoop / core-site.xml :
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
etc / hadoop / hdfs-site.xml :
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
나는 localhost에 연결할 수 있었다 :
martakarass@marta-komputer:~$ ssh localhost
martakarass@localhost's password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-45-generic x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Fri May 1 20:28:58 2015 from localhost
나는 파일 시스템을 포맷했다.
martakarass@marta-komputer:/usr/local/hadoop$ bin/hdfs namenode -format
15/05/01 20:30:21 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = marta-komputer/127.0.0.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.6.0
(...)
15/05/01 20:30:24 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at marta-komputer/127.0.0.1
************************************************************/
/ etc / hosts :
127.0.0.1 localhost
127.0.0.1 marta-komputer
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
etc / hostname :
marta-komputer
해결법
-
==============================
1.이것은 정확히 동일한 문제에 직면했을 때 우분투에서 수행 한 일련의 단계입니다. 그러나 2.7.1에서는 단계가 이전 버전과 미래 버전에서 크게 다르지 않아야합니다 (믿을 것입니다).
이것은 정확히 동일한 문제에 직면했을 때 우분투에서 수행 한 일련의 단계입니다. 그러나 2.7.1에서는 단계가 이전 버전과 미래 버전에서 크게 다르지 않아야합니다 (믿을 것입니다).
127.0.0.1 localhost <computer-name> # 127.0.1.1 <computer-name> <ip-address> <computer-name> # Rest of file with no changes
이는 실제로이 구성을 사용하는지 확인하는 좋은 기회입니다. .xml 파일이있는 폴더에서 hadoop_env.sh 스크립트의 내용을보고 $ HADOOP_CONF_DIR이 올바른 디렉토리를 가리키고 있는지 확인하십시오.
NameNode는 표준 배포판의 포트 50070과 8020을 바인드하고 DataNode는 포트 50010, 50020, 50075와 43758을 바인드합니다. 어떤 이유로 든 다른 서비스가 사용하지 않도록 sudo lsof -i를 실행하십시오.
이 시점에서 hadoop.tmp.dir 값을 변경했다면 hdfs namenode -format으로 NameNode를 다시 포맷해야합니다. 사용중인 tmp 디렉토리에 이미 존재하는 임시 파일을 제거하지 않으면 (기본 / tmp /) :
/ sbin /에서 start-dfs.sh 스크립트와 start-yarn.sh를 사용하여 이름과 데이터 노드를 시작하고 jps의 출력을 평가합니다.
./start-dfs.sh ./start-yarn.sh
이 시점에서 NameNode, DataNode, NodeManager 및 ResourceManager가 모두 실행중인 경우 이동하도록 설정해야합니다!
이 중 하나라도 시작되지 않은 경우 로그 출력을 공유하여 재평가하십시오.
-
==============================
2./ etc / hosts에서 127.0.0.1 localhost를 제거하십시오. core-site.xml을 다음과 같이 변경하십시오.
/ etc / hosts에서 127.0.0.1 localhost를 제거하십시오. core-site.xml을 다음과 같이 변경하십시오.
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://marta-komputer:9000</value> </property> </configuration>
WARN 유틸리티를 무시할 수 있습니다 .NativeCodeLoader : 플랫폼에 native-hadoop 라이브러리를로드 할 수 없습니다 ... 경고
-
==============================
3./ etc / hosts에서 다음과 같이 변경하십시오.
/ etc / hosts에서 다음과 같이 변경하십시오.
1. 변경 :
127.0.0.1 localhost
에
127.0.0.1 localhost marta-komputer
2. 삭제 :
127.0.0.1 marta-komputer
3. 추가 :
your-system-ip marta-komputer
시스템 IP를 찾으려면 터미널에 다음을 입력하십시오.
ifconfig
(여기서 IP 주소를 찾으십시오) 또는 다음을 입력하십시오 :
ifdata -pa eth0
최종 / etc / hosts 파일은 다음과 같아야합니다.
127.0.0.1 localhost marta-komputer your-system-ip marta-komputer # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
hdfs-site.xml 변경 :
1. 변경 :
hdfs://localhost:9000
에
hdfs://marta-komputer:9000
이제, hadoop 프로세스를 중지하고 시작하십시오.
jps 명령은 다음 프로세스를 나열해야합니다.
Namenode Datanode TaskTracker SecondaryNameNode
이러한 프로세스를 모두 나열하지 않으면 해당 로그에서 오류를 확인하십시오.
최신 정보:
업데이트 II :
sudo mkdir -p / usr / local / hdfs / purpose
sudo mkdir -p / usr / local / hdfs / datanode
sudo chown -R hduser : hadoop / usr / local / hdfs / purpose
sudo chown -R hduser : hadoop / usr / local / hdfs / datanode
/ usr / local / hdfs / datanode 값을 가진 dfs.datanode.data.dir
/ usr / local / hdfs / namenode 값을 가진 dfs.namenode.data.dir
-
==============================
4.한 번이 오류가있어 내가 hodfs 자바 코드에서 파일을 업로드 할 때, 문제는 내가 hadoop 2 설치에 연결하는 항아리 1 항아리를 사용하고 있었는지, 당신의 경우에는 문제가 뭐니 뭐니해도 당신이 hadoop 1 eariler를 설정했다면 무언가가 엉망이되어야합니다.
한 번이 오류가있어 내가 hodfs 자바 코드에서 파일을 업로드 할 때, 문제는 내가 hadoop 2 설치에 연결하는 항아리 1 항아리를 사용하고 있었는지, 당신의 경우에는 문제가 뭐니 뭐니해도 당신이 hadoop 1 eariler를 설정했다면 무언가가 엉망이되어야합니다.
from https://stackoverflow.com/questions/29992952/hadoop-pseudo-distributed-operation-error-protocol-message-tag-had-invalid-wire by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop 2.0 JAR 파일 (0) | 2019.06.05 |
---|---|
[HADOOP] 돼지 라틴어 때마다 다른 구분 기호로 파일을로드하는 방법 (0) | 2019.06.05 |
[HADOOP] 얼마나 많은 노드가 맵 작업을 줄이고 작업을 줄일 것인지를 결정하는 방법 (0) | 2019.06.05 |
[HADOOP] SparkException : 파이썬 작업자가 다시 연결하지 못했습니다. (0) | 2019.06.05 |
[HADOOP] 비보안 YARN 클러스터에서 Spark를 실행할 때 보안 하이브에 액세스하십시오. (0) | 2019.06.05 |