cd $ HADOOP_HOME은 / etc / profile에 설정됩니다.
1. hadoop-env.sh
vim /usr/local/hadoop-2.8.4/etc/hadoop/hadoop-env.sh
26 export JAVA_HOME=/usr/local/jdk1.8.0_151
34 export HADOOP_CONF_DIR=/usr/local/hadoop-2.8.4/etc/hadoop/
source /usr/local/hadoop-2.8.4/etc/hadoop/hadoop-env.sh
2. 핵심 설정
vim /usr/local/hadoop-2.8.4/etc/hadoop/core-site.xml
<configuration>
<!--配置hdfs默认的命名-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://6059master:9000</value>
</property>
<!--配置操作hdfs缓冲区大小-->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!--配置临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp</value>
</property>
</configuration>
3. hdfs 설정 hdfs-site.xml
참고 : 호스트 도메인 이름을 자신의 도메인 이름으로 바꿉니다.
vim ./etc/hadoop/hdfs-site.xml
vim /usr/local/hadoop-2.8.4/etc/hadoop/hdfs-site.xml
<configuration>
<!--配置副本因子-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--配置块大小-->
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<!--配置元数据的存储位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoopdata/dfs/name</value>
</property>
<!--配置datanode数据存放位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopdata/dfs/data</value>
</property>
<!--配置dfs检测目录存放位置-->
<property>
<name>fs.checkpoint.dir</name>
<value>/home/hadoopdata/checkpoint/dfs/lglname</value>
</property>
<!--配置hdfs的namenode的web ui地址-->
<property>
<name>dfs.http.address</name>
<value>6059master:50070</value>
</property>
<!--配置dfs的SNN的web ui地址-->
<property>
<name>dfs.secondary.http.address</name>
<value>6059master:50090</value>
</property>
<!--是否开启web操作dfs-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!--是否启用hdfs的权限-->
<property>
<name>dfs.permissions</name>
<value>true</value>
</property>
</configuration>
4. mapreduce 설정 mapred-site.xml
cp /usr/local/hadoop-2.8.4/etc/hadoop/mapred-site.xml.template /usr/local/hadoop-2.8.4/etc/hadoop/mapred-site.xml
vim /usr/local/hadoop-2.8.4/etc/hadoop/mapred-site.xml
<configuration>
<!--指定mapreduce运行框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<!--历史服务的通信地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>6059master:10020</value>
</property>
<!--历史服务的web ui通信地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>6059master:19888</value>
</property>
</configuration>
5.yarn 설정 yarn-site.xml
vim /usr/local/hadoop-2.8.4/etc/hadoop/yarn-site.xml
<configuration>
<!--指定resourcemanager所在的主机名-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>6059master</value>
</property>
<!--指定mapreduce的shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定resourcemanager内部通信地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>6059master:8032</value>
</property>
<!--指定scheduler的内部通信地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>6059master:8030</value>
</property>
<!--指定rm的resource-tracker的内部通信地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>6059master:8031</value>
</property>
<!--指定rm的admin的内部通信地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>6059master:8033</value>
</property>
<!--指定rm的web ui地址-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>6059master:8088</value>
</property>
</configuration>
6. 노드 도메인 이름 구성
vim /usr/local/hadoop-2.8.4/etc/hadoop/slaves
6059master
6059slave01
6059slave02
7. 배포 작업 완료
vim /etc/hosts
192.168.56.20 6059master
192.168.56.21 6059slave01
192.168.56.22 6059slave02
두 슬레이브에서 Hadoop 디렉토리 삭제
6059slave01: rm -rf /usr/local/hadoop-2.8.4/
6059slave02: rm -rf /usr/local/hadoop-2.8.4/
배포 작업 완료 : 핑
master:
scp -r /usr/local/hadoop-2.8.4/ root@6059slave01:/usr/local/
scp -r /usr/local/hadoop-2.8.4/ root@6059slave02:/usr/local/
8. 시작
시작하기 전에 네임 노드 서버에서 포맷해야하며 한 번만 수행하면됩니다.
hadoop namenode –format
8.1 시작하는 세 가지 방법 :
8.1.1 방법 1 : 완전 시작 :
start-all.sh
방법 2 : 모드 시작 :
start-dfs.sh
start-yarn.sh
방법 3 : 단일 프로세스 시작 :
hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
yarn-daemon.sh start namenode
yarn-daemons.sh start datanode
mr-jobhistory-daemon.sh start historyserver
9. 테스트
9.1 프로세스가 시작되었는지 확인하십시오.
jps
9.2 해당 모듈의 웹보기
http://192.168.56.20:50070
http://192.168.56.20:8088
9.3 파일 작업
문서 목록
# hdfs dfs -ls /
xx 파일 생성
# hdfs dfs -mkdir xx
파일 업로드하다
# hdfs dfs –put ./*** /
폴더 삭제
파일 삭제, -rm -R 반복적으로 디렉토리 및 파일 삭제
hadoop fs -rm 删除文件,-rm -R 递归删除目录和文件
10. 프로그램 실행
yarn jar /usr/local/hadoop-2.8.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /input/word.txt /output/01
hdfs dfs –ls /output/01
hdfs dfs –cat /output/01/part-r-00000
11. 일반적인 오류 처리
WARN ipc.Client
오류:
WARN ipc.Client: Failed to connect to server: 6059master/192.168.56.20:9000: try once and fail.
50070 포트 프로세스 및 9000 포트 프로세스가 시작되지 않았습니다.
11.1 hdfs-site.xml보기
<!--配置hdfs的namenode的web ui地址-->
<property>
<name>dfs.http.address</name>
<value>6059master:50070</value>
</property>
11.2 방화벽 끄기
# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld.service
# 禁用防火墙
systemctl disable firewalld.service
또 다른 방화벽은 selinux입니다. vim / etc / selinux / config로 설정됩니다.
SELINUX=disabled
3. 네임 노드 노드가 시작되지 않았습니다.
# cd /usr/local/hadoop-2.8.4/bin/
# hdfs namenode -format