1、到hadoop官网下载hadoop3.0,解压后用xftp复制到ubuntu中
2、配置hadoop的环境变量
在/etc/profile文件中添加如下语句:
exportHADOOP_HOME=/home/navy/hadoop
exportPATH=$PATH:$JAVA_HOME:$HADOOP_HOME/bin
3、配置完后,重启配置使其生效。source /etc/profile
4、运行 hadoop输出一长串信息,说明hadoop环境变量配置成功
5、修改hadoop中etc/hadoop目录下hadoop-env.sh文件 ,将其中的JAVA_HOME改为jdk安装目录,我们的jdk安装目录为/home/navy/jdk1.8.0_162。修改后如下图所示:
6、修改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/navy/tmp。打开core-site.xml文件,如下:
在<configuration>中添加如下配置
(1)添加指定中间数据文件存放目录的配置。
<property>
<name>hadoop.tmp.dir</name>
<value>/home/navy/tmp</value>
</property>
(2)添加指定默认文件系统名称的配置。即,请求这个hdfs的URL地址。
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
添加完后,使用cat命令查看该文件信息,如下图所示:
7、修改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>
修改完后,如下图所示:
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,完成后.ssh目录中的文件如下:
9、格式化文件系统。执行hadoop中bin目录下的hdfs namenode -format 指令即可。
10、开启节点守护进程。执行hadoop 中sbin 目录下的tart-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
12、在浏览器中输入http://<hadoop服务器IP地址>:98710,如:http://192.168.30.130:9870能看到启动进程页面,说明搭建成功。页面如下: