Hadoop的安装(Linux需要有jdk环境,这里就不加啰嗦了)
1.下载Hadoop
官网下载地址:https://www.apache.org/dist/hadoop/common/
这里推荐使用的版本不用太高,本人使用的是2.7.6
用xftp复制到Linux中,然后通过tar -zxvf 文件名.tar.gz 解压。
2.配置环境变量
在/etc/profile文件中添加如下语句:
export HADOOP_HOME=hadoop的安装目录
export PATH=$PATH:$JAVA_HOME:$HADOOP_HOME/bin
配置完后,重启配置使其生效。source /etc/profile。
运行 hadoop输出一长串信息,说明hadoop环境变量配置成功。
3.修改hadoop的配置文件
1.修改hadoop中etc/hadoop目录下hadoop-env.sh文件 ,将其中的JAVA_HOME改为jdk安装目录,我们的jdk安装目录 为/home/cc/jdk1.8.0_151。修改后如下图所示:
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/local。我们再看看这里面引用的临时文件目录配置项 hadoop.tmp.dir,它的值为 /tmp/hadoop-${user.name}。也就是说,默认情况下,文件合并期间产生的中间数据文件存放在临时目录/tmp/hadoop下。大家都知道这是一个临时文件目录,当我们再次启动服务器的时候,该目录下的文件就会清空,所以,为了更久的保存数据,我们可以重新指定一个目录,用来存储这些数据文件。
我们在当前用户目录下创建tmp(mkdir tmp)目录,路径为/home/cc/tmp。打开core-site.xml文件,添加内容如下:
在<configuration>中添加如下配置
(1)添加指定中间数据文件存放目录的配置。
<property>
<name>hadoop.tmp.dir</name>
<value>/home/cc/tmp</value>
</property>
(2)添加指定默认文件系统名称的配置。即,请求这个hdfs的URL地址。
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
其中第一个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文件,在<configuration></configuration>标签中添加如下代码:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
修改完后,如下图所示:
4.设置ssh无密码登录
现在当我们每次使用ssh localhost访问的时候,都需要输入密码。此时我们可以改成无密码登录。首先退出root用户,到普通用户(使用root用户也可以)。然后执行 ssh-keygen 命令生成密钥。
输入了 ssh-keygen 后 ,一直按回车就好了(圈起来的地方)
这里只要出现上图的图案,则表示修改成功
修改成功后,输入密码的时候直接按回车键就OK了
执行后会在用户登录目录下生成.ssh目录,.shh里面会有id_rsa、id_rsa.pub个文件,如下图所示:
注意.ssh目录是隐藏的,使用ls -a命令可以看到。
将生成的公钥加入到许可文件中,即将公钥复制到 .ssh/authorized_keys中,这样登录就不需要密码了。执行命令 cp id_rsa.pub authorized_keys,完成后.ssh目录中的文件如下:
5.格式化系统文件
执行hadoop中bin目录下的hdfs namenode -format 指令即可。(这里注意一下,尤其是像我一样的新手,切换到普通用户后环境变量可能是没有生效的,因此不能直接使用hdfs命令,需要使用 source /etc/profile 命令使环境变量生效)
6.开启节点守护进程
执行hadoop 中sbin 目录下的start-dfs.sh 指令即可
使用jps查看进程启动情况,如下图所示(刚搭建完成的时候只有打勾的四个)
7.关闭防火墙(用我们老师的话来说,看防火墙的状态就可以知道这个人是不是搞编程的)
查看防火墙状态:sudo ufw status 关闭防火墙:sudo ufw disable 开启防火墙:sudo ufw enable sudo ufw default deny。
systemctl stop firewalled
systemctl disable firewalled
systemctl status firewalled
当前禁用不会立即改变防火墙的状态,需要重启才行,所以需要我们手动的关闭一次。
8.访问页面
在浏览器中输入http://<hadoop服务器IP地址>:50070,能看到启动进程页面,说明搭建成功。页面如下:
如果不知道ip地址的,在终端输入:ifconfig即可
这样就ok了~