1. SSH 설정
SSH 관련 소프트웨어 패키지를 설치합니다:
다음과 같이 코드를 복사합니다. sudo apt-get install openssh-client openssh-server
그런 다음 다음 두 명령 중 하나를 사용하여 sshd를 시작/종료합니다.
다음과 같이 코드를 복사합니다: sudo /etc/init.d/ssh start|stop
sudo 서비스 ssh 시작|중지
sshd가 성공적으로 시작되면 다음과 유사한 결과를 볼 수 있습니다.
다음과 같이 코드를 복사합니다. $ ps -e grep ssh
2766 ? 00:00:00 SSH 에이전트
10558 ? 00:00:00 SSHD
이때 다음 ssh 명령을 실행하여 머신에 로그인하면 비밀번호를 입력하라는 메시지가 표시됩니다.
다음과 같이 코드를 복사합니다: ssh localhost
이제 우리가 해야 할 일은 비밀번호가 필요 없도록 만드는 것뿐입니다.
다음과 같이 코드를 복사합니다: $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #빈 비밀번호 SSH 키
$ 고양이 ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
그게 다야. 그래도 작동하지 않으면 키 파일에 대한 권한이 잘못 설정되었을 수 있습니다.
2. 하둡 구성
~/에 hadoop-1.2.1의 압축을 풀고 ~/ 아래에 hadoop-env 디렉터리를 만듭니다. 계속해서 hadoop-env 아래에 다음 디렉터리 구조를 만듭니다.
├── dfs
│ ├── 체크포인트1
│ ├── 데이터1
│ ├── 데이터2
│ └── 이름1
└── 테스트
└── 입력
구성 파일 hadoop-1.2.1/conf/core-site.xml:
다음과 같이 코드 코드를 복사합니다.
<?xml 버전="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- 사이트별 속성 재정의를 이 파일에 넣습니다. -->
<구성>
<속성>
<name>fs.default.name</name>
<값>hdfs://localhost:9000</값>
<최종>사실</최종>
</property>
</구성>
fs.default.name은 HDFS URI를 지정합니다. 값에 포트가 제공되지 않으면 기본값은 8020입니다.
구성 파일 hadoop-1.2.1/conf/hdfs-site.xml:
다음과 같이 코드 코드를 복사합니다.
<?xml 버전="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- 사이트별 속성 재정의를 이 파일에 넣습니다. -->
<구성>
<속성>
<name>dfs.name.dir</name>
<값>~/hadoop-env/dfs/이름1</값>
<최종>사실</최종>
</property>
<속성>
<name>dfs.data.dir</name>
<값>~/hadoop-env/dfs/data1,~/hadoop-env/dfs/data2</값>
<최종>사실</최종>
</property>
<속성>
<name>fs.checkpoint.dir</name>
<값>~/hadoop-env/dfs/checkpoint1</값>
<최종>사실</최종>
</property>
</구성>
dfs.name.dir은 네임노드가 메타데이터를 저장하는 디렉토리를 지정합니다. 이러한 디렉토리는 쉼표로 구분되어야 합니다. dfs.data.dir은 데이터 노드가 저장되는 디렉토리를 지정합니다. checkpoint.dir은 보조 네임노드가 체크포인트를 저장하는 디렉터리를 지정합니다.
구성 파일 hadoop-1.2.1/conf/mapred-site.xml:
다음과 같이 코드 코드를 복사합니다.
<?xml 버전="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- 사이트별 속성 재정의를 이 파일에 넣습니다. -->
<구성>
<속성>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
<최종>사실</최종>
</property>
</구성>
3. 테스트
첫 번째 형식 HDFS:
다음과 같이 코드를 복사합니다. ./hadoop-1.2.1/bin/hadoop namenode -format
HDFS 및 MapReduce 프로세스를 시작합니다.
다음과 같이 코드 코드를 복사합니다.
$ ./hadoop-1.2.1/bin/start-dfs.sh
$ ./hadoop-1.2.1/bin/start-mapred.sh
시작 중에 localhost: Error: JAVA_HOME is not set.와 같은 오류가 보고되면 ./hadoop-1.2.1/conf/hadoop-env.sh 파일에서 JAVA_HOME을 내보내야 합니다. 예:
JAVA_HOME=~/jdk1.7.0_25 내보내기
성공적으로 시작되었는지 확인하는 방법: 첫 번째 방법은 jps 명령(Java Virtual Machine Process Status Tool)을 사용하는 것입니다. 다음과 유사한 출력이 있어야 합니다.
다음과 같이 코드 코드를 복사합니다.
$jps
13592 데이터노드
13728 SecondaryNameNode
13837 작업 추적기
12864 네임노드
13955 태스크트래커
16069Jps
두 번째 방법은 jobtracker를 보려면 http://localhost:50030에서 브라우저에 로그인하고, namenode를 보려면 http://localhost:50070에 로그인하는 것입니다. 우회 소프트웨어를 사용하는 경우 접속 시 오류가 발생할 수 있습니다. 가장 간단한 해결책은 우회 소프트웨어를 끄는 것입니다. 또 다른 방법은 로그 파일을 보는 것입니다.
이제 ~/hadoop-env/test/input 디렉터리에 두 개의 파일을 만듭니다.
다음과 같이 코드 코드를 복사합니다.
$ echo "hello world" > test1.txt
$ echo "안녕하세요,세계" > test2.txt
다음 두 파일을 HDFS로 가져옵니다.
다음과 같이 코드 코드를 복사합니다.
./hadoop-1.2.1/bin/hadoop dfs -put hadoop-env/test/input/ 출력/
확인하다:
다음과 같이 코드 코드를 복사합니다.
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /
2개 항목을 찾았습니다.
drwxr-xr-x - 사용자 슈퍼 그룹 0 2013-10-22 22:07 /test
drwxr-xr-x - 사용자 슈퍼 그룹 0 2013-10-22 21:58 /tmp
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /test
2개 항목을 찾았습니다.
-rw-r--r-- 사용자 슈퍼 그룹 3개 12 2013-10-22 22:07 /test/test1.txt
-rw-r--r-- 사용자 슈퍼 그룹 3개 9 2013-10-22 22:07 /test/test2.txt
좋아, 구성이 완료되었습니다.
참고: 이 기사에서 사용된 시스템은 linux mint 15 64bit이고 hadoop은 버전 1.2.1을 사용합니다.