1、环境
操作系统:ubuntu16
jdk:1.8
hadoop:2.9.1
机器:3台,master:192.168.199.88,node1:192.168.199.89,node2:192.168.199.90
2、搭建步骤
2.1 修改主机名hostname,三台机器分别执行如下命令,依次填入master,node1,node2
sudo vim /etc/hostname
2.2 修改hosts文件,三台机器依次执行
sudo vim /etc/hosts
2.3 修改环境变量,三台依次执行
vim /etc/profile,然后source /etc/profile使之生效
JAVA_HOME是java的安装路径,如果不知道自己的java安装路径,请参考如下操作:
which java定位到的是java程序的执行路径,而不是安装路径,经过两次-lrt最后的输出才是安装路径
2.3 配置master对node1和node2的免密登陆
效果就是在master上输入ssh node1即可登陆node1,否则开启集群服务时,master与node无法连接,会报出connection refused
2.3.1 配置前,先确保安装了openssh-server,默认是不安装的
输入dpkg --list | grep ssh,如果没有openssh-server,执行以下命令安装:
sudo apt-get install openssh-server
2.3.2 每台机器执行ssh-keygen -t rsa,然后回车
生成的公钥私钥都保存在~/.ssh下
2.3.3、在master上将公钥放入authorized_keys,命令如下:
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
2.3.4、将master上的authorized_keys放到其它机器上
scp ~/.ssh/authorized_keys root@node1:~/.ssh/
scp ~/.ssh/authorized_keys root@node2:~/.ssh
2.3.5、测试是否成功
2.4 下载hadoop及修改配置文件在master上执行即可,修改完再复制到其他机器上
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-2.9.1.tar.gz (我下载时这里的稳定版是2.9.1,如果更新了,下载相应的tar.gz包即可)
解压:tar zxf hadoop-2.9.1.tar.gz
2.5 创建HDFS存储目录
进入解压后的文件夹: cd hadoop2.9.1
mkdir hdfs
cd hdfs
mkdir name data tmp
./hdfs/name --存储namenode文件
./hdfs/data --存储数据
./hdfs/tmp --存储临时文件
2.6 修改xml配置文件
需要修改的xml文件在hadoop2.9.1/etc/hadoop/下
主要有5个文件要修改:
hadoop-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
2.6.1、vim hadoop-env.sh,填写的是java的安装路径
2.6.2、vim core-site.xml,configuration标签中插入如下内容
2.6.3、vim hdfs-site.xml
2.6.4、vim mapred-site.xml
2.6.5、vim yarn-site.xml
2.6.6、vim slaves,将里面的localhost删掉,写入从节点主机名
2.7 将hadoop文件夹远程拷贝到node节点上
scp -r hadoop-2.9.1 wang@node1:/home/wang/
scp -r hadoop-2.9.1 wang@node2:/home/wang/
2.8 启动hadoop
2.8.1 启动之前要先格式化,格式化命令:hadoop namenode -format
因为master是namenode,node1和node2都是datanode,所以只在master上执行
如果出现successfully formatted,即表示格式化成功,会看到name下多出current文件夹
2.8.2 格式化成功后,在master上执行命令:start-all.sh,启动后可用jps命令查看开启的进程,master上有四个进程,node上是三个
如果不是,请从头到尾再检查一下配置文件,看是否有拼错的地方
另外还可以在浏览器查看:192.168.199.88:50070
(masterIP,50070固定端口)