大数据Hadoop集群环境搭建(六)

Hadoop伪分布式模式安装

防止环境装错所以先进行环境备份(centeros 装了jdk 和hadoop)
1.问题:
克隆出没有IP问题
解决:
用开网脚本:
在克隆新机执行脚本获取IP
脚本放在被克隆的主机上

在已经有的虚拟机上新建脚本文件(在root目录下)

[root@hadoop ~]# vi reset_ip.sh

脚本

#!/bin/bash
name=$(cat /etc/udev/rules.d/70-persistent-net.rules |grep -oP '(?<=NAME=").*(?=")'|tail -1)
mac=$(cat /etc/udev/rules.d/70-persistent-net.rules |grep -oP '(?<=ATTR{address}==").*?(?=",)'|tail -1)
sed -i s/DEVICE.*/DEVICE=${name}/ /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i s/HWADDR=.*/HWADDR=${mac}/ /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart

一、克隆

---   关机命令 shutdown -h now

1.在VMware克隆—右键已有虚拟机—点击管理—点击克隆----下一步—选择虚拟机当前状态—克隆方法(选择创建完整克隆)----下一步----选择名字,选择地址—完成

2.获取IP

给脚本执行权限并执行

[root@hadoop ~]# chmod u+x reset_ip.sh

执行

[root@hadoop ~]#  ./reset_ip.sh

在这里插入图片描述

修改主机名

[root@hadoop ~]#  vi /etc/sysconfig/network

一、伪分布式Hadoop部署过程

1.找到hadoop(/opt/modules/hadoopstandalone)—复制到modules目录下

[root@hadoop hadoopstandalone]# cp hadoop-2.8.3 .tar.gz ../  

当前文件解压

[root@hadoop modules]# tar -zvxf  hadoop-2.8.3.tar.gz

改文件名

[root@hadoop modules]# mv hadoop-2.8.3.tar.gz hadoop

2.配置Hadoop环境变量

[root@hadoop modules]# vi /etc/profile

追加配置

export HADOOP_HOME="/opt/modules/hadoop"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

*注意修改完一定要执行:source /etc/profile 使得配置生效

验证HADOOP_HOME参数:

[root@hadoop /]# echo $HAOOP_HOME
/opt/modules/hadoop

3. 配置 hadoop-env.shmapred-env.sh、yarn-env.sh文件的JAVA_HOME参数

[root@hadoop modules]# cd /hadoop/etc/hadoop
[root@hadoop modules]# pwd
/opt/modules/hadoop/etc/hadoop
修改JAVA_HOME参数为:export JAVA_HOME="/opt/modules/jdk1.8"
[root@hadoop hadoop]# vi hadoop-env.sh

在这里插入图片描述

扫描二维码关注公众号,回复: 4839561 查看本文章
[root@hadoop hadoop]# vi mapred-env.sh

在这里插入图片描述

[root@hadoop hadoop]# vi yarn-env.sh

在这里插入图片描述

4.配置core-site.xml

[root@hadoop hadoop]# vi core-site.xml

(1) fs.defaultFS参数配置的是HDFS的地址。

<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>   //hadoop01--->主机名
</property>

hadoop.tmp.dir配置的是Hadoop临时目录,比如HDFS的NameNode数据默认都存放这个目录下,查看*-default.xml等默认配置文件,就可以看到很多依赖 h a d o o p . t m p . d i r h a d o o p . t m p . d i r / t m p / h a d o o p {hadoop.tmp.dir}的配置。 默认的hadoop.tmp.dir是/tmp/hadoop- {user.name},此时有个问题就是NameNode会将HDFS的元数据存储在这个/tmp目录下,如果操作系统重启了,系统会清空/tmp目录下的东西,导致NameNode元数据丢失,是个非常严重的问题,所有我们应该修改这个路径。

修改hadoop.tmp.dir

 <property>
   <name>hadoop.tmp.dir</name>
    <value>/opt/data/tmp</value>
  </property>

在这里插入图片描述

提示:exc —》:wq保存
在配置完以上部分需要在data目录下创建tmp目录; tmp:NameNode,DataNode都会将数据存放到tmp目录中
[root@hadoop hadoop]# cd /opt/data
[root@hadoop data]# mkdir tmp
回到开始目录

[root@hadoop data]# cd /opt/modules/hadoop/etc/hadoop/ 

5.配置、格式化、启动HDFS

1、 配置hdfs-site.xml
在这里插入图片描述
[root@hadoop hadoop]# vi hdfs-site.xml

    <property>
       <name>dfs.replication</name>  //副本个数  保存的文件备份是几份
       <value>1</value>
    </property>

在这里插入图片描述
2、 格式化HDFS

[hadoop@hadoop ~]$ hdfs namenode -format

格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据的存储在NameNode中。
格式化后,查看core-site.xml里hadoop.tmp.dir(本例是/opt/data/tmp目录)指定的目录下是否有了dfs目录,如果有,说明格式化成功。
注意:

 [hadoop@hadoop ~]$ ll /opt/data/tmp/dfs/name/current

*注意:格式化只能格式化一次不能在进行格式化

3、 启动NameNode(最重要的节点,管理DataNode)

[hadoop@hadoop ~]$ cd /opt/modules/hadoop/sbin/
[hadoop@hadoop sbin]#   ./hadoop-daemon.sh start namenode 
//执行命令的时候用 ./ 

查看是否成功

[hadoop@hadoop03 sbin]# jps

在这里插入图片描述
4、 启动DataNode

 [hadoop@hadoop sbin]#   ./hadoop-daemon.sh start namenode 

5、 启动SecondaryNameNode

[hadoop@hadoop sbin]#   ./hadoop-daemon.sh start SecondaryNameNode

6、 JPS命令查看是否已经启动成功,有结果就是启动成功了。

[hadoop@hadoop  sbin]# jps
3034 NameNode
3233 Jps
3193 SecondaryNameNode
3110 DataNode

7、 HDFS上测试创建目录、上传、下载文件
HDFS上创建目录

[hadoop@hadoop  sbin]# hdfs dfs -mkdir /demo1

上传本地文件到HDFS上

[hadoop@hadoop  sbin]# hdfs dfs -put 
${HADOOP_HOME}/etc/hadoop/core-site.xml /demo1

注意:在HDFS上传文件下载不下来的问题解决:

本地计算机---》C:/Windows/System32/drivers/etc/hosts
添加IP映射
在最后添加  IP地址 + 主机名
例如
192.168.253.128 hadoop01

集群中有几台就添加几台IP映射

上传文件保存在虚拟机位置

/opt/data/tmp/dfs/data/current/BP-100305941-192.168.253.128/current/finalized/subdir0/subdir0

6.配置、启动YARN

1、 配置mapred-site.xml
默认没有mapred-site.xml文件,但是有个mapred-site.xml.template配置模板文件。复制模板生成mapred-site.xml。

[hadoop@hadoop hadoop]# cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
添加配置如下:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

指定mapreduce运行在yarn框架上。

2、 配置yarn-site.xml
添加配置如下:

<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop01</value>
 </property>

yarn.nodemanager.aux-services配置了yarn的默认混洗方式,选择为mapreduce的默认混洗算法。

yarn.resourcemanager.hostname指定了Resourcemanager运行在哪个节点上。

3、 启动Resourcemanager

[hadoop@hadoop hadoop]# yarn-daemon.sh start resourcemanager

4、 启动nodemanager

 [hadoop@hadoop hadoop]# yarn-daemon.sh start nodemanager

5、 查看是否启动成功

[hadoop@hadoop hadoop]# jps
3034 NameNode
4439 NodeManager
4197 ResourceManager
4543 Jps
3193 SecondaryNameNode
3110 DataNode

可以看到ResourceManager、NodeManager已经启动成功了。

6、 YARN的Web页面

YARN的Web客户端端口号是8088,通过http://192.168.100.10:8088/可以查看。//自己的IP在这里插入图片描述
7、运行MapReduce Job
在Hadoop的share目录里,自带了一些jar包,里面带有一些mapreduce实例小例子,位置在share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar,可以运行这些例子体验刚搭建好的Hadoop平台,我们这里来运行最经典的WordCount实例。
1、 创建测试用的Input文件

创建输入目录:

 [hadoop@hadoop hadoop]# cd /opt/data
 [hadoop@hadoop data]# hdfs dfs -mkdir /input
 [hadoop@hadoop data]# hdfs dfs -put  wc.input /input

2、 运行WordCount MapReduce Job

/opt/modules/hadoop/
[hadoop@hadoop hadoop]# yarn  jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar wordcount /input/wc.input /output  

output目录中有两个文件,_SUCCESS文件是空文件,有这个文件说明Job执行成功。
part-r-00000文件是结果文件,其中-r-说明这个文件是Reduce阶段产生的结果,mapreduce程序执行时,可以没有reduce阶段,但是肯定会有map阶段,如果没有reduce阶段这个地方有是-m-。
一个reduce会产生一个part-r-开头的文件。
查看输出文件内容。

8.开启历史服务

1.历史服务介绍
Hadoop开启历史服务可以在web页面上查看Yarn上执行job情况的详细信息。可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。
2.开启历史服务

[hadoop@hadoop hadoop]# sbin/mr-jobhistory-daemon.sh start historyserver

开启后,可以通过Web页面查看历史服务器:
http://192.168.253.128:19888/
3.Web查看job执行历史
1、 运行一个mapreduce任务
[hadoop@hadoop hadoop]# bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-
2.5.0.jar wordcount /wordcountdemo/input /wordcountdemo/output1
2、 job执行中
在这里插入图片描述
3、 查看job历史
在这里插入图片描述
在这里插入图片描述
历史服务器的Web端口默认是19888,可以查看Web界面。

但是在上面所显示的某一个Job任务页面的最下面,Map和Reduce个数的链接上,点击进入Map的详细信息页面,再查看某一个Map或者Reduce的详细日志是看不到的,是因为没有开启日志聚集服务。

猜你喜欢

转载自blog.csdn.net/wth_97/article/details/85267526