安装步骤(以CentOS6.5为例)
1、关闭防火墙,关闭防火墙开机自启动
查看防火墙状态 | service iptables status |
---|---|
关闭防火墙 | service iptables stop |
开启防火墙 | service iptables start |
开启防火墙开机自启动 | chkconfig iptables on |
关闭防火墙开机自启动 | chkconfig iptables off |
2、安装jdk1.8
#查看CentOS6.5自带的jdk版本
[root@jiangye ~]# java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
#查看jdk的信息
[root@jiangye ~]# rpm -qa|grep java
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
tzdata-java-2013g-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
#卸载jdk
[root@jiangye ~]# rpm -e --nodeps tzdata-java-2013g-1.el6.noarch
[root@jiangye ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
[root@jiangye ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
[root@jiangye ~]# rpm -qa | grep java
[root@jiangye ~]#
============================================================================
#另一种方法。卸载系统自带的openJDK
yum remove java-1.6.0-openjdk
yum remove java-1.7.0-openjdk
============================================================================
#安装jdk-8u181-linux-x64.tar.gz
[root@jiangye ~]# tar -zxvf jdk-8u181-linux-x64.tar.gz -C /home/presoftware/
#-C 后面跟着路径
#配置系统全局环境变量
#配置环境变量,切换至/etc/文件夹 打开profile文件
[root@jiangye resources]# vim /etc/profile
#将以下内容添加至profile的最后一行
#set java environment
export JAVA_HOME=/home/presoftware/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
3、修改主机名。Hadoop要求主机名中不能出现-或者_
#给本计算机起一个名字
[root@jiangye ~]# vim /etc/sysconfig/network
修改 HOSTNAME=jiangye
#使主机名重新生效
[root@jiangye ~]#source /etc/sysconfig/network
4、将主机名和IP进行映射
#解析计算机名称和IP地址的映射关系,想使用计算机名称来访问对方的主机,需要把对方计算机的名称和IP地址写到本机的hosts文件中
[root@jiangye ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#将ip和主机名进行映射
192.168.56.99 jiangye
5、重启
[root@jiangye ~]# reboot
或者
[root@jiangye ~]# init 6
6、需要配置节点的免密互通(免密登录)
[root@jiangye ~]# ssh-keygen
[root@jiangye .ssh]# ssh-copy-id root@主机名
#root是用户名称
#检验一下是否成功
[root@jiangye ~]# ssh root@主机名
7、下载安装hadoop
[root@jiangye ~]# wget http://archive.apache.org/dist/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz
[root@jiangye ~]# tar -xvf hadoop-2.7.1.tar.gz
8、进入安装目录的子目录etc/hadoop下
[root@node hadoop]# cd /home/software/hadoop-2.7.1/etc/hadoop
[root@node hadoop]# ls
capacity-scheduler.xml hadoop-metrics2.properties httpfs-signature.secret log4j.properties slaves
configuration.xsl hadoop-metrics.properties httpfs-site.xml mapred-env.cmd ssl-client.xml.example
container-executor.cfg hadoop-policy.xml kms-acls.xml mapred-env.sh ssl-server.xml.example
core-site.xml hdfs-site.xml kms-env.sh mapred-queues.xml.template yarn-env.cmd
hadoop-env.cmd httpfs-env.sh kms-log4j.properties mapred-site.xml yarn-env.sh
hadoop-env.sh httpfs-log4j.properties kms-site.xml mapred-site.xml.template yarn-site.xml
[root@node hadoop]#
9、修改vim hadoop-env.sh
export JAVA_HOME=/home/presoftware/jdk1.8
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
10、vim core-site.xml
<configuration>
<!--指定hadoop使用HDFS文件系统作为默认的文件系统-->
<!--其中hadoop是指主机名-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop:9000</value>
</property>
<!--指定hadoop运行时产生的临时文件存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/software/hadoop-2.7.1/tmp</value>
</property>
<!--开启垃圾回收站-->
<!--value的默认单位是min-->
<!--表示垃圾在回收站中存活时间,一旦超过存活时间垃圾自动删除-->
<property>
<name>fs.trash.interval</name>
<value>1140</value>
</property>
</configuration>
11、vim hdfs-site.xml
<configuration>
<!--指定HDFS副本数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--dfs.permissions.enabled默认为true。如果为true,则启用HDFS的权限检查,否则不启用-->
<!--关闭HDFS权限检查-->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
12、cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<!--指定MapReduce执行在yarn组件上,可以是本地local-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
13、vim yarn-site.xml
<configuration>
<!--指定ResourceManager运行在哪台主机上-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
14、vim slaves
<!--指定本主机的名称-->
hadoop
启动集群:start-all.sh(HDFS、MapReduce)
start-dfs.sh(HDFS)
start-yarn.sh(MapReduce)
关闭时 start换成stop
15、启动hadoop
#第一次启动之前,要对namenode进行格式化操作:
[root@node hadoop]# hdfs namenode -format
#启动hadoop (HDFS、MapReduce都要启动)
[root@node hadoop]# start-all.sh
#查看进程,应该有6个
[root@node hadoop]# jps
Jps
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
#关闭hadoop start 换成 stop
[root@node hadoop]# stop-all.sh
#启动HDFS
start-dfs.sh
#启动MapReduce
start-yarn.sh
注意!!!!
Hadoop在启动的时候,如果多次格式化,那么启动的时候一定会缺少NameNode或者DataNode中的一个 如果出现这个问题,那么删除hadoop安装目录下的tmp目录,然后重新格式化,重新启动