자바 11 버전에서 JavaFX를 실행 하면 그림 1. 과 같이 JavaFX를 못 찾는 문제가 발생한다. 이를 해결하기 위해서 JavaFX를 따로 추가를 해 주어야 한다.

 

그림 1. JavaFX를 찾지 못해 에러가 발생 하였다.

 

1. JavaFX를 다운로드 한다. https://gluonhq.com/products/javafx/

 

2. 적당한 위치에 압축을 해제한다.

 

3. 그림 2. 와 같이 Run Configuration을 들어간다.

 

그림 2. Run Configurations 버튼 위치

 

3-1. 그림 3. 과 같이 VM arguments를 설정해 준다. (프로그램 실행 시 이 경로의 모듈을 사용하겠다는 의미이다.)

 

그림 3. VM arguments를 설정해 준다. (--module-path의 경로는 압축을 해제한 JavaFX 폴더 내부의 lib 폴더 경로를 지정한다.)

 

4. 그림 4. 와 같이 프로젝트 Build Path 설정을 들어간다.

 

그림 4. 프로젝트 Build Path 설정 버튼 위치

 

4-1. 그림 5. 와 그림 6. 순서로 외부 라이브러리를 추가한다.

 

그림 4. Modulepath를 클릭하고 Add External JARs... 클릭
그림 5. 압축을 해제한 폴더의 lib 로 이동하여 src.zip 빼고 전부 드래그를 해서 추가한다.

 

5. 적용하고 실행을 해보면 그림 6. 과 같이 잘 작동됨을 확인할 수 있다.

 

그림 6. 모든 설정이 끝나고 실행한 모습

 

처음에는 당황했으나 아래 메세지를 읽어보니 힌트를 얻을 수 있었다.

 

Tell CMake where to find the compiler by setting either the environment
variable "CUDACXX" or the CMake cache entry CMAKE_CUDA_COMPILER to the full
path to the compiler, or to the compiler name if it is in the PATH.

 

cmake가 쿠다 컴파일러를 찾지 못해서 발생한는 에러로 [1]을 참고해 아래와 같이 쿠다 경로만 지정해 주면 끝난다.

 

export CUDA_HOME=/usr/local/cuda 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64 
export PATH=$PATH:$CUDA_HOME/bin

 

쿠다가 여러개 깔려있다면 위의 경로말고 원하는 쿠다버전 경로로 설정해야한다. 그렇지 않으면 최근에 깔린 버전이 걸린다.

 

참고문헌

1. No CMAKE_CUDA_COMPILER could be found, Available online: github.com/jetsonhacks/buildLibrealsense2TX/issues/13 24 Dec 2020.

hadoop version: 3.2.1

java version: openjdk 1.8.0_41, 64bit

 

본 에러는 호스트 이름에 맞는 호스트 키가 없어서 발생함.

 

자신의 호스트 이름으로 ssh를 한번만 접속해주면 해결됨을 확인함.

$ ssh hyeok@hyeok -p 2200

 

hadoop version: 3.2.1

java version: openjdk 1.8.0_41, 64bit

 

본 에러는 JAVA_HOME을 못찾기에 발생함.

 

그러나 JAVA_HOME을 .bashrc에 설정이 되어있고 자바 버전 확인도 잘 작동됨.

 

이는 hadoop이 실행되면서 ssh 접속을 할때 자바 코드에서 접속을 시도하기에 .bashrc 관련 설정 및 현재 터미널에서 사용하던 환경변수는 모두 값을 잃어버린다, 그래서 JAVA_HOME 정보를 전달하기 위해 /etc/hadoop/hadoop-env.sh의 JAVA_HOME을 설정해준다.[1]

$ export JAVA_HOM="/home/hyeok/JAVA/jdk-8"

*참고로 ~/JAVA/jdk-8은 안된다.

references

1. "JAVA_HOME is not set in Hadoop", Dec 2017, stackoverflow.com/questions/20628093/java-home-is-not-set-in-hadoop

hadoop version: 3.2.1

java version: openjdk 1.8.0_41, 64bit

 

본 에러는 기존 사용중인 ssh의 포트가 맞지 않기에 발생함.

 

사용중인 ssh포트를 22로 변경하거나, HADOOP_SSH_OPTS 환경변수를 알맞게 변경해주면 됨.[1]

$ export HADOOP_SSH_OPTS="-p 2200"

아니면 /etc/hadoop/hadoop-env.sh 의 HADOOP_SSH_OPTS를 수정해준다.

$ export HADOOP_SSH_OPTS="-o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=10s -p 2200"

references

1. "Change ssh default port in hadoop multi cluster [closed]", Feb 2016, stackoverflow.com/questions/35224304/change-ssh-default-port-in-hadoop-multi-cluster

 

hadoop version: 3.2.1

java version: openjdk 1.8.0_41, 64bit

 

본 에러는 pdsh의 설정 문제로 발생함.

=> pdsh is a variant of the rsh command. unlike host, pdsh can run multiple remote commands in parallel.[1]

 

pdsh의 rcmd type은 기본으로 rsh로 되어있다 이를 ssh로 바꾸어 주면 됨.[2]

 

먼저 rsh로 되어있는지 확인한다.

$ pdsh -q -w localhost

Generic options항목의 Rcmd type을 확인후 rsh로 되어있다면 ssh로 바꾸어줌

$ export PDSH_RCMD_TYPE=ssh

references

1. "pdsh(1) - Linux man page", linux.die.net/man/1/pdsh

2. "Permission Denied error while running start-dfs.sh", Mar 2017, stackoverflow.com/questions/42756555/permission-denied-error-while-running-start-dfs-sh

 

+ Recent posts