Ubuntu 12.04 버전에서 Hadoop을 설치하려고합니다. http://michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ 의 지침에 따라
java-6-openjdk
Ubuntu 소프트웨어 센터에서 설치 했습니다. 에 설정 java_home
했습니다 .bashrc
. java_home
하둡 에서도 설정 됩니다 conf/env.sh
. 네임 노드를 포맷하는 동안 다음 오류가 발생합니다.
usr/lib/jvm/java-6-openjdk/bin/java no such file or directory.
고맙습니다. 그러나 64 비트 OS입니다.
답변
내가 12.04를 가질 때 따라온 가이드는 다음과 같습니다.
필자가 가장 먼저 추천 한 것은 OpenJDK 7이 아닌 Oracle Java 7이기 때문에 MyLearning에 실제로 반대했지만 OpenJDK 7에 문제가있어서 Oracle과 함께 가야했습니다.
이 안내서는 대부분 직설적이며 다음과 같습니다.
-
자바 설치
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update && sudo apt-get upgrade sudo apt-get install oracle-java7-installer
-
하둡 사용자 생성
sudo addgroup hadoop sudo adduser --ingroup hadoop hduser
hduser는 원하는 Hadoop 사용자입니다.
-
SSH 구성
su - hduser ssh-keygen -t rsa -P "" cat .ssh/id_rsa.pub >> .ssh/authorized_keys
SSH가 제대로 설치되었는지 확인하려면
hduser
다음 명령을 사용하여 새 터미널을 열고 ssh 세션을 만들 수 있습니다 .ssh localhost
localhost가 연결되지 않으면 ssh를 다시 설치하십시오 (
hduser
아래 단계와 같이 sudo 에 추가해야 할 수도 있습니다 )sudo apt-get install openssh-server
-
Sudoers 편집
sudo visudo
-
줄 끝에 hduser를 sudoers에 추가하십시오.
hduser ALL=(ALL:ALL) ALL
CTRL+ 를 저장하려면을 X입력 Y하고ENTER
-
IPv6 비활성화
sudo gedit /etc/sysctl.conf
또는
sudo nano /etc/sysctl.conf
파일 끝에 다음 줄을 복사하십시오.
#disable ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
당신에게 말하는 데 문제가 있다면, 당신은 권한이 없으며, 루트 계정으로 이전 명령을 실행하십시오 (sudo가 충분하지 않은 경우입니다.
-
이제 재부팅하십시오.
당신은 또한 할 수
sudo sysctl -p
있지만 오히려 재부팅합니다.재부팅 한 후 IPv6이 꺼져 있는지 확인하십시오.
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1 이어야합니다 . 그것이 말하는 경우 0을 , 당신이 뭔가를 놓쳤다.
-
하둡 설치
이 작업을 수행하는 몇 가지 방법이 있습니다. 가이드에서 제안하는 방법은 Apache Hadoop 사이트 에서 다운로드 하여
hduser
홈 폴더 에있는 파일의 압축을 푸는 것 입니다. 추출 된 폴더의 이름을로 바꿉니다hadoop
.다른 방법은 12.04에 대해 테스트 된 PPA를 사용하는 것입니다.
sudo add-apt-repository ppa:hadoop-ubuntu/stable sudo apt-get update && sudo apt-get upgrade sudo apt-get install hadoop
참고 : PPA는 일부에 대해서는 작동 할 수 있지만 그렇지 않을 수도 있습니다. 내가 시도한 것은 PPA에 대해 몰랐기 때문에 공식 사이트에서 다운로드하는 것입니다.
-
최신 정보
$HOME/.bashrc
.bashrc
forhduser
(및 Hadoop을 관리해야하는 모든 사용자) 를 업데이트 해야합니다. 열려면.bashrc
파일, 루트로 열어야합니다 :sudo gedit /home/hduser/.bashrc
또는
sudo nano /home/hduser/.bashrc
그런 다음
.bashrc
파일 끝에 다음 구성을 추가 합니다# Set Hadoop-related environment variables export HADOOP_HOME=/home/hduser/hadoop # Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)` export JAVA_HOME=/usr/lib/jvm/java-7-oracle
이제 OpenJDK7이 있으면 다음과 같이 보일 것입니다.
export JAVA_HOME=/usr/lib/java-7-openjdk-amd64
여기서주의해야 할 것은 Java가 AMD64 버전으로 상주하는 폴더입니다. 위의 방법으로 문제가 해결되지 않으면 해당 특정 폴더를 찾거나 다음과 함께 사용할 Java를 설정하십시오.
sudo update-alternatives --config java
이제 유용한 별명을 찾으십시오.
# Some convenient aliases and functions for running Hadoop-related commands unalias fs &> /dev/null alias fs="hadoop fs" unalias hls &> /dev/null alias hls="fs -ls" # Add Hadoop bin/ directory to PATH export PATH=$PATH:$HADOOP_HOME/bin
-
하둡 구성
다음은 올바른 구성을 수행하는 데 사용할 수있는 구성 파일입니다. Hadoop과 함께 사용할 일부 파일은 다음과 같습니다 ( 이 사이트의 추가 정보 ).
start-dfs.sh
-Hadoop DFS 데몬, 이름 노드 및 데이터 노드를 시작합니다. start-mapred.sh 전에 이것을 사용하십시오stop-dfs.sh
-Hadoop DFS 데몬을 중지합니다.start-mapred.sh
-Hadoop Map / Reduce 데몬, 작업 추적기 및 작업 추적기를 시작합니다.stop-mapred.sh
-Hadoop Map / Reduce 데몬을 중지합니다.start-all.sh
-모든 Hadoop 데몬, 이름 노드, 데이터 노드, 작업 추적기 및 작업 추적기를 시작합니다. 더 이상 사용되지 않습니다. start-dfs.sh를 사용한 다음 start-mapred.sh를 사용하십시오.stop-all.sh
-모든 Hadoop 데몬을 중지합니다. 더 이상 사용되지 않습니다. stop-mapred.sh를 사용한 다음 stop-dfs.sh를 사용하십시오.그러나 사용하기 전에
/conf
폴더의 여러 파일을 수정해야 합니다.hadoop-env.sh
파일을 찾으십시오
hadoop-env.sh
.이 파일에서 JAVA_HOME 변수 만 업데이트하면됩니다.sudo gedit /home/hduser/hadoop/conf/hadoop-env.sh
또는
sudo nano /home/hduser/hadoop/conf/hadoop-env.sh
또는 최신 버전에서는
sudo nano /etc/hadoop/conf.empty/hadoop-env.sh
또는
sudo nano /etc/hadoop/hadoop-env.sh
그런 다음 다음 줄을 변경하십시오.
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
에
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
참고 :
Error: JAVA_HOME is not set
서비스를 시작하는 동안 오류가 발생하면 이전 행의 주석을 해제하는 것을 잊었습니다 (# 만 제거).core-site.xml
이제 Hadoop 프레임 워크에 대한 임시 디렉토리를 작성해야합니다. 테스트 또는 빠른 프로토 타입 (예 : 개인 테스트 용 간단한 hadoop 프로그램 개발)을 위해이 환경이 필요한 경우
/home/hduser/
디렉토리 아래에이 폴더를 작성하는 것이 좋습니다 . 그렇지 않으면 공유 폴더 아래의 공유 위치에이 폴더를 작성해야합니다 ( / usr / local …)과 같은 보안 문제가 발생할 수 있습니다. 그러나 java.io.IOException과 같은 보안으로 인해 발생할 수있는 예외를 극복하기 위해 hduser 공간 아래에 tmp 폴더를 만들었습니다.이 폴더를 만들려면 다음 명령을 입력하십시오.
sudo mkdir /home/hduser/tmp
다른 관리자 (예 : hadoop 그룹의 hduser2)를 만들려면 다음 명령을 사용하여이 폴더에 대한 읽기 및 쓰기 권한을 부여해야합니다.
sudo chown hduser:hadoop /home/hduser/tmp sudo chmod 755 /home/hduser/tmp
이제
hadoop/conf/core-site.xml
hadoop.tmp.dir 항목을 편집하기 위해 열 수 있습니다 . 텍스트 편집기를 사용하여 core-site.xml을 열 수 있습니다.sudo gedit /home/hduser/etc/hadoop/core-site.xml
또는
nano /home/hduser/etc/hadoop/core-site.xml
그런 다음 xml 요소 사이에
<configure>
다음 구성을 추가하십시오 .<property> <name>hadoop.tmp.dir</name> <value>/home/hduser/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:54310</value> <description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.</description> </property>
이제 편집
mapred-site.xml
<property> <name>mapred.job.tracker</name> <value>localhost:54311</value> <description>The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task. </description> </property>
이제 편집
hdfs-site.xml
<property> <name>dfs.replication</name> <value>1</value> <description>Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time. </description> </property>
-
포맷팅 노드
이제 노드 작업을 시작할 수 있습니다. 첫 번째 형식 :
~/hduser/hadoop/bin/hadoop namenode -format
또는
./home/hduser/hadoop/bin/hadoop namenode -format
HDFS에서 네임 노드를 포맷해야합니다. 시스템이 실행 중일 때는이 단계를 수행하지 않아야합니다. 일반적으로 설치 처음에 한 번 수행됩니다.
-
하둡 클러스터 시작
hadoop / bin 디렉토리로 이동하여
./start-all.sh
스크립트를 실행해야합니다 .cd ~/hduser/hadoop/bin/ start-all.sh
가이드에 표시된 버전과 다른 버전이있는 경우 (PPA 또는 최신 버전으로이 작업을 수행 할 가능성이 가장 높음) 다음과 같이 시도하십시오.
cd ~/hduser/hadoop/bin/ start-dfs.sh start-mapred.sh
컴퓨터에서 네임 노드, 데이터 노드, 작업 추적기 및 작업 추적기가 시작됩니다.
-
하둡이 실행 중인지 확인
라는 멋진 도구가
jps
있습니다. 이를 사용하여 모든 서비스가 작동하는지 확인할 수 있습니다. hadoop bin 폴더에서 다음을 입력하십시오.jps
모든 Hadoop 관련 프로세스가 표시되어야합니다.
참고 :이 작업은 6 개월 전에 수행되었으므로 작동하지 않는 부분이 있으면 알려주십시오.
Juju를 이용한 하둡 (Hadoop을위한 Juju Charm)
매력적인 하둡 에서 가져온
다음이 이미 설정되어 있다고 가정합니다.
- Juju가 이미 설정된 서버가 있습니다
- 로컬 또는 원격으로 서버에 액세스 할 수 있습니다
- Juju를 구성하고 참 추가를 시작할 준비가되었습니다.
- 12.04를 사용하고 있습니다 (12.04 로이 모든 것을 테스트했기 때문입니다)
~/.juju/environments.yaml
PPA 오리진을 포함하여 사용할 서버에 관한 정보로 이미 구성 했습니다.
이제 다음 단계에 따라 Hadoop 서비스를 실행하십시오.
-
하둡 환경 부트 스트랩
juju bootstrap
완료 될 때까지 기다렸다가 올바르게 연결되어 있는지 확인하십시오.
juju status
-
하둡 배포 (마스터 및 슬레이브)
juju deploy --constraints="instance-type=m1.large" hadoop hadoop-master juju deploy --constraints="instance-type=m1.medium" -n 5 hadoop hadoop-slave
-
관계 만들기
juju add-relation hadoop-master:namenode hadoop-slave:datanode juju add-relation hadoop-master:jobtracker hadoop-slave:tasktracker
-
하둡 노출 (이미 관계를 배포하고 생성 했으므로 서비스가 실행 중이어야 함)
juju expose hadoop-master
그리고 상태가 올바르게 작동하는지 확인하십시오.
juju status hadoop-master
지금까지 실행중인 Hadoop이 있습니다. 제공된 링크 또는 Hadoop 의 공식 Juju Charm 에서 찾을 수있는 더 많은 작업이 있습니다.
최신 JuJu Charms (설정, 단계별 가이드 등)를 방문하려면 다음을 방문하십시오 : JuJu Charms 및 자체 JuJu 환경 만들기 및 각 파일 설정 방법 및 각 서비스 연결 방법 확인.
답변
경로를 JAVA_HOME
로 설정하여 Hadoop을 성공적으로 설치 했습니다 usr/lib/jvm/java-6-openjdk-amd64
.
답변
@Luis Alvarado의 답변 에서 파생 된 Ubuntu 14.04 및 Hadoop 2.5.1의 내 버전은 다음과 같습니다.
간단히
- 자바 설치
- 하둡을 위한 임원 사용자 준비
hduser
hduser
지금부터 전환hduser
패스 프레이즈없이 SSH를 통해 원격으로 허용- IPv6 비활성화
- Hadoop 패키지 다운로드 및 구성
- 시스템 경로 $ HADOOP_HOME 및 $ JAVA_HOME을 준비하십시오.
- 구성 하둡 서비스
- 하둡 서비스 시작
끝난. 행운을 빕니다!
세부 단계
자바 설치
다운로드 및 설치
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install oracle-java7-installer
Java7이 설치되어 있는지 확인하십시오
$ which java
$ ls -l /usr/bin/java
$ ls -l /etc/alternatives/java
우리는 java
지적해야/usr/lib/jvm/java-7-oracle/jre/bin/java
하둡을 위한 임원 사용자 준비hduser
hduser
그룹에서 사용자 생성hadoop
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
sudo 권한을 부여 hduser
하십시오
sudo 편집
$ sudo visudo
이 줄 끝에 추가
hduser ALL=(ALL:ALL) ALL
hduser
지금부터 전환
$ su - hduser
hduser
패스 프레이즈없이 SSH를 통해 원격으로 허용
openssh 설치
$ sudo apt-get install openssh-server
SSH 연결을위한 RSA 공개 / 개인 키 생성 암호문이 비어 있습니다parameter -P ""
$ ssh-keygen -t rsa -P ""
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
hduser
비밀번호없이 로컬로 원격으로 ssh 할 수 있는지 확인하십시오
$ ssh localhost
IPv6 비활성화
구성 파일 편집
$ sudo nano /etc/sysctl.conf
끝까지 복사
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
재부팅 또는 호출로 IPv6이 꺼져 있는지 확인
$ sudo sysctl -p
그런 다음 전화
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
OK라는 의미의 1이라고 말해야합니다 ^^
Hadoop 패키지 다운로드 및 구성
Apache Hadoop 사이트 에서 Hadoop 2.5.1 패키지 다운로드
이 패키지의 직접 URL은이 링크입니다
http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
hduser
홈 폴더로 다운로드하여 압축을 풀고 이름을 바꿉니다.hadoop
$ wget http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
$ tar -xvzf hadoop-2.5.1.tar.gz
$ mv hadoop-2.5.1 hadoop
우리가 하둡을 hduser
집에 저장했는지 확인하십시오
$ ls /home/hduser/hadoop
시스템 경로 $ HADOOP_HOME 및 $ JAVA_HOME을 준비하십시오.
hduser
의 .bashrc 파일 편집
$ nano .bashrc
에 대한 최종 값을 넣어 $HADOOP_HOME
및$JAVA_HOME
# Set Hadoop-related environment variables
export HADOOP_HOME=/home/hduser/hadoop
# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
binary
시스템에 Hadoop 폴더 추가$PATH
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
새 터미널을 열고로 로그인 hduser
하여 사용 가능한 명령이있는 $ HADOOP_HOME이 있는지 확인하십시오.
$ echo $HADOOP_HOME
$ which start-all.sh
$ which start-dfs.sh
$ which start-yarn.sh
우리는 그 이름들의 전체 경로를보아야합니다.
구성 하둡 서비스
Hadoop의 각 구성 요소는 XML 파일을 사용하여 구성됩니다.
-
공통 속성은 core-site.xml에 있습니다.
-
hdfs-site.xml에 있는 HDFS 속성
-
MapReduce 속성은 mapred-site.xml에 있습니다.
이 파일들은 모두 $ HADOOP_HOME / etc / hadoop 폴더에 있습니다.
hadoop-env.sh
라인을 편집하여 JAVA_HOME을 다시 정의하십시오.
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
core-site.xml 에서 하둡 temp folder
및 file system
이름 정의
<configuration>
...
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hduser/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
...
</configuration>
우리는 이것을 다음 temp folder
과 같이 구성 해야 합니다./home/hduser/tmp
$ cd /home/hduser
$ mkdir tmp
$ chown hduser:hadoop tmp
$ chmod 755 tmp
hdfs-site.xml 에서 file system
의 정의block replication
<configuration>
...
<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
...
</configuration>
mapred-site.xmlmap-reduce job
에서 정의
<configuration>
...
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
...
</configuration>
체재 name node
$ hdfs namenode -format
하둡 서비스 시작
요구
$ start-dfs.sh && start-yarn.sh
이 두 명령은 시스템 $ PATH에 추가 한 $ HADOOP_HOME / sbin 에 있습니다.
하둡 서비스가 올바르게 시작되었는지 확인
$ jps
우리는보아야한다
답변
설치 할 수 있으려면 sun-java
와 apt-get
명령, 당신은라는 파일에 한 줄을 추가해야합니다 sources.list
. 이 파일은에서 찾을 수 있습니다 /etc/apt/sources.list
.
이 명령을 사용하여 파일을여십시오.
sudo nano /etc/apt/sources.list
그런 다음 해당 파일의 맨 아래에서 아래 행을 복사 / 붙여 넣기하십시오.
deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse
이제 Ctrl+ X를 눌러 종료하고 y저장하십시오.
이제 다음 명령을 입력하십시오 :
sudo apt-get update
그리고 완료되면 다음 명령을 성공적으로 실행할 수 있습니다.
sudo apt-get install sun-java6-jdk
답변
최신 튜토리얼 (차이는 확실하지 않음)은 hadoop screencasts 비디오 튜토리얼을 참조하십시오. 아래에 설치할 비디오와 실제 명령을 제공합니다. 또한 당신이 작가에게 이메일을 보내면 그는 당신이 무엇인가에 갇 히면 응답하고 기꺼이 도와 드리겠습니다.
이 지침은 @Luis가 답변 한 지침과 거의 유사합니다.