关于hadoop:Hadoop框架单服务下伪分布式集群搭建

10次阅读

共计 3846 个字符,预计需要花费 10 分钟才能阅读完成。

本文源码:GitHub·点这里 || GitEE·点这里

一、根底环境

1、环境版本

 环境:centos7
hadoop 版本:2.7.2
jdk 版本: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.8
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/hadoop2.7
export 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]# jps
2450 Jps
2276 NameNode
2379 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-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent

正文完
 0