本文源码:GitHub·点这里 || GitEE·点这里
一、根底环境
1、环境版本
环境:centos7hadoop版本:2.7.2jdk版本:1.8
2、Hadoop目录构造
- bin目录:寄存对Hadoop的HDFS,YARN服务进行操作的脚本
- etc目录:Hadoop的相干配置文件目录
- lib目录:寄存Hadoop的本地库,提供数据压缩解压缩能力
- sbin目录:寄存启动或进行Hadoop相干服务的脚本
- share目录:寄存Hadoop的依赖jar包、文档、和相干案例
3、配置加载
vim /etc/profile# 增加环境export JAVA_HOME=/opt/jdk1.8export PATH=$PATH:$JAVA_HOME/binexport HADOOP_HOME=/opt/hadoop2.7export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin# 退出刷新配置source /etc/profile
二、伪集群配置
以下配置文件所在门路:/opt/hadoop2.7/etc/hadoop,这里是Linux环境,脚本配置sh格局。
1、配置hadoop-env
root# vim hadoop-env.sh# 批改前export JAVA_HOME=# 批改后export JAVA_HOME=/opt/jdk1.8
2、配置core-site
文件构造概览
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration></configuration>
NameNode的地址
<property> <name>fs.defaultFS</name> <value>hdfs://127.0.0.1:9000</value></property>
数据寄存目录:Hadoop运行时产生文件的存储目录。
<property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop2.7/data/tmp</value></property>
3、配置hdfs-site
文件构造和上述一样,配置hdfs正本个数,这里伪环境,配置1个即可。
<property> <name>dfs.replication</name> <value>1</value></property>
4、配置yarn-env
export JAVA_HOME=/opt/jdk1.8
5、配置yarn-site
指定YARN的ResourceManager的地址
<property> <name>yarn.resourcemanager.hostname</name> <value>192.168.72.132</value></property>
指定map产生的两头后果传递给reduce采纳的机制是shuffle
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value></property>
6、配置mapred-env
export JAVA_HOME=/opt/jdk1.8
7、配置mapred-site
将mapred-site.xml.template重新命名为mapred-site.xml。
指定MapReduce程序资源调在度集群上运行。如果不指定为yarn,那么MapReduce程序就只会在本地运行而非在整个集群中运行。
<property> <name>mapreduce.framework.name</name> <value>yarn</value></property>
三、环境启动测试
1、测试文件系统
Hdfs相干
格式化NameNode
第一次启动时执行该操作。
[hadoop2.7]# bin/hdfs namenode -format
格式化NameNode,会产生新的clusterID,导致NameNode和DataNode的集群id不统一,集群找不到已往数据。所以,格局NameNode时,肯定要进行相干过程,删除data数据和log日志,而后再格式化NameNode。clusterID在如下目录中的VERSION文件里,可自行查看比照。
/opt/hadoop2.7/data/tmp/dfs/name/current/opt/hadoop2.7/data/tmp/dfs/data/current
启动NameNode
[hadoop2.7]# sbin/hadoop-daemon.sh start namenode
启动DataNode
[hadoop2.7]# sbin/hadoop-daemon.sh start datanode
jps查看状态
[root@localhost hadoop2.7]# jps2450 Jps2276 NameNode2379 DataNode
Web界面查看
须要Linux敞开防火墙和相干平安加强管制(这里很重要)。
IP地址:50070
Yarn相干
启动ResourceManager
[hadoop2.7]# sbin/yarn-daemon.sh start resourcemanager
启动NodeManager
[hadoop2.7]# sbin/yarn-daemon.sh start nodemanager
Web界面查看
IP地址:8088/cluster
MapReduce相干
文件操作测试
创立一个测试文件目录
[root@localhost inputfile]# pwd/opt/inputfile[root@localhost inputfile]# echo "hello word hadoop" > word.txt
HDFS文件系统上创立文件夹
[hadoop2.7] bin/hdfs dfs -mkdir -p /opt/upfile/input
上传文件
[hadoop2.7]# bin/hdfs dfs -put /opt/inputfile/word.txt /opt/upfile/input
查看文件
[hadoop2.7]# bin/hdfs dfs -ls /opt/upfile/input
2、Web端查看文件
执行文件剖析
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /opt/upfile/input /opt/upfile/output
查看剖析后果
bin/hdfs dfs -cat /opt/upfile/output/*
后果:每个单词各自呈现一次。
删除剖析后果
bin/hdfs dfs -rm -r /opt/upfile/output
四、历史服务器
MapReduce的JobHistoryServer,这是一个独立的服务,可通过 web UI 展现历史作业日志。
1、批改mapred-site
<!-- 服务器端地址 --><property><name>mapreduce.jobhistory.address</name><value>192.168.72.132:10020</value></property><!-- 服务器web端地址 --><property> <name>mapreduce.jobhistory.webapp.address</name> <value>192.168.72.132:19888</value></property>
2、启动服务
[hadoop2.7]# sbin/mr-jobhistory-daemon.sh start historyserver
3、Web端查看
IP地址:19888
4、配置日志的汇集
日志汇集概念:应用服务运行实现当前,将运行日志信息上传到HDFS零碎上。不便的查看到程序运行详情,不便开发调试。
开启日志汇集性能之后,须要重新启动NodeManager 、ResourceManager和HistoryManager。
敞开上述服务
[hadoop2.7]# sbin/yarn-daemon.sh stop resourcemanager[hadoop2.7]# sbin/yarn-daemon.sh stop nodemanager[hadoop2.7]# sbin/mr-jobhistory-daemon.sh stop historyserver
批改yarn-site
<!-- 日志汇集功开启 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 日志保留工夫7天 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property>
批改完之后再次启动上述服务器。再次执行文件剖析工作。
查看Web端
五、源代码地址
GitHub·地址https://github.com/cicadasmile/big-data-parentGitEE·地址https://gitee.com/cicadasmile/big-data-parent