hadoop伪分布式搭建

本篇博客记录了在ubuntu18.04版本下hadoop伪分布式的搭建。
linux需要有jdk环境,如何安装jdk,这里不多加赘述啦。

一、hadoop下载

官网下载地址:https://www.apache.org/dist/hadoop/common/
hadoop伪分布式搭建
推荐下载2.7.6版本,不需要太高的版本。

二、配置hadoop环境

1、把下载好的hadoop压缩包通过xftp上传到linux,然后执行 tar -zxvf hadoop-2.7.6.tar.gz 命令解压,完成后如下图:
hadoop伪分布式搭建
2、配置hadoop的环境变量
执行命令 vim /etc/profile,把hadoop的路径加入到环境变量中,如下图:
hadoop伪分布式搭建
变量HADOOP_HOME的值为上面解压后hadoop的路径,同时在变量PATH后面需要把hadoop下的bin目录以及hadoop下的sbin目录加进去。
完成后保存,执行 source /etc/profile 命令,使环境变量立即生效。
执行 hadoop 命令,若出现一长串信息,则环境变量配置成功了。

三、修改hadoop配置文件

1、修改hadoop目录下的etc/hadoop/hadoop-env.sh文件 ,将其中的JAVA_HOME改为jdk安装目录,我们的jdk安装目录为/usr/jdk1.8.0_191。修改后如下图所示:
hadoop伪分布式搭建
2、修改hadoop目录下的etc/hadoop/core-site.xml文件。这个文件的详解可以查看官网http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml 上的说明。我们先看看io.seqfile.local.dir配置项,这个是用来指定序列文件在合并期间存储中间数据文件的本地目录,而它的值是 hadoop.tmp.dir/io/localhadoop.tmp.dir/tmp/hadoop{hadoop.tmp.dir}/io/local。我们再看看这里面引用的临时文件目录配置项 hadoop.tmp.dir,它的值为 /tmp/hadoop-{user.name}。也就是说,默认情况下,文件合并期间产生的中间数据文件存放在临时目录/tmp/hadoop下。大家都知道这是一个临时文件目录,当我们再次启动服务器的时候,该目录下的文件就会清空,所以,为了更久的保存数据,我们可以重新指定一个目录,用来存储这些数据文件。
打开core-site.xml文件,添加如下配置:
hadoop伪分布式搭建
其中第一个property标签为添加指定中间数据文件存放目录的配置,我这里填写的目录为hadoop的同级目录下,在之后格式化文件系统的时候会生成这个路径;
第二个property标签为添加指定默认文件系统名称的配置,即,请求这个hdfs的URL地址,ip为linux的内网ip。
3、修改hadoop目录下的etc/hadoop/hdfs-site.xml文件。这个文件的详解可以查看官网 http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml 上的说明。我们先看这个配置文件中的 dfs.replication 配置项,这个是用来指定hdfs的副本数的,默认值为3。现在我们用的是伪分布式,没有那么多副本节点,所以我们将其改为1。打开hdfs-site.xml文件,添加如下配置:
hadoop伪分布式搭建

四、设置ssh无密码登录

现在当我们每次使用ssh localhost访问的时候,都需要输入密码。此时我们可以改成无密码登录。首先退出root用户,到普通用户(使用root用户也可以)。然后执行 ssh-****** -t rsa(使用rsa加密,还有一种方式是dsa)命令生成**。如下图:
hadoop伪分布式搭建
输入密码的部分直接回车。
执行后会在用户登录目录下生成.ssh目录,.ssh目录下有id_rsa、id_rsa.pub两个文件,如下图所示:
hadoop伪分布式搭建
hadoop伪分布式搭建
注意.ssh目录是隐藏的,使用ls -a命令可以看到。

将生成的公钥加入到许可文件中,即将公钥复制到 .ssh/authorized_keys中,这样登录就不需要密码了。执行命令 cp id_rsa.pub authorized_keys,完成后.ssh目录中的文件如下:
hadoop伪分布式搭建

五、格式化文件系统

执行hadoop中bin目录下的hdfs namenode -format 指令即可。

六、开启节点守护进程

执行hadoop 中sbin 目录下的 start-dfs.sh 指令即可。
如果出现如下图所示的错误:
hadoop伪分布式搭建
则是因为普通用户对hadoop-2.7.6这个文件夹没有写入权限,我们使用root用户执行 chmod 777 hadoop-2.7.6 命令授予文件夹权限,再返回普通用户重新执行 start-dfs.sh 指令即可。

使用jps命令查看进程启动情况,如下图所示:
hadoop伪分布式搭建

七、访问页面

(在此之前,记得关闭防火墙)
在浏览器中输入http://<hadoop服务器IP地址>:50070,能看到启动进程页面,说明搭建成功。页面如下:
hadoop伪分布式搭建
到这里就结束啦。