본문 바로가기

Old Posts226

[Hadoop] Windows 환경에서 IOException 발생 케이스 - winutils.exe 파일 없음 윈도우 환경에서 Hadoop이나 HBase, Spark를 사용할 때 다음 에러를 만나게 되는 경우가 있다. 21:49:57.792 [main] ERROR org.apache.hadoop.util.Shell - Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:382) ~[hadoop-common-2.7.4.jar:?] at org.apache.hadoop.util... 2022. 3. 5.
[Linux] crontab 명령어 사용법 - cron 작업 생성 및 관리 crontab 명령은 리눅스에서 특정 작업을 주기적으로 실행하기 위해서 사용한다. crontab을 일종의 작업 스케쥴러로 "매일 1시에 이 작업을 실행하라” 혹은 “10분마다 이 스크립트를 실행하라” 같은 설정을 할 수 있다. 크론탭 기본 사용법 크론탭 명령은 몇 가지 옵션을 제공한다. $ crontab -e 우선 -e 옵션을 사용하면 크론탭 설정을 할 수 있는 에디터 화면이 출력된다. 이 곳에 각종 크론탭 명령들을 입력하고, vi 에디터처럼 “:wq”를 입력해 저장하면 크론탭 작업이 갱신된다. 에디터 화면을 열지 않고 현재 크론탭 작업 목록을 확인만 하려면 $ crontab -l -l 옵션을 이용하면되나. -l 옵션을 사용하면 파일의 내용을 cat 명령어로 화면에 출력하는 것처럼 크론탭의 작업 설정 내.. 2022. 3. 4.
[Linux] atime, ctime, mtime 차이점 리눅스 파일에는 'atime', 'ctime', 'mtime' 3가지 시간 정보가 있다. 각각 Access Time, Change Time, Modify Time을 의미하는 시간이다. 파일 시스템에서 파일을 조회하거나 수정 날짜를 확인할 때, 이 세 가지 시간의 정확한 차이점을 알고 있어야 잘 못된 파일을 지우거나하는 일이 발생하지 않는다. atime (Access Time) atime은 파일에 마지막으로 접근(Access)한 시간을 기록한다. 파일이 어떤 명령어나 스크립트, 프로그램에 의해 열리거나 읽혔을 때 갱신된다. vi나 emac 같은 에디터 프로그램뿐만 아니라 cat, tail 같은 명령어에 의해 읽힌 경우에도 갱신된다. Access Time의 경우 너무나도 자주 갱신이 된다. 파일에 접근할 때.. 2022. 2. 28.
[Linux] stat 명령어 사용법 stat 명령어는 리눅스 파일 시스템에 있는 디렉토리와 파일에 대한 다양한 정보를 확인하기 위한 명령어다. 디렉토리 엔트리 리스트의 요약 정보만 출력하는 ls 명령과 다르게 파일의 상세한 정보를 확인할 수 있다. [root@myhost ~]# stat test.txt File: ‘test.txt’ Size: 1242 Blocks: 8 IO Block: 4096 regular file Device: 2h/2d Inode: 5629499534601420 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-02-22 11:44:40.018468800 +0900 Modify: 2022-02-22 11:44:36.90209.. 2022. 2. 27.
[Java] 스레드 그룹(Thread Group) JVM에서 생성되는 스레드들은 모두 어떤 스레드 그룹(Thread Group)에 속해 있다. 스레드 그룹은 연관되어 있는 스레드들을 묶어서 관리하기 위해 사용된다. JVM이 시작되면 system 스레드 그룹이 생성된다. GC를 담당하는 Finalizer 스레드를 비롯하여 JVM 운영에 필요한 몇 가지 스레드들이 생성되어 system 그룹에 포함된다. 이후 system 스레드 그룹의 하위 그룹으로 main 스레드 그룹이 생성되고, main 메서드를 실행하는 main 스레드가 포함된다. 새로운 스레드를 생성할 때, 스레드 그룹을 지정할 수 있다. 만약 스레드가 포함될 스레드 그룹을 지정하지 않았다면 스레드를 생성하는 스레드가 포함된 스레드 그룹에 기본적으로 속하게 된다. 스레드 그룹 확인 특정 스레드가 어떤.. 2022. 2. 26.
[Linux] mkfifo 명령어 사용법 mkfifo 명령어는 FIFO(named pipe)를 생성한다. mkfifo [옵션] 파일명 FIFO(Named pipe)는 리눅스 커널에서 프로세스 간 통신을 위해 지원하는 특수한 파일이다. FIFO의 경로를 알고 있는 프로세스라면 이 곳에 데이터를 쓰거나 읽으면서 다른 프로세스와 통신할 수 있다. [root@myhost ~]# mkfifo myfifo [root@myhost ~] #ls -l total 0 prw-r--r-- 1 root root 0 Feb 21 14:26 myfifo mkfifo 명령으로 FIFO를 생성하기 위해서는 디렉토리에 쓰기 권한이 있어야 한다. 생성된 FIFO 파일은 기본적으로 0666의 파일 모드가 적용되며 여기에 umask 값이 적용되어 퍼미션이 할당된다. (위 예제에서.. 2022. 2. 25.
[Linux] tee 명령어 사용법 tee 명령어는 화면에 출력되는 내용을 화면에도 출력하면서 파일로 저장하는데 사용된다. 위키에 tee 명령어를 잘 설명한 그림이 나와있다. 대부분 명령어 파이프라인에서 사용되어 중간 결과를 파일로 저장하는 역할을 한다. tee [옵션] [파일명] 예를 들어 user@myhost:~$ ls -l total 0 -rw-r--r-- 1 user user 0 Feb 23 23:51 a -rw-r--r-- 1 user user 0 Feb 23 23:51 b -rw-r--r-- 1 user user 0 Feb 23 23:51 c -rw-r--r-- 1 user user 0 Feb 23 23:51 d ls 명령어를 실행했을때, 디렉토리 엔트리들이 화면으로 출력된다. 명령어의 결과를 특정 파일로 저장하고 싶을 때, u.. 2022. 2. 24.
[Java] JMX (JavaManagement eXtension) 간단한 예제 코드 JMX는 Java Management eXtention의 약자로 애플리케이션의 상태를 모니터링하고 설정을 변경할 수 있는 프레임워크다. JMX는 JDK 1.5부터 제공되기 시작했으며 많은 자바 개발자들 사이에서 사용되고 있는 기능이다. 구성 JMX 아키텍처는 3개의 레이어로 구성되어 있다. Instrumentation layer (MBeans) JMX agent layer (MBeanServer) Remote management layer (Connector, tools) JMX를 통해 리소스를 관리하려면 MBean이라는 Managed Beans를 생성해야한다. 이렇게 생성한 MBean을 MBeanServer에 등록하면, MBeanServer는 등록된 MBean을 관리하는 에이전트 역할을 하게 된다. 외.. 2022. 2. 24.
[Linux] 리눅스 런레벨(RunLevel) 의미와 확인 방법 리눅스 실행레벨(RunLevel)은 유닉스에서부터 시작되었다. 시스템 관리를 용이하게 만들기 위해 사용되었다. 예를 들어 시스템을 실행할 때 네트워크를 사용할지말지, 여러 명의 사용자가 로그인하도록 허용할지 말지, GUI를 제공할지말지 등을 구별해서 시스템을 구동시키는 것이다. 리눅스 런레벨 종류 런레벨 설명 특징 0 Halt 시스템 중지 기본값으로 설정 불가 1 Sing user mode 단일 사용자모드 시스템 복구 등 관리 목적으로 사용하는 모드로 네트워크나 서버, 파일 공유 같은 서비스가 제공되지 않으며, 바로 root 계정으로 로그인 됨 2 Mutiuser, without NFS 네트워크를 사용하지 않는 다중 사용자 모드 Runlevel 3에서 네트워크를 사용하지 않는 모드 3 Full multi.. 2022. 2. 24.