初体验Hadoop-伪分布环境的搭建

Posted 敏叔的技术札记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初体验Hadoop-伪分布环境的搭建相关的知识,希望对你有一定的参考价值。

上文说到过一台机器下hadoop的样子,这次我们一起来体会一下~~

一般刚刚接触hadoop或者需要用于做开发的时候,伪分布集群显得很重要;伪分布环境是在一台节点上启动了Hadoop基本功能节点,所以这种环境可以用于运行例如Hive、MR、Spark程序等,更重要的一点,初期的资源比较有限,伪分布环境可以在简单几步动作之后安装完成,可以给人很强大的自信。

嗯,下面准备带大家入坑。。


一、初期的配置准备 

首先是软件准备:

图一:软件准备情况

创建目录,解压:

初体验Hadoop-伪分布环境的搭建

图二:压缩包解压

为hadoop目录创建软链接:

初体验Hadoop-伪分布环境的搭建

图三:软连接

同样,对jdk压缩包做同样的工作:

初体验Hadoop-伪分布环境的搭建

图四:jdk解压缩

到了这里,软件包准备完成了,我们切换到hadoop的文件目录去看一下,根据linux目录规范,我们很自然了解到bin下面一般是基本命令,sbin下面会放一些管理脚本:

初体验Hadoop-伪分布环境的搭建

图五:hadoop的命令结构

我们试着启动一下,看下情况:

初体验Hadoop-伪分布环境的搭建

图六:错误的提示

很棒,我们第一次收到了来自hadoop命令行中的提示,从提示我们可以读到很多信息:

  1. JAVA_HOME没有设置

由此,我们需要对hadoop多一点点认识: 

hadoop是java语言开发的,运行需要java环境,需要配置jdk

默认不做配置的时候,hadoop会使用默认的配置,需要我们针对进行修改,具体配置可以查看core-default.xml、hdfs-default.xml、mapred-default.xml、yarn-default.xml

hadoop是分布式程序,启动脚本运行方式是通过ssh方式去进行远程控制节点,为了不每次输入密码,我们会设置节点之间免密码登录模式

当然,单机的情况也是走的网络,所以在单机上需要进行这些配置。我把主机名修改为gz-bigdata-lw-01.com,然后配置域名解析:

初体验Hadoop-伪分布环境的搭建

图七:域名解析

配置hadoop所需的jdk,hadoop的环境变量位于etc/hadoop-env.sh

初体验Hadoop-伪分布环境的搭建

图八:配置文件所在的目录

初体验Hadoop-伪分布环境的搭建

图九:hadoop中jdk的配置

修改配置文件 core-site.xml (vim /usr/local/hadoop/etc/hadoop/core-site.xml),在configuration节点中添加子节点,配置完成之后如下:

初体验Hadoop-伪分布环境的搭建

图十:core-site.xml的配置

同样配置hdfs-site.xml:

初体验Hadoop-伪分布环境的搭建

图十一:hdfs-site.xml的配置

还没完,还有设置本机免密码登录:

初体验Hadoop-伪分布环境的搭建

图十二:公钥生成

初体验Hadoop-伪分布环境的搭建

图十三,发送秘钥到远程

测试生成情况,ok

初体验Hadoop-伪分布环境的搭建

图十四,测试ssh的连接


二、服务的启动和运行

似乎终于到了启动阶段了,当然一般情况写文章或者其他做一些资料的时候,不会体现其中的过程,实际上要启动部署完成一个服务,很容易有错误的情况,这种情况通过不断的修正之后得到解决,这个过程中呢,重要一点,就是要知道怎么查看日志,hadoop的日志默认路径是在hadoop安装目录下面的logs文件夹,这个文件要经常查看,才能了解服务运行的情况。

初体验Hadoop-伪分布环境的搭建

图十五:日志查看

下面进行服务的启动,这些服务不一定一次可以成功,需要不断查看日志进行跟踪问题。 

NameNode格式化:

初体验Hadoop-伪分布环境的搭建

图十六:日志查看

看到 has been successfully formatted.字样,才是格式化成功

启动NameNode: 

初体验Hadoop-伪分布环境的搭建

图十七:日志查看

访问验证:http://10.199.201.189:50070/

初体验Hadoop-伪分布环境的搭建

图十八:UI页面


至少我第一次见到这个页面的时候是比较开心的,事情还没完,趁着这股劲,我们把DataNode也启动起来:

初体验Hadoop-伪分布环境的搭建

图十:JPS进程

可以在页面中找到

初体验Hadoop-伪分布环境的搭建

已经有一个数据节点了,到这里,最简单的伪分布就算启动完成了。


三、hdfs的初体验

       hadoop启动完成,肯定都是希望试一试这个新鲜玩意,hdfs这部分呢,全称叫做分布式文件系统,归根到底,其实就是用来存储的,既然是存储的自然我们想到我们磁盘文件怎么玩的,目录,文件,由此把对文件的操作迁移过来,很容易就可以用起我们的hdfs。

首先hadoop上面的命令都是bin/hdfs操作的,一般是bin/hadoop fs 打头来着,后面接的命令是我们很熟悉的linux命令,比如:文件列表 hadoop fs -ls /、建立目录:hadoop fs -mkdir -p /dat之类的,fs是就是文件系统的意思。下面体验几把,依次完成以下动作,创建目录,上传文件,查看文件内容,查看文件列表 :

初体验Hadoop-伪分布环境的搭建

图二十:hdfs操作

我们从浏览器中也可以更直观看到

初体验Hadoop-伪分布环境的搭建

图二十一:ui中直观看到目录结构

其实就是一个磁盘。。。其他命令查看hadoop官网文档,有专门的命令解释

初体验Hadoop-伪分布环境的搭建

图二十二:官网中的命令


四:配置完善总结篇 

 1.一键启动的实现

hadoop的各个节点,从根本上来说就是用java命令调用了main函数进行启动,所以实际的命令其实单独启动namenode和datanode就可以了,但是单独启动效率过低,当想一次性进行启动的时候,需要配置etc/slaves文件,这里是表示从节点的配置,单机下面配置本机(gz-bigdata-lw-01.com),然后我们可以使用start-dfs.sh的命令一键进行启动。

 

初体验Hadoop-伪分布环境的搭建

图二十三:初尝一键启动


同时我们还看到了secondarynamenode在0.0.0.0上面启动,这也是默认配置导致的,secondarynamenode是早期的备份nn数据的一种机制,后续由ha进行代替,我们在配置项中加入针对secondarynamenode的配置端口就行,在hdfs-site.xml中配置以下数据:

初体验Hadoop-伪分布环境的搭建

图二十四:secondarynamenode配置


参考的配置是hdfs-default.xml

然后再执行sbin/start-dfs.sh,我们就可以一键进行启动了,酷酷的

初体验Hadoop-伪分布环境的搭建

图二十五:一键启动



2. 完善命令环境

在前文没有提到jps命令,java程序除了配置在hadoop-env.sh中,还要配置在linux环境变量中才可以使用jps;另外,我们操作hadoop的时候不想每次都去hadoop目录项目去执行命令,这种时候需要把hadoop的命令配置在环境变量中,所以最终我这边的环境变量变成如下:

图二十六:环境变量



然后对应的操作也简化了很多:

图二十七:秀一下

未完待续~

以上是关于初体验Hadoop-伪分布环境的搭建的主要内容,如果未能解决你的问题,请参考以下文章

如何使用云容器搭建基于CentOS7的Hadoop2.x伪分布式环境(CSDN开发者云平台使用初体验)

如何使用云容器搭建基于CentOS7的Hadoop2.x伪分布式环境(CSDN开发者云平台使用初体验)

如何使用云容器搭建基于CentOS7的Hadoop2.x伪分布式环境(CSDN开发者云平台使用初体验)

Hadoop环境搭建

hadoop2.7.3伪分布式环境搭建详细安装过程

云计算平台Hadoop伪分布式模式环境搭建