可参考Apache Hadoop设置单节点群集官方文档。
在这里不对jdk以及ssh的安装进行介绍
一、下载安装包
在apache Hadoop官网中下载自己想要下载的版本,我这里以2.7.6版本为例,来做一个介绍。
下载后使用xftp复制到Ubuntu服务器中,并进行解压。
格式:tar -zxvf 文件名.tar.gz
tar -zxvf hadoop-2.7.6.tar.gz
二、配置环境变量
使用 vim /etc/profile 命令进入profile文件中,点击 i 进行输入,在export中插入以下语句:
export HADOOP_HOME=/root/hadoop-2.7.6 (这里的路径应当输入你自己的hadoop安装目录)
export PATH=$PATH:$JAVA_HOME:$HADOOP_HOME/bin
完成后 点击Esc键,输入 :wq 保存退出
配置完成后,还需在命令行中输入以下代码使其配置生效
source /etc/profile
三、检验环境变量是否配置成功
运行hadoop命令,出现下图所示内容,即为配置成功
四、修改hadoop-env.sh文件
使用vi或者vim命令,对hadoop文件夹中etc/hadoop目录下hadoop-env.sh文件进行修改,将其中的JAVA_HOME改为jdk安装目录(可直接在/etc/profile中复制)。修改后如下图:
五、修改core-site.xml文件
使用vi或者vim命令,对hadoop文件夹中etc/hadoop目录下core-site.xml文件进行修改,该文件的详细配置解释可在官网中进行查看,此处只对部分配置进行修改。
io.seqfile.local.dir
解释:io.seqfile.local.dir 的值是${hadoop.tmp.dir}/io/local,用来指定序列文件在合并期间存储中间数据文件的本地目录。可能是不同设备上以逗号分隔的目录列表,以便传播磁盘i / o。不存在的目录将被忽略。
hadoop.tmp.dir
它的值为 /tmp/hadoop-${user.name}。也就是说,默认情况下,文件合并期间产生的中间数据文件存放在临时目录/tmp/hadoop下。大家都知道这是一个临时文件目录,当我们再次启动服务器的时候,该目录下的文件就会清空,所以,为了更久的保存数据,我们可以重新指定一个目录,用来存储这些数据文件。
我们在当前用户目录下创建tmp(mkdir tmp)目录,路径为/root/hadoop-2.7.6/tmp。
然后使用vi或vim命令进行修改,在<configuration>中添加如下配置:
(1)添加指定中间数据文件存放目录的配置。
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop-2.7.6/tmp</value>
</property>
(2)添加指定默认文件系统名称的配置。即,请求这个hdfs的URL地址。
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
修改保存退出后,使用cat命令查看该文件信息,如下图所示
六、修改hdfs-site.xml文件
这个配置文件中的 dfs.replication 配置项,是用来指定hdfs的副本数的,默认值为3。现在我们用的是伪分布式,没有那么多副本节点,所以我们将其改为1。
打开hdfs-site.xml文件,在<configuration></configuration>标签中添加如下代码:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
修改保存后,可使用cat命令进行查看。
8、设置ssh无密码登录。
现在当我们每次使用ssh localhost访问的时候,都需要输入密码。此时我们可以改成无密码登录。首先退出root用户,到普通用户。然后执行 ssh-keygen -t rsa(使用rsa加密,还有一种方式是dsa)命令生成密钥。执录行后会在用户登录目录下生成.ssh目和id_rsa、id_rsa.pub个文件。
将生成的公钥加入到许可文件中,即将公钥复制到 .ssh/authorized_keys中,这样登录就不需要密码了。执行命令 cp id_rsa.pub authorized_keys。
9、格式化文件系统。执行hadoop中bin目录下的hdfs namenode -format 指令即可。(因为已经设置了环境变量,可直接输入指令)
10、开启节点守护进程。执行hadoop 中sbin 目录下的start-dfs.sh 指令即可。
此时,可能会提示 rcmd: socket: Permission denied。可以在/etc/pdsh目录下新建 rcmd_default(touch rcmd_default)文件,然后用vi打开此文件,写入ssh,然后回车(注意:一定要回车另起一行,不然会报错)。然后在运行 sbin/start-dfs.sh 开启守护进程。
使用jps查看进程启动情况。
11、关闭防火墙。查看防火墙状态:sudo ufw status 关闭防火墙:sudo ufw disable 开启防火墙:sudo ufw enable sudo ufw default deny。
systemctl stop firewalled
systemctl disable firewalled
systemctl status firewalled
当前禁用不会立即改变防火墙的状态,需要重启才行,所以需要我们手动的关闭一次。
12、在浏览器中输入http://<hadoop服务器IP地址>:50070,如:http://118.31.72.205:50070/能看到启动进程页面,说明搭建成功。页面如下: