'ITWeb/Hadoop일반'에 해당되는 글 17건

  1. 2014.07.21 [Hadoop] hdfs file read - java main 실행.
  2. 2014.07.15 [HADOOP] snappy 압축 파일 읽기.
  3. 2013.04.30 [Hadoop] Unable to load realm info from SCDynamicStore - 1.0.4
  4. 2013.04.26 [Hadoop] hadoop + hive + mysql + haproxy 를 이용한 클러스터 구성하기 2
  5. 2013.04.26 [Hadoop] Hive + Hadoop HA구성도. 1
  6. 2013.04.24 [Hadoop] hadoop version branch history.
  7. 2013.04.24 [Hadoop] bin/hadoop fs & dfs are same.
  8. 2013.04.03 [hadoop] Unable to load realm info from SCDynamicStore
  9. 2013.04.03 [ssh] mac os x 에서 ssh 연결 사용하기.
  10. 2013.04.03 [hadoo] tip, hadoop 실행 시 에러 (Error: JAVA_HOME is not set.)

[Hadoop] hdfs file read - java main 실행.

ITWeb/Hadoop일반 2014. 7. 21. 12:14

hdfs 에 저장된 파일을 읽어서 처리 하는 java main 프로그램 작성 시 hadoop 관련 라이브러리에 대한 classpath 지정을 하지 않게 되면 아래와 같은 에러가 발생 할 수 있으니 참고하세요.


[Error]

 java.io.IOException: No FileSystem for scheme: hdfs


[예제코드]

Configuration conf = new Configuration();

// conf.set("fs.default.name", hdfsServer); // deprecated

conf.set("fs.defaultFS", hdfsServer);


FileSystem hdfs = FileSystem.get(conf);

BufferedReader br = new BufferedReader(new InputStreamReader(hdfs.open(new Path(schemaFile))));


while ((line = br.readLine()) != null) {

....

}


br.close();


eclipse 에서 Runnable JAR file 로 export 하셔서 실행 하시면 됩니다.

여기서 Library handling 은 

"Copy required libraries into a sub-folder next to the generated JAR"

를 선택 하세요.


이렇게 해서 생성된 파일을 실행 하실 때 -classpath  옵션으로 추가해 주시고 실행 하시면 됩니다.


[실행 예제]

java -classpath /Users/hwjeong/Documents/workspace/eclipse-j2ee/PROJECT/target/standalone_lib -jar /Users/hwjeong/Documents/workspace/eclipse-j2ee/PROJECT/target/standalone.jar StandaloneMain hdfs://localhost:9000


※ 단순히 hdfs 에 있는 파일을 읽을 떄는 eclipse 에서 hadoo-hdfs 를 추가해서 작성해 주시면 됩니다.

<dependency>

    <groupId>org.apache.hadoop</groupId>

    <artifactId>hadoop-hdfs</artifactId>

    <version>2.3.0</version>

</dependency>


:

[HADOOP] snappy 압축 파일 읽기.

ITWeb/Hadoop일반 2014. 7. 15. 12:55

테스트를 하다 보면 hdfs 에 snappy 로 압축 된 파일을 읽어서 내용을 검증 하는 기능을 넣을때가 있습니다.

ㅎㅎ 제가 구현 하던 모듈에 필요해서 공유 합니다.

기본 구조는 아래 링크 참고 해서 작성 하였습니다.


[참조소스]

https://code.google.com/p/hadoop-snappy/source/browse/trunk/src/test/java/org/apache/hadoop/io/compress/snappy/TestSnappyCodec.java

/*

 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.hadoop.io.compress.snappy;

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import junit.framework.TestCase;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionInputStream;
import org.apache.hadoop.io.compress.CompressionOutputStream;
import org.apache.hadoop.io.compress.SnappyCodec;
import org.apache.hadoop.util.ReflectionUtils;

public class TestSnappyCodec extends TestCase {
  private String inputDir;
  
  @Override
  protected void setUp(throws Exception {
    super.setUp();
    inputDir System.getProperty("test.build.data""target");
  }
  
  public void testFile(throws Exception {
    run("test.txt");
  }
  
  private void run(String filenamethrows FileNotFoundExceptionIOException{
    File snappyFile new File(inputDirfilename new SnappyCodec().getDefaultExtension());
    if (snappyFile.exists(){
      snappyFile.delete();
    }
    
    Configuration conf new Configuration();
    CompressionCodec codec (CompressionCodecReflectionUtils.newInstance(SnappyCodec.classconf);
    
    // Compress
    InputStream is this.getClass().getClassLoader().getResourceAsStream("test.txt");
    FileOutputStream os new FileOutputStream(snappyFile);
    CompressionOutputStream cos codec.createOutputStream(os);
    
    byte buffer[new byte[8192];
    try {
      int bytesRead 0;
      while ((bytesRead is.read(buffer)0{
        cos.write(buffer0bytesRead);
      }
    catch (IOException e{
      System.err.println("Compress Error");
      e.printStackTrace();
    finally {
      is.close();
      cos.close();
      os.close();
    }
    
    // Decompress
    is =  this.getClass().getClassLoader().getResourceAsStream("test.txt");
    FileInputStream is2 new FileInputStream(snappyFile);
    CompressionInputStream cis codec.createInputStream(is2);
    BufferedReader new BufferedReader(new InputStreamReader(is));
    BufferedReader cr new BufferedReader(new InputStreamReader(cis));
    
    
    try {
      String linerline;
      int lineNum 0;
      while ((line r.readLine()!= null{
        lineNum++;
        rline cr.readLine();
        if (!rline.equals(line){
          System.err.println("Decompress error at line " line " of file " filename);
          System.err.println("Original: [" line "]");
          System.err.println("Decompressed: [" rline "]");
        }
        assertEquals(rlineline);
      }
      assertNull(cr.readLine());
    catch (IOException e{
      System.err.println("Decompress Error");
      e.printStackTrace();
    finally {
      cis.close();
      is.close();
      os.close();
    }
  }
}



[구현소스]

- 위 예제는 로컬테스트용으로 작성 되어 있기 때문에 hdfs 에서 직접 읽어오는 형태로 약간 수정했습니다.

  public static void readLines(Path locationConfiguration confthrows Exception {

    CompressionCodec codec (CompressionCodecReflectionUtils.newInstance(SnappyCodec.classconf);
    FileSystem hdfs FileSystem.get(conf);
    
    try{
      FileStatus[fileStatus hdfs.listStatus(location);
      
      for (FileStatus file fileStatus{
        if file.isDirectory({
          continue;
        }
        
        CompressionInputStream cis codec.createInputStream(hdfs.open(file.getPath()));
        BufferedReader br new BufferedReader(new InputStreamReader(cis));

        try {
          String line;
          line=br.readLine();
          
          while (line != null){
            line br.readLine();

                     System.out.println(line);
          }
        finally {
          br.close();
        }
      }
    catch IOException {
    }
  }


:

[Hadoop] Unable to load realm info from SCDynamicStore - 1.0.4

ITWeb/Hadoop일반 2013. 4. 30. 16:22

hadoop 1.0.4 + eclipse 테스트 시 아래와 같은 메시지가 나올때가 있습니다.

찾아 보면 jdk 버그라고 하는데.. 암튼 저는 아래와 같이 해결 했습니다.


[첫번째]

- hadoop-env.sh 에 아래 코드 추가


HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"

export HADOOP_OPTS


[두번째]

- eclipse project 에서 run configure 내 arguments 에 코드 추가


-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk


:

[Hadoop] hadoop + hive + mysql + haproxy 를 이용한 클러스터 구성하기

ITWeb/Hadoop일반 2013. 4. 26. 15:29

hadoop, hive 에 대해서는 우선 책이나 다른 사이트들을 통해서 충분히 이해하고 구성을 하시는게 좋습니다.

저 역시 아무런 사전 지식 없이 웹에 나와 있는 문서들만 보고 설치를 해보고 돌려 보았지만, 이런게 크게 도움이 되지 않습니다.

적어도 책 두권 이상은 정독하시고 샘플 코드들도 돌려 보시면 많은 도움이 됩니다.

또한 소스코드 까지 볼수 있다면 더욱 좋습니다.


아래는 일반 웹에 문서들과 제가 이해한 내용을 바탕으로 재구성한 내용입니다.

hadoop, hive, mysql, haproxy 등 모두 서버 설정 정보가 상당 합니다.

저 역시 모든 설정에 대해서 알고 있지 않기 때문에 사이트를 참고 하여 작성 하였습니다.


[준비사항]

- virtual box

version 4.2.12

http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html

- centos

version 6.4

http://www.centos.org/modules/tinycontent/index.php?id=15

http://ftp.neowiz.com/centos/6.4/isos/x86_64/

- hadoop

version : 1.0.4

http://hadoop.apache.org/releases.html#Download

http://mirror.apache-kr.org/hadoop/common/hadoop-1.0.4/hadoop-1.0.4.tar.gz

- mysql

version : 5.6.11

http://dev.mysql.com/downloads/mysql/

source code 선택

http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.11.tar.gz/from/http://cdn.mysql.com/

- hive

version : 0.9.0

http://hive.apache.org/releases.html#Download

http://mirror.apache-kr.org/hive/hive-0.9.0/hive-0.9.0.tar.gz

- haproxy

version : 1.4.23

http://haproxy.1wt.eu/

http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.23.tar.gz

- jdk

version : 1.6.0_45

http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html




[VirtualBox 이미지생성 및 CentOS 설치]


- http://jmnote.com/wiki/VirtualBox_CentOS_6_%EC%84%A4%EC%B9%98

- http://wiki.centos.org/HowTos/Virtualization/VirtualBox

- VM

hiveproxy

hive1 (mysql master)

hive2 (mysql slave)

namenode

secondarynamenode

datanode1

datanode2

datanoe3

- VM 이미지 생성 후 각 이미지의 /etc/hosts 에 DNS 등록



[VirtualBox Network 설정]

- 브릿지, nat, 호스트전용 : http://searchme.tistory.com/16

- 브릿지, 호스트전용 : http://blog.naver.com/PostView.nhn?blogId=icysword&logNo=140135319512

- 첫번째와 같이 해도 되지만 개발환경에서 약간 통신 상에 문제가 있는 듯 하여 순서를 아래와 같이 변경 합니다.

- 1. NAT / 2. 브릿지 / 3. 호스트전용

- VM 이미지를 하나 만들어서 설치에 필요한 파일과 환경 구성을 한 다음 복제(완전복제)를 하십시오.



[Hadoop 설치 - namenode]

- hadoop user/group 생성

. https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&cad=rja&ved=0CFoQtwIwBw&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNKxjmDQYfJk&ei=tQh6UeyWJ-eOigeG4oCADw&usg=AFQjCNFJjajIFd7SrrgNuG5UdW0L7OECLQ&sig2=-28omSER_InldSy-yyIqaw&bvm=bv.45645796,d.aGc

- sudo groupadd hadoop

- sudo useradd hadoop -m -b /home/hadoop -d /home/hadoop -s /bin/bash

- sudo vi /etc/passwd 

        - 아래 설정의 경우 shadow password 에 대한 내용으로 계정 자체에 암호 생성을 하지 않을 경우 아래 설정은 진행 하지않아도 무방 함.

From

hadoop:*:1:1:hadoop Services:/home/hadoop:/bin/bash

To

hadoop::1:1:hadoop Services:/home/hadoop:/bin/bash

- ssh 연결을 위한 keygen (hadoop 계정)

http://jjeong.tistory.com/454

- hadoop 압축해제

. 설치경로 : /home/hadoop/app/hadoop

- JAVA_HOME 설정

vi conf/hadoop-env.sh

export JAVA_HOME=/home/hadoop/app/jdk

- core-site.xml 설정

<property>

<name>fs.default.name</name>

<value>hdfs://namenode:9000</value>

</property>

- hdfs-site.xml

<property>

<name>fs.default.name</name>

<value>hdfs://namenode:9000</value>

</property>

<property>

<name>dfs.name.dir</name>

<value>/home/hadoop/app/hadoop/data/name</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/home/hadoop/app/hadoop/data/hdfs</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.http.address</name>

<value>http://namenode:50070</value>

</property>

<property>

<name>dfs.secondary.http.address</name>

<value>http://secondarynamenode:50090</value>

</property>

- masters

. secondarynamenode 서버 정보를 작성한다.

secondarynamenode

- slaves

. datanode 서버 정보를 작성한다.

datanode1

datanode2

datanode3

- mapred-site.xml

<property>

<name>mapred.map.child.java.opts</name>

<value>-Xmx200m</value>

</property>

<property>

<name>mapred.reduce.child.java.opts</name>

<value>-Xmx200m</value>

</property>

<property>

<name>mapred.job.tracker</name>

<value>namenode:9001</value>

</property>

<property>

<name>mapred.system.dir</name>

<value>/home/hadoop/app/hadoop/mapred/system</value>

</property>

<property>

<name>mapred.local.dir</name>

<value>/home/hadoop/app/hadoop/mapred/tmp</value>

</property>



[Hadoop 설치 - secondarynamenode + datanode]

- namenode 에 구성한 모든 정보를 그대로 복사한다.

- VM 이미지 완전복제를 통해서 그대로 구성해도 됨.



[Hadoop 실행 - namenode]

- 스크립트 실행은 namenode 에서만 수행 한다.

- (최초 실행 시) bin/hadoop namenode -format

- bin/start-all.sh

- 모든 구성 서버들이 정상적으로 실행 되었는지 로그 확인.

- namenode, secondarynamenode, datanode, jobtracker, tasktracker 데몬이 떠야 함.

- http://namenode:50070/dfshealth.jsp

- http://namenode:50030/jobtracker.jsp

- bin/stop-all.sh



[MySQL 설치]

- 설치 경로와 mysql user 만 변경해서 설치 (아래 링크 참고)

- http://www.yongbok.net/blog/how-to-install-mysql-5-5-x-from-source/

- http://blog.beany.co.kr/archives/2648

- 설치 경로 : /home/hadoop/app/mysql

- mysql user : hadoop



[MySQL - cmake/make/install]

cmake \

-DCMAKE_INSTALL_PREFIX=/home/hadoop/app/mysql \

-DMYSQL_UNIX_ADDR=/home/hadoop/app/mysql/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DMYSQL_DATADIR=/home/hadoop/app/mysql/db \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_USER=hadoop \

-DMYSQL_TCP_PORT=3306 \

-DENABLE_DOWNLOADS=1

make && make install



[MySQL - my.cnf 수정]

- 위치 : /home/hadoop/app/mysql/my.cnf

- vi my.cnf

basedir=/home/hadoop/app/mysql

datadir=/home/hadoop/app/mysql/db

port=3306

- sudo cp my.cnf /etc/my.cnf



[MySQL - 기본DB 생성]

- scripts/mysql_install_db --user=hadoop --defaults-file=//home/hadoop/app/mysql/my.cnf

- defaults-file 을 지정하지 않을 경우 /etc/my.cnf 파일 참조함.



[MySQL 실행]

- bin/mysqld_safe &

- bin/mysql -uroot

- use mysql;

- insert into user values(....);

- update user set password=password('....') where user='xxxx' and host='xxxx'

- flush privileges;



[Hive 설치]

- http://blog.beany.co.kr/archives/1519

- hive 설치는 hadoop 이 설치된 서버와 별도로 설치 해도 됨.

- 단, hadoop 과 통신이 가능한 network 상에 있어야 함.

- 설치 경로 : /home/hadoop/app/hive



[Hive 용 HDFS 생성]

- namenode 에서 shell 로 실행

- bin/hadoop fs -mkdir /tmp

- bin/hadoop fs -mkdir /user/hive/warehouse

- bin/hadoop fs -chmod g+w /tmp

- bin/hadoop fs -chmod g+w /user/hive/warehouse



[Hive hive-env.sh 설정]

- cp conf/hive-env.sh.template conf/hive-env.sh

HADOOP_HOME=/home/hadoop/app/hadoop



[Hive metastore 설정]

- conf/hive-site.xml

<property>

<name>hive.metastore.warehouse.dir</name>

<value>/usr/hive/warehouse</value>

<description>hdfs path for hive metastore</description>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://namenode:9000</value>

</property>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBC metastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBC metastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>hadoop</value>

<description>username to use against metastore database</description>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>hadoop.user.mysql.password</value>

<description>password to use against metastore database</description>

</property> 

<property>

<name>datanucleus.autoCreateSchema</name>

<value>false</value>

</property> 

<property>

<name>datanucleus.fixedDatastore</name>

<value>true</value>

</property> 



[Hive JDBC Driver 등록]

- http://www.mysql.com/downloads/connector/j/

- mysql-connector-java-5.1.24.jar 를 hive/lib 아래로 복사



[Hive 실행]

- bin/start-hive.sh

#!/bin/bash

HIVE_HOME=/home/hadoop/app/hive

/usr/bin/nohup $HIVE_HOME/bin/hive --service hiveserver > $HIVE_HOME/logs/hive.log 2>&1 < /dev/null &

echo $! > $HIVE_HOME/bin/hive-server.pid

- bin/stop-hive.sh

#!/bin/bash

/bin/cat /home/hadoop/app/hive/bin/hive-server.pid | xargs kill -9



[Hive CLI]

- bin/hive

hive> quit;



[Hive Metastore DB 구성]

- mysql -uroot

mysql> create database metastore_db;

mysql> use metastore_db;

mysql> source /home/hadoop/app/hive/scripts/metastore/upgrade/mysql/hive-schema-0.9.0.mysql.sql

mysql> show tables;



[Hive 데이터 등록]

- vi textfile

1,2

3,4

5,6

- bin/hive

hive> create table citi (citing int, cited int) row format delimited fields terminated by ',' stored as textfile;

- mysql -uroot

mysql> use metastore_db;

mysql> select * from TBLS\G;



[Hive HA 구성]

- hive 1번 서버 구성과 같은 구성으로 hive 2번 서버를 구성한다.

- 구성된 서버들을 haproxy 로 묶는다.



[HAProxy 설치]

- http://haproxy.1wt.eu/

- https://github.com/langpavel/haproxy-doc

- http://linuxadminzone.com/install-and-configure-haproxy-the-software-based-loadbalancer-in-ubuntu/

- http://www.sestory.net/73

- http://helloworld.naver.com/helloworld/284659


[HAProxy /etc/haproxy/haproxy.cfg 샘플]

global

        log 127.0.0.1  local0

        maxconn 1024

        uid 99

        gid 99

        daemon

 

defaults

        log    global

        mode    http

        option httplog

        option dontlognull

        retries 3

        option redispatch

        maxconn 1024

        contimeout      5000

        clitimeout      50000

        srvtimeout      50000

 

listen  hive-service 192.168.56.102:80

        option forwardfor

        option httpchk OPTIONS /health_check.html

        stats enable

        stats refresh 10s 

        stats hide-version

        stats scope   .   

 

        server  web1 www.naver.com:80 check inter 2000 fall 3

        server  web2 www.daum.net:80 check inter 2000 fall 3



:

[Hadoop] Hive + Hadoop HA구성도.

ITWeb/Hadoop일반 2013. 4. 26. 11:00

어제 VM 설치하고 구성하면서 이해한 수준으로 작성 한거라 정확한 HA 구성이라고 보기는 힘들 수 있습니다.

더군다나 실제 production 에 올려 본게 아니고 개발에서 구성만 해본거라 더욱그렇구요.


[구성요소]

- HAProxy : hive service HA 구성을 위해서 사용

- Hive : hadoop 에 데이터 적재 및 분석

- MySQL : hive 의 meta 정보를 저장

- Hadoop : 분산파일시스템 및 MR 관리



[구성도]


늘 느끼는 거지만 오픈소스를 대하면서 정말 중요한 정보들은 어디, 어느 누구도 공유를 잘 안해주내요.

뭐 다들 고생해서 얻은 경험이라 그럴수도 있다고 생각은 하지만 오픈 소스에 대한 쉬운 접근성에 대한 불편한 진실 같습니다.

:

[Hadoop] hadoop version branch history.

ITWeb/Hadoop일반 2013. 4. 24. 15:54

hadoop shell command 로 테스트 도중 overwrite 관련 내용이 궁금해서 찾아본 내용 정리 합니다.


일단, 하둡의 버전 부터 알아 봅시다.





자 그럼 여기서 overwrite 기능이 추가된 버전은 무엇일까요?

https://issues.apache.org/jira/browse/HADOOP-7361


그렇습니다.

0.23.x 부터 시작된 branch 에 반영이 되어 있습니다.

저 처럼 괜히 1.0.x 에서 왜 안되지 하는 삽질은 하지 마시기 바랍니다.


궁금한건 해결해야 하는 성격이라 올려 봅니다.

1.0.x 에서는 삭제하고 올리면 됩니다.


관련 소스코드는 

hadoop-release-1.0.4/src/core/org/apache/hadoop/fs/FsShell.java

를 보시면 됩니다.


:

[Hadoop] bin/hadoop fs & dfs are same.

ITWeb/Hadoop일반 2013. 4. 24. 15:31

하둡을 시작 한 지 얼마 되지 않아서 궁금한게 무지 많습니다.

그래서 기초부터 차근 차근 하려고 합니다.


우선 wordcount m/r 테스트 도중 발생한 궁금증??


bin/hadoop fs

bin/hadoop dfs


문서를 보다 보면 이렇게 두 가지가 나오는데요.

두개가 뭐가 다르지 해서 찾아 봤습니다.


bni/hadoop 파일을 열어 보시면 나옵니다.

결론은 두 개가 같다 입니다.


......

elif [ "$COMMAND" = "fs" ] ; then

  CLASS=org.apache.hadoop.fs.FsShell

  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"

elif [ "$COMMAND" = "dfs" ] ; then

  CLASS=org.apache.hadoop.fs.FsShell

  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"

......


:

[hadoop] Unable to load realm info from SCDynamicStore

ITWeb/Hadoop일반 2013. 4. 3. 16:03

아래와 같은 에러가 로그에 찍힙니다.

Unable to load realm info from SCDynamicStore


hadoop-1.0.4 로 테스트 중이구요.


이 에러 로그에 대한 해결은 아래 링크 참고하세요.

http://stackoverflow.com/questions/7134723/hadoop-on-osx-unable-to-load-realm-info-from-scdynamicstore


known issue로 되어 있습니다.


[해결방법]

vi conf/hadoop-env.sh

this line : # export HADOOP_OPTS=-server

to : export HADOOP_OPTS="-Djava.security.krb5.realm= -Djava.security.krb5.kdc="


그리고

bin/start-all.sh

하시면 에러가 없어 진걸 확인 할 수 있습니다.

내용은 뭐 보안 관련된 것이구요.

kerberos 인증 관련 입니다.

:

[ssh] mac os x 에서 ssh 연결 사용하기.

ITWeb/Hadoop일반 2013. 4. 3. 15:52

아래 링크 가면 나와 있습니다.

http://osxdaily.com/2011/09/30/remote-login-ssh-server-mac-os-x/



Using Remote Login to Start the SSH Server in Mac OS X

These instructions are the same for OS X 10.7 Lion and 10.6:

  • Open System Preferences and click on “Sharing”
  • Select the checkbox next to “Remote Login” to enable it, like the screenshot above


:

[hadoo] tip, hadoop 실행 시 에러 (Error: JAVA_HOME is not set.)

ITWeb/Hadoop일반 2013. 4. 3. 15:26

하둡 설치 하고 기본 튜토리얼에서 나온 데로 실행을 했을 경우 아래와 같은 에러가 발생 할때가 있습니다.


Error: JAVA_HOME is not set.


보시면, 직관적이죠!!


설치된 경로에서 conf/hadoop-env.sh 파일을 열어 보시면 아래와 같은 주석 line 이 보입니다.

java home path 를 맞게 설정해 주면 되겠죠.


line : # export JAVA_HOME=/usr/lib/j2sdk1.5-sun

to : export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/HOME


저는 맥에서 설치 테스트를 해서 위와 같이 수정했습니다.

: