1、准备工作
(1)准备linux环境:(具体请参考我的linux相关博客,都有介绍,这里就不一一讲解)
- 将虚拟机的网络模式选为NAT
- 修改主机名
- 修改IP
- 修改主机名和IP的映射关系
- 关闭防火墙
- 修改sudo
- 配置ssh免登陆
(3)下载Hadoop安装包(这里版本为2.6.4)
下载地址:http://hadoop.apache.org/releases.html
(4)安装jdk(jdk-7u_65-i585)
安装jdk请参考我的另一篇博客https://blog.csdn.net/shaonianbz/article/details/79878925
2、Hadoop安装
(1)上传Hadoop安装包,并创建apps文件夹,用来存放Hadoop
[hadoop@mini01 ~]$ ll
total 176580
drwxrwxr-x. 2 hadoop hadoop 4096 Apr 23 11:54 apps
-rw-r--r--. 1 hadoop hadoop 180813065 Feb 26 19:41 cenos-6.5-hadoop-2.6.4.tar.gz
(2)将Hadoop解压到apps下
tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C apps/
#解压后的Hadoop目录
[hadoop@mini01 hadoop-2.6.4]$ ll
total 52
drwxrwxr-x. 2 hadoop hadoop 4096 Mar 7 2016 bin
drwxrwxr-x. 3 hadoop hadoop 4096 Mar 7 2016 etc
drwxrwxr-x. 2 hadoop hadoop 4096 Mar 7 2016 include
drwxrwxr-x. 3 hadoop hadoop 4096 Mar 7 2016 lib
drwxrwxr-x. 2 hadoop hadoop 4096 Mar 7 2016 libexec
-rw-r--r--. 1 hadoop hadoop 15429 Mar 7 2016 LICENSE.txt
-rw-r--r--. 1 hadoop hadoop 101 Mar 7 2016 NOTICE.txt
-rw-r--r--. 1 hadoop hadoop 1366 Mar 7 2016 README.txt
drwxrwxr-x. 2 hadoop hadoop 4096 Mar 7 2016 sbin
drwxrwxr-x. 4 hadoop hadoop 4096 Mar 7 2016 share
3、修改配置文件
#进入配置文件所在位置
[hadoop@mini01 hadoop-2.6.4]$ cd etc/hadoop/
(1)配置hadoop-env.sh
#1、给它配置java环境,获得java的路径命令
[hadoop@mini01 hadoop]$ echo $JAVA_HOME
/usr/local/jdk1.7.0_45
#2、配置hadoop-env.sh
[hadoop@mini01 hadoop]$ vi hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.7.0_45
(2)配置core-site.xml
[hadoop@mini01 hadoop]$ vi core-site.xml
<configuration>
#指定Hadoop所使用的文件系统schema(URI),HDFS的老大(namenode)的地址
<property>
<name>fs.defaultFS</name>
<value>hdfs://mini01:9000</value>
</property>
#指定Hadoop运行时产生文件的存储目录
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hdpdata</value>
</property>
</configuration>
(3)配置hdfs-site.xml
[hadoop@mini01 hadoop]$ vi hdfs-site.xml
<configuration>
#指定HDFS副本的数量
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
(4)配置mapred-site.xml.template
#先把mapred-site.xml.template文件的文件名修改为mapred-site.xml
[hadoop@mini01 hadoop]$ mv mapred-site.xml.template mapred-site.xml
[hadoop@mini01 hadoop]$ vi mapred-site.xml
<configuration>
#指定mapreduce运行在yarn上
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)配置yarn-site.xml
[hadoop@mini01 hadoop]$ vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
#指定YARN的老大(ResourceManager)的地址
<property>
<name>yarn.resourcemanager.hostname</name>
<value>mini01</value>
</property>
#reduce获取数据的方式
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4、其他
(1)复制apps文件夹到其他机器
#复制到mini02机器(其他机器一样,只需修改mini02)
[hadoop@mini01 ~]$ scp -r apps mini02:/home/hadoop/
(2)将hadoop添加到环境变量
#获取Hadoop位置
[hadoop@mini01 hadoop-2.6.4]$ pwd
/home/hadoop/apps/hadoop-2.6.4
#编辑(添加)
[hadoop@mini01 hadoop-2.6.4]$ sudo vi /etc/profile
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#将profile配置文件复制到其他机器
[hadoop@mini01 hadoop-2.6.4]$ sudo scp /etc/profile mini02:/etc/
#重新加载配置文件(其他机器一样)
[hadoop@mini02 ~]$ source /etc/profile
(3)格式化namenode(是对namenode进行初始化)
[hadoop@mini01 ~]$ hadoop namenode -format
(4)启动Hadoop
#启动namenode,我这里namenode是配置在mini01机器上,所以启动namenode必须在mini01机器上启动
[hadoop@mini01 ~]$ hadoop-daemon.sh start namenode
#在其他机器上启动datanode
[hadoop@mini02 ~]$ hadoop-daemon.sh start datanode
#验证是否启动成功
[hadoop@mini01 ~]$ jps
1782 Jps
1711 NameNode
#关闭Hadoop
[hadoop@mini02 ~]$ hadoop-daemon.sh stop datanode
(5)管理界面
注意:用主机名启动,需要在Windows的hosts文件中配置主机与ip地址的映射
#HDFS管理界面
http://192.168.253.21:50070
或者
http://mini01:50070
#mapreduce管理界面
http://192.168.253.21:8088
或者
http://mini01:8088
(6)有错误查看日志
[hadoop@mini02 ~]$ ll /home//hadoop/apps/hadoop-2.6.4/logs/
total 32
-rw-rw-r--. 1 hadoop hadoop 24995 Apr 23 13:23 hadoop-hadoop-datanode-mini02.log
-rw-rw-r--. 1 hadoop hadoop 717 Apr 23 13:23 hadoop-hadoop-datanode-mini02.out
-rw-rw-r--. 1 hadoop hadoop 0 Apr 23 13:23 SecurityAuth-hadoop.audit
#用less命令查看,G到日志最后一行
[hadoop@mini02 logs]$ less hadoop-hadoop-datanode-mini02.log
5、另一种启动Hadoop方式(推荐)
(1)修改slaves配置文件
slaves的位置:/home/hadoop/apps/hadoop-2.6.4/etc/hadoop/slaves
#在mini01上配置,这里mini01相当于老大
#添加主机名,删除原来的localhost
mini02
mini03
mini04
(2)配置免密登录
#这里mini01是老大,因此配置mini01到mini01,mini02,mini03,mini04的免密登录
#即将mini01的公钥复制到mini01,mini02,mini03,mini04中
[hadoop@mini01 hadoop]$ ssh-keygen
#复制公钥到其他机器
[hadoop@mini01 hadoop]$ ssh-copy-id mini01
#查看免密是否成功,登录mini04
[hadoop@mini01 hadoop]$ ssh mini04
Last login: Mon Apr 23 11:40:21 2018 from 192.168.253.1
[hadoop@mini04 ~]$
(3)启动
位置:/home/hadoop/apps/hadoop-2.6.4/sbin
#先启动HDFS
[hadoop@mini01 sbin]$ start-dfs.sh
#再启动YARN
[hadoop@mini01 sbin]$ start-yarn.sh
#关闭
[hadoop@mini01 sbin]$ stop-all.sh