hadoophadoop 시작하기


비고

Apache Hadoop이란 무엇입니까?

Apache Hadoop 소프트웨어 라이브러리는 간단한 프로그래밍 모델을 사용하여 여러 컴퓨터에서 대규모 데이터 세트를 분산 처리 할 수있게 해주는 프레임 워크입니다. 단일 서버에서 수천 대의 머신으로 확장 할 수 있도록 설계되었으며 각 머신은 로컬 계산 및 스토리지를 제공합니다. 라이브러리 자체는 고 가용성을 제공하기 위해 하드웨어에 의존하는 것이 아니라 응용 프로그램 계층에서 장애를 감지하고 처리하여 장애가 발생할 수있는 컴퓨터 클러스터 상단에 고 가용성 서비스를 제공하도록 설계되었습니다.

Apache Hadoop은 다음 모듈을 포함합니다.

  • Hadoop Common : 다른 Hadoop 모듈을 지원하는 공용 유틸리티.
  • Hadoop 분산 파일 시스템 (HDFS) : 애플리케이션 데이터에 높은 처리량의 액세스를 제공하는 분산 파일 시스템입니다.
  • Hadoop Yarn : 작업 스케줄링 및 클러스터 리소스 관리를위한 프레임 워크.
  • Hadoop MapReduce : 대규모 데이터 세트를 병렬 처리하기위한 YARN 기반 시스템.

참고:

Apache Hadoop

버전

번역 릴리즈 노트 출시일
3.0.0-alpha1 2016-08-30
2.7.3 여기를 클릭하십시오 - 2.7.3 2016-01-25
2.6.4 여기를 클릭하십시오 - 2.6.4 2016-02-11
2.7.2 여기를 클릭하십시오 - 2.7.2 2016-01-25
2.6.3 여기를 클릭하십시오 - 2.6.3 2015-12-17
2.6.2 여기를 클릭하십시오 - 2.6.2 2015-10-28
2.7.1 여기를 클릭하십시오 - 2.7.1 2015-07-06

Hadoop 개요 및 HDFS

여기에 이미지 설명을 입력하십시오.

    Hadoop은 분산 컴퓨팅 환경에서 데이터 세트의 저장 및 대규모 처리를위한 오픈 소스 소프트웨어 프레임 워크입니다. Apache Software Foundation에서 후원합니다. 단일 서버에서 수천 대의 머신으로 확장 할 수 있도록 설계되었으며 각 머신은 로컬 계산 및 스토리지를 제공합니다.
역사

  • Hadoop은 2005 년 Doug Cutting과 Mike Cafarella에 의해 만들어졌습니다.
  • 야후에서 일하는 커팅 그 당시에는 아들의 장난감 코끼리의 이름을 따서 명명했습니다.
  • 원래는 검색 엔진 프로젝트 배포를 지원하기 위해 개발되었습니다.
hadoop의 주요 모듈

    Hadoop 분산 파일 시스템 (HDFS) : 애플리케이션 데이터에 높은 처리량의 액세스를 제공하는 분산 파일 시스템입니다. Hadoop MapReduce : 컴퓨팅 클러스터에 대규모 데이터 세트를 분산 처리하기위한 소프트웨어 프레임 워크.
Hadoop 파일 시스템 기본 기능

    고도의 내결함성. 높은 처리량. 대용량 데이터 세트가있는 애플리케이션에 적합합니다. 범용 하드웨어로 만들 수 있습니다.
네임 노드 및 데이터 노드

    마스터 / 슬레이브 구조. HDFS 클러스터는 파일 시스템 네임 스페이스를 관리하고 클라이언트가 파일에 액세스하는 것을 규제하는 마스터 서버 인 단일 네임 노드로 구성됩니다. DataNodes는 실행되는 노드에 연결된 스토리지를 관리합니다. HDFS는 파일 시스템 네임 스페이스를 노출하고 사용자 데이터를 파일에 저장할 수 있도록합니다. 파일은 하나 이상의 블록으로 분할되고 블록 세트가 DataNodes에 저장됩니다. DataNodes : 네임 노드의 지시에 따라 읽기, 쓰기 요청을 처리하고, 블록 생성, 삭제 및 복제를 수행합니다.

여기에 이미지 설명을 입력하십시오.

    HDFS는 대용량 클러스터의 여러 시스템에 매우 큰 파일을 저장하도록 설계되었습니다. 각 파일은 일련의 블록입니다. 파일의 마지막 블록을 제외한 모든 블록의 크기는 동일합니다. 블록은 내결함성을 위해 복제됩니다. 네임 노드는 클러스터의 각 DataNode에서 하트 비트와 BlockReport를 수신합니다. BlockReport는 데이터 노드의 모든 블록을 포함합니다.
Hadoop 셸 명령

    사용 된 공통 명령 : -
      ls 사용법 : hadoop fs -ls 경로 (경로 / 디렉토리 경로). 고양이 사용법 : hadoop fs -cat PathOfFileToView

여기에 이미지 설명을 입력하십시오.

hadoop 셸 명령 링크 : - https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/FileSystemShell.html

우분투에 Hadoop 설치

Hadoop 사용자 생성 :

sudo addgroup hadoop
 

사용자 추가 :

sudo adduser --ingroup hadoop hduser001
 

여기에 이미지 설명을 입력하십시오.

SSH 구성 :

su -hduser001
ssh-keygen -t rsa -P ""
cat .ssh/id rsa.pub >> .ssh/authorized_keys
 

참고 : 인증 된 키를 쓰는 동안 [ bash : .ssh / authorized_keys : No such file or directory ] 오류가 발생하는 경우. 여기를 확인 하십시오 .

여기에 이미지 설명을 입력하십시오. 여기에 이미지 설명을 입력하십시오. 여기에 이미지 설명을 입력하십시오.

sudoer의 목록에 hadoop 사용자를 추가하십시오 :

sudo adduser hduser001 sudo
 

여기에 이미지 설명을 입력하십시오.

IPv6 비활성화 :

여기에 이미지 설명을 입력하십시오. 여기에 이미지 설명을 입력하십시오.

Hadoop 설치 :

sudo add-apt-repository ppa:hadoop-ubuntu/stable
sudo apt-get install hadoop
 

여기에 이미지 설명을 입력하십시오. 여기에 이미지 설명을 입력하십시오.

Linux에서 설치 또는 설정

의사 분산 클러스터 설정 절차

선결 요건

  • JDK1.7을 설치하고 JAVA_HOME 환경 변수를 설정하십시오.

  • "hadoop"으로 새 사용자를 만듭니다.

    useradd hadoop

  • 자신의 계정에 대한 암호가없는 SSH 로그인 설정

     su - hadoop
     ssh-keygen
     << Press ENTER for all prompts >>
     cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
     chmod 0600 ~/.ssh/authorized_keys
     
  • ssh localhost 를 수행하여 확인하십시오.

  • /etc/sysctl.conf 을 편집하여 IPV6을 비활성화하십시오 :

     net.ipv6.conf.all.disable_ipv6 = 1
     net.ipv6.conf.default.disable_ipv6 = 1
     net.ipv6.conf.lo.disable_ipv6 = 1
     
  • cat /proc/sys/net/ipv6/conf/all/disable_ipv6 를 사용하여 확인하십시오.

    (1을 반환해야 함)

설치 및 구성 :

  • wget 명령을 사용하여 Apache 아카이브에서 필요한 버전의 Hadoop을 다운로드하십시오.

     cd /opt/hadoop/
     wget http:/addresstoarchive/hadoop-2.x.x/xxxxx.gz
     tar -xvf hadoop-2.x.x.gz
     mv hadoop-2.x.x.gz hadoop 
    (or)
    
     ln -s hadoop-2.x.x.gz hadoop
     chown -R hadoop:hadoop hadoop
     
  • 아래의 환경 변수를 가진 쉘 기반의 .bashrc / .kshrc 를 업데이트하십시오.

      export HADOOP_PREFIX=/opt/hadoop/hadoop
      export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
      export JAVA_HOME=/java/home/path
      export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$JAVA_HOME/bin
     
  • $HADOOP_HOME/etc/hadoop 디렉토리에서 아래의 파일을 편집하십시오

    • core-site.xml

      <configuration>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://localhost:8020</value>
          </property>
      </configuration> 
       
    • mapred-site.xml

      템플릿에서 mapred-site.xml 을 만듭니다.

      cp mapred-site.xml.template mapred-site.xml

        <configuration>
            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>
        </configuration> 
       
    • yarn-site.xml

       <configuration>
           <property>
               <name>yarn.resourcemanager.hostname</name>
               <value>localhost</value> 
           </property>
           <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
           </property>
       </configuration>
       
    • hdfs-site.xml

       <configuration>
           <property>
               <name>dfs.replication</name>
               <value>1</value>
           </property>
           <property>
               <name>dfs.namenode.name.dir</name>
               <value>file:///home/hadoop/hdfs/namenode</value>
           </property>
           <property>
               <name>dfs.datanode.data.dir</name> 
               <value>file:///home/hadoop/hdfs/datanode</value> 
           </property>
       </configuration>
       

    hadoop 데이터를 저장할 상위 폴더 만들기

    mkdir -p /home/hadoop/hdfs
     
  • NameNode 형식 (디렉토리 정리 및 필요한 메타 파일 생성)

    hdfs namenode -format
     
  • 모든 서비스 시작 :

    start-dfs.sh && start-yarn.sh
    mr-jobhistory-server.sh start historyserver
     

대신 start-all.sh를 사용하십시오 (사용되지 않음).

  • 실행중인 모든 Java 프로세스를 확인하십시오.

    jps 
     
  • 네임 노드 웹 인터페이스 : http : // localhost : 50070 /

  • 자원 관리자 웹 인터페이스 : http : // localhost : 8088 /

  • 데몬 (서비스)을 중지하려면 다음을 수행하십시오.

    stop-dfs.sh && stop-yarn.sh
    mr-jobhistory-daemon.sh stop historyserver
     

대신 stop-all.sh를 사용하십시오 (사용되지 않음).