hadoop三种模式的配置与启动

    科技2024-08-17  32

    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 # The java implementation to use. 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 # some Java parameters export JAVA_HOME=/opt/module/jdk1.8.0_144 if [ "$JAVA_HOME" != "" ]; then #echo "run java in $JAVA_HOME" JAVA_HOME=$JAVA_HOME fi /opt/module/hadoop-2.7.2/etc/hadoop/mapred-env.sh # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. 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 #1 获取输入参数个数,如果没有参数,直接退出 list=(hadoopc1h1 hadoopc1h2 hadoopc1h3) pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for item in ${list[@]} do echo ------------------- $item -------------- rsync -rvl $pdir/$fname $user@$item:$pdir done

    4.集群配置

    1、集群部署规划

    -----Hadoopc1h1Hadoopc1h2Hadoopc1h3hdfsNameNode、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 ~]# jps 1184 DataNode [root@hadoopc1h3 ~]# jps 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 ~]# jps 1184 DataNode 1328 ResourceManager 1472 NodeManager 2390 Jps [root@hadoopc1h3 sbin]# jps 1482 NodeManager 1390 SecondaryNameNode 1263 DataNode 2536 Jps

    (4)查看hadoop集群web页面

    hdfs yarn SecondaryNameNode

    Processed: 0.010, SQL: 8