一、准备三台虚拟机
hadoop 192.168.131.128
localhost131 192.168.131.131
localhost134 192.168.131.134
(以上是我的三台虚拟机的hostname 和 ip)
hadoop 是 master 的 hostname
剩下的两个是 slave 的 hostname
linux 的 hostname 需要自己手动修改 不然会是 localhost.localdomain
修改 hostname 的命令是:
hostnamectl set-hostname hadoop
修改 hosts 文件,(三台虚拟机都要添加)添加:
192.168.131.131 localhost131
192.168.131.134 localhost134
192.168.131.128 hadoop
二、然后在 master 机器上配置通过 SSH 远程复制过去就行了,接下来几乎都是在 master 机器上操作
1->安装 jdk
在官网上下载 jdk 是 linux 版本的 (我是在 wins 上下载好之后通过 FTP 上传的 Centos 上的)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
注意记得查看 Centos 是 64 位的还是 32 位的
查看的命令:
uname -r
后缀是 X86_64 是 64 位的,否则是 32 位的
解压 jdk,将 jdk 添加 PATH 中:
vim /etc/profile
#添加内容:
export JAVA_HOME=/home/jdkHome #jdk压缩包解压位置
export PATH=$PATH:$JAVA_HOME/bin
!!!!!退出vim后,别忘了重启文件!!!!
source /etc/profile
2->安装 Hadoop-2.9.1
http://archive.apache.org/dist/hadoop/core/stable/
这是 hadoop 目前比较稳定的版本
将文件通过 FTP 上传的 Centos 上 /home/hadoopCluster 并解压
3->配置 Hadoop-2.9.1
进入到 Hadoop 目录下的 etc/hadoop 的目录下(修改 6 个文件)
① 修改文件 hadoop-env.sh
找到 export JAVA_HOME=$JAVA_HOME 修改为 jdk 所在的路径
②修改文件 core-site.xml
fs.defaultFS
hdfs://hadoop:8020
hadoop.tmp.dir
/home/hadoopCluster/hadoop-2.9.1/tmp
③修改文件 hdfs-site.xml
dfs.namenode.http-address
hadoop:50070
dfs.namenode.secondary.http-address
localhost131:50090
dfs.replication
2
该配置文件中我之前配置 namenode 和 datanode 的路径,到最后格式化 namenode 的时候,namenode 没有启动,查看 logs 目录下的启动日志时发现,format 的时候,会报找不到 namenode 的错误,jps 查看 java 进程的时候或发现 namenode 没有启动,所以就将 namenode 和 datanode 的路径设置为默认。
④修改文件 mapred-site.xml
mapred-site.xml 文件当你修改时会发现没有这个文件,将 mapred-site.xml.template 文件重命名为 mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
修改为:
mapreduce.framework.name
yarn
⑤修改文件 yarn-site.xml
mapreduce.framework.name
yarn
⑥修改文件 slaves
localhost131
localhost134
4->修改完成了接下是配置 SSH 免密登录
在这里我使用 root 超级管理员登陆的,所以进入 /root 目录下
执行命令 ls
进入目录 .ssh --> cd .ssh
ssh-keygen -t rsa
mv id_rsa_pub authorized_keys
ssh-copy-id root@localhost131
ssh-copy-id root@localhost134
配置完以上操作之后测试 SSH
ssh localhost131 !!退出 SSH 命令是 exit
ssh localhost134
不需要输入密码证明 SSH 配置成功,接下来就是远程复制文件,将 jdk 还有 hadoop 复制到另外两台机器上
注意:以上操作都是在一台机器上完成的 master (hadoop : 192.168.131.128)
5->将 Hadoop 添加到 PATH 中去
vim /etc/profile
export JAVA_HOME=/home/jdkHome/jdk1.8.0_171
export HADOOP_HOME=/home/hadoopCluster/hadoop-2.9.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
6->远程复制文件
进入目录 /home 文件夹下(因为 jdk 和 hadoop 文件都在这个文件夹下)
scp -r jdkHome root@localhost131
scp -r hadoopCluster root@localhost131
scp -r jdkHome root@localhost134
scp -r hadoopCluster root@localhost134
7->将另外两台机器也配置 jdk 全局环境
ssh 复制过去的是以文件的形式传输的,所以不用解压,直接修改 profile 文件就行了,修改完之后,hadoop 不用再修改了,s三台机器 hadoop 配置都是一样的 , 注意:如果 jdk 的路径有不同,则需要修改 hadoop 配置文件 hadoop-env.sh 文件,将里面的 JAVA_HOME 配置成该机器的路径
8->格式化 master (hadoop:192.168.131.128) 的 namenode
hdfs namenode -format
9->启动 Hadoop (master)
进去 sbin 目录下 : ./start-all.sh
另外两台机器:jps
测试:192.168.131.128:50070 进入 namenode 的管理界面
192.168.131.128:8088 进入resourceManager的管理界面
启动完成