hadoop三种模式的简单配置
一、local模式1.安装jdk2.解压hadoop包到安装目录3./etc/profile中配置jdk和hadoop环境变量(如有需要)4.检查hadoop是否安装成功
二、伪分布式运行模式1.配置并启动hdfs1、按照上述local模式安装步骤2、修改配置3、启动hdfs
2.配置并启动yarn1、修改配置2、启动yarn
3. 配置历史服务器(可选)1、修改配置2、启动历史服务器3、查看历史服务器是否启动4、JobHistoryServer启动后19888端口可以访问其web页面
4.配置日志聚集(可选)1、修改配置
三、完全分布式运行模式(重点)1.准备3台服务器(以3台为例,关闭防火墙、静态ip、主机名称(hadoopc1h1、hadoopc1h2、hadoopc1h3))2.配置ssh免密登录([centos7设置SSH免密码登录教程](https://www.jianshu.com/p/991b39c48b0f))3.编写集群分发脚本xsync4.集群配置1、集群部署规划2、配置集群3、启动集群
一、local模式
以下的所有软件的安装目录都是/opt/module
1.安装jdk
[root@hadoopc1h1 ~
]$
pwd
/opt/module/jdk1.8.0_144
2.解压hadoop包到安装目录
[root@hadoopc1h1 ~
]$
pwd
/opt/module/hadoop-2.7.2
3./etc/profile中配置jdk和hadoop环境变量(如有需要)
export JAVA_HOME
=/opt/module/jdk1.8.0_144
export PATH
=$PATH:$JAVA_HOME/bin
export HADOOP_HOME
=/opt/module/hadoop-2.7.2
export PATH
=$PATH:$HADOOP_HOME/bin:
$HADOOP_HOME/sbin
export PATH
=$PATH:$HADOOP_HOME/bin:
$HADOOP_HOME/sbin
4.检查hadoop是否安装成功
[root@hadoopc1h1 ~
]$ hadoop version
Hadoop 2.7.2
Subversion Unknown -r Unknown
Compiled by root on 2017-05-22T10:49Z
Compiled with protoc 2.5.0
From
source with checksum d0fda26633fa762bff87ec759ebe689c
二、伪分布式运行模式
1.配置并启动hdfs
1、按照上述local模式安装步骤
2、修改配置
/opt/module/hadoop-2.7.2/etc/hadoop/ hadoop-env.sh
export JAVA_HOME
=/opt/module/jdk1.8.0_144
/opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
<!-- 指定HDFS中NameNode的地址
-->
<property>
<name>fs
.defaultFS
</name
>
<value>hdfs
://NameNodeIp
:port
</value
>
</property
>
<!-- 指定Hadoop运行时产生文件的存储目录
-->
<property>
<name>hadoop
.tmp
.dir
</name
>
<value>/opt
/module
/hadoop
-2.7.2/data
/tmp
</value
>
</property
>
/opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml
<!-- 指定HDFS副本的数量
-->
<property>
<name>dfs
.replication
</name
>
<value>1</value
>
</property
>
3、启动hdfs
(1)格式化NameNode(第一次启动时格式化,以后就不要总格式化)
[root
@hadoopc1h1 ~]$
/opt
/module
/hadoop
-2.7.2/bin
/hdfs namenode
-format
(2)启动namenode
[root
@hadoopc1h1 ~]$
/opt
/module
/hadoop
-2.7.2/sbin
/hadoop
-daemon
.sh start namenode
(3)启动DataNode
[root@hadoopc1h1 ~
]$ /opt/module/hadoop-2.7.2/sbin/hadoop-daemon.sh start DataNode
(4)查看是否启动成功
[root@hadoopc1h1 ~
]$ jps
1539 DataNode
1404 NameNode
(5)hdfs启动后50070端口可以访问其web页面
2.配置并启动yarn
1、修改配置
/opt/module/hadoop-2.7.2/etc/hadoop/yarn-env.sh
export JAVA_HOME
=/opt/module/jdk1.8.0_144
if [ "$JAVA_HOME" != "" ]; then
JAVA_HOME
=$JAVA_HOME
fi
/opt/module/hadoop-2.7.2/etc/hadoop/mapred-env.sh
export JAVA_HOME
=/opt/module/jdk1.8.0_144
/opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml
<!-- Reducer获取数据的方式 --
>
<property
>
<name
>yarn.nodemanager.aux-services
</name
>
<value
>mapreduce_shuffle
</value
>
</property
>
<!-- 指定YARN的ResourceManager的地址 --
>
<property
>
<name
>yarn.resourcemanager.hostname
</name
>
<value
>hadoopc1h1
</value
>
</property
>
mapred-site.xml(对mapred-site.xml.template重新命名为)
<!-- 指定MR运行在YARN上 --
>
<property
>
<name
>mapreduce.framework.name
</name
>
<value
>yarn
</value
>
</property
>
2、启动yarn
(1)启动前必须保证NameNode和DataNode已经启动
[root@hadoopc1h1 ~
]$ jps
1539 DataNode
1404 NameNode
(2)启动ResourceManager
[root@hadoopc1h1 ~
]$ /opt/module/hadoop-2.7.2/sbin/yarn-daemon.sh start resourcemanager
(3)启动NodeManager
[root@hadoopc1h1 ~
]$ /opt/module/hadoop-2.7.2/sbin/yarn-daemon.sh start nodemanager
(4)查看是否启动成功
[root@hadoopc1h1 ~
]$ jps
1347 ResourceManager
1475 NodeManager
(5)yarn启动后8088端口可以访问其web页面
3. 配置历史服务器(可选)
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
1、修改配置
/opt/module/hadoop-2.7.2/etc/hadoop/mapred-site.xml
<!-- 历史服务器端地址 --
>
<property
>
<name
>mapreduce.jobhistory.address
</name
>
<value
>hadoopc1h1:10020
</value
>
</property
>
<!-- 历史服务器web端地址 --
>
<property
>
<name
>mapreduce.jobhistory.webapp.address
</name
>
<value
>hadoopc1h1:19888
</value
>
</property
>
2、启动历史服务器
[root@hadoopc1h1 ~
]$ /opt/module/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver
3、查看历史服务器是否启动
[root@hadoopc1h1 ~
]$ jps
2617 JobHistoryServer
4、JobHistoryServer启动后19888端口可以访问其web页面
4.配置日志聚集(可选)
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。 日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。
1、修改配置
/opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml
<!-- 日志聚集功能使能 --
>
<property
>
<name
>yarn.log-aggregation-enable
</name
>
<value
>true
</value
>
</property
>
<!-- 日志保留时间设置7天 --
>
<property
>
<name
>yarn.log-aggregation.retain-seconds
</name
>
<value
>604800
</value
>
</property
>
三、完全分布式运行模式(重点)
1.准备3台服务器(以3台为例,关闭防火墙、静态ip、主机名称(hadoopc1h1、hadoopc1h2、hadoopc1h3))
2.配置ssh免密登录(centos7设置SSH免密码登录教程)
3.编写集群分发脚本xsync
#!/bin/bash
list
=(hadoopc1h1 hadoopc1h2 hadoopc1h3
)
pcount
=$
if((pcount==0)); then
echo no args
;
exit;
fi
p1
=$1
fname
=`basename $p1`
echo fname
=$fname
pdir
=`cd -P $(dirname $p1); pwd`
echo pdir
=$pdir
user
=`whoami`
for item
in ${list[@]}
do
echo -------------------
$item --------------
rsync -rvl
$pdir/
$fname $user@$item:$pdir
done
4.集群配置
1、集群部署规划
-----Hadoopc1h1Hadoopc1h2Hadoopc1h3
hdfsNameNode、DataNodeDataNodeSecondaryNameNode、DataNodeyarnNodeManagerResourceManager、NodeManagerNodeManager
2、配置集群
/opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
<!-- 指定HDFS中NameNode的地址 --
>
<property
>
<name
>fs.defaultFS
</name
>
<value
>hdfs://hadoopc1h1:9000
</value
>
</property
>
<!-- 指定Hadoop运行时产生文件的存储目录 --
>
<property
>
<name
>hadoop.tmp.dir
</name
>
<value
>/opt/module/hadoop-2.7.2/data/tmp
</value
>
</property
>
/opt/module/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
export JAVA_HOME
=/opt/module/jdk1.8.0_144
/opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml
<property
>
<name
>dfs.replication
</name
>
<value
>3
</value
>
</property
>
<!-- 指定Hadoop辅助名称节点主机配置 --
>
<property
>
<name
>dfs.namenode.secondary.http-address
</name
>
<value
>hadoopc1h3:50090
</value
>
</property
>
/opt/module/hadoop-2.7.2/etc/hadoop/yarn-env.sh
export JAVA_HOME
=/opt/module/jdk1.8.0_144
/opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml
<!-- Reducer获取数据的方式 --
>
<property
>
<name
>yarn.nodemanager.aux-services
</name
>
<value
>mapreduce_shuffle
</value
>
</property
>
<!-- 指定YARN的ResourceManager的地址 --
>
<property
>
<name
>yarn.resourcemanager.hostname
</name
>
<value
>hadoopc1h2
</value
>
</property
>
/opt/module/hadoop-2.7.2/etc/hadoop/mapred-env.sh
export JAVA_HOME
=/opt/module/jdk1.8.0_144
/opt/module/hadoop-2.7.2/etc/hadoop/mapred-site.xml
<!-- 指定MR运行在Yarn上 --
>
<property
>
<name
>mapreduce.framework.name
</name
>
<value
>yarn
</value
>
</property
>
/opt/module/hadoop-2.7.2/etc/hadoop/slaves
hadoopc1h1
hadoopc1h2
hadoopc1h3
(2)在集群上分发配置好的Hadoop
[root@hadoopc1h1 ~
]$ xsync /opt/module/hadoop-2.7.2/
3、启动集群
(1)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
[root@hadoopc1h1 ~
]$ /opt/module/hadoop-2.7.2/bin/hdfs namenode -format
(2)启动HDFS
[root@hadoopc1h1 ~
]$ /opt/module/hadoop-2.7.2/sbin/start-dfs.sh
[root@hadoopc1h1 ~
]$ jps
1366 NameNode
1501 DataNode
[root@hadoopc1h2 ~
]
1184 DataNode
[root@hadoopc1h3 ~
]
1390 SecondaryNameNode
1263 DataNode
(3)启动yarn
注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。
[root@hadoopc1h1 ~
]$ /opt/module/hadoop-2.7.2/sbin/start-yarn.sh
[root@hadoopc1h1 ~
]$ jps
1746 NodeManager
1366 NameNode
1501 DataNode
2991 Jps
[root@hadoopc1h2 ~
]
1184 DataNode
1328 ResourceManager
1472 NodeManager
2390 Jps
[root@hadoopc1h3 sbin
]
1482 NodeManager
1390 SecondaryNameNode
1263 DataNode
2536 Jps
(4)查看hadoop集群web页面
hdfs yarn SecondaryNameNode