1、Hadoop的安装

1.1

在节点node101将准备好的软件包发送到/opt/software 目录下, 并解压到目录/opt/module:
cd /opt/software
tar -zxvf hadoop-3.3.6.tar.gz -C /opt/module/

1.2

配置环境变量,在文件末尾增加:
vim /etc/profile

增加内容点击查看
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.8.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

1.3

分发配置好的/etc/profile 到其它节点:
for i in {102..103}; do scp -r /etc/profile root@node${i}:/etc/;done

使用命令使环境变量生效:
source /etc/profile

查看hadoop版本
hadoop version
注意此时另外两个节点暂时没有发送hadoop软件包,故只能在node101节点查看Hadoop版本

1.4

配置Hadoop的配置文件

进入到HADOOP 配置文件目录:
cd /opt/module/hadoop-3.3.6/etc/hadoop

1.4.1 配置HDFS


配置hadoop-env.sh:
编辑文件:vim hadoop-env.sh
添加如下命令:

点击查看代码
export JAVA_HOME=/opt/module/jdk1.8.0_421
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

配置hdfs-site.xml:vim hdfs-site.xml

配置代码点击查看
<configuration>
<!-- 指定HDFS的主节点的元数据文件的本地存放路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/module/hadoop-3.3.6/name</value>
    </property>
<!-- 指定HDFS的数据节点的数据文件的本地存放路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/module/hadoop-3.3.6/data</value>
    </property>
<!-- nn web端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>node101:9870</value>
    </property>
<!-- 2nn web端访问地址  NameNode和SecondaryNameNode尽量不要安装在同一台服务器-->
    <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>node102:50090</value>
    </property>
<!-- 指定HDFS的数据分块的备份数量 -->
    <property>
         <name>dfs.replication</name>
         <value>2</value>
    </property>
</configuration>

注意添加的代码要在configuration标签里面:
image


1.4.2 配置YARN

配置yarn-env.sh:vim yarn-env.sh
添加如下命令:
export JAVA_HOME=/opt/module/jdk1.8.0_421

配置yarn-site.xml:vim yarn-site.xml

配置代码点击查看
<configuration>
<!-- 指定ResourceManager -->
  <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>node101</value>
  </property>    
  <property>
         <name>yarn.resourcemanager.address</name>
         <value>${yarn.resourcemanager.hostname}:8032</value>
  </property>
  <property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>${yarn.resourcemanager.hostname}:8030</value>
  </property>
  <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>${yarn.resourcemanager.hostname}:8088</value>
  </property>
  <property>
         <name>yarn.resourcemanager.webapp.https.address</name>
         <value>${yarn.resourcemanager.hostname}:8090</value>
  </property>
  <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>${yarn.resourcemanager.hostname}:8031</value>
  </property>
  <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>${yarn.resourcemanager.hostname}:8033</value>
  </property>
  <property>
         <name>yarn.nodemanager.local-dirs</name>
         <value>/data/hadoop/yarn/local</value>
  </property>
<!-- 开启日志聚集功能 -->
  <property>
         <name>yarn.log-aggregation-enable</name>
         <value>true</value>
  </property>
  <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/data/tmp/logs</value>
  </property>
<!-- 设置日志聚集服务器地址 -->
  <property> 
        <name>yarn.log.server.url</name> 
        <value>http://node101:19888/jobhistory/logs/</value>
        <description>URL for job history server</description>
  </property>
  <property>
       	<name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
  </property>
  <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
  </property>
  <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
	<property>  
        <name>yarn.nodemanager.resource.memory-mb</name>  
        <value>2048</value>  
  </property>  
  <property>  
        <name>yarn.scheduler.minimum-allocation-mb</name>  
        <value>512</value>  
  </property>   
  <property>  
        <name>yarn.scheduler.maximum-allocation-mb</name>  
        <value>4096</value>  
  </property> 
  <property> 
        <name>mapreduce.map.memory.mb</name> 
        <value>2048</value> 
  </property> 
  <property> 
        <name>mapreduce.reduce.memory.mb</name> 
        <value>2048</value> 
  </property> 
  <property> 
        <name>yarn.nodemanager.resource.cpu-vcores</name> 
        <value>1</value> 
  </property>
  <property>
        <name>yarn.application.classpath</name>
        <value>
$HADOOP_HOME/etc/hadoop:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/yarn:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*
    	  </value>
  </property>
        <!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
  <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
  </property>
  <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
  </property>
</configuration>

1.4.3 配置MapReduce

配置mapred-env.sh:vim mapred-env.sh
添加如下命令:export JAVA_HOME=/opt/module/jdk1.8.0_421

配置mapred-site.xml:vim mapred-site.xml

配置代码点击查看
<configuration>
<!-- 指定MapReduce所使用的外部管理框架,这里使用Hadoop 3.3.6自带的YARN资源管理器 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- jobhistory properties -->
<!-- 设置 mapreduce 的历史服务器地址和端口号 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node101:10020</value>
    </property>
<!-- mapreduce 历史服务器的 web 访问地址 -->
    <property>
         <name>mapreduce.jobhistory.webapp.address</name>
         <value>node101:19888</value>
    </property>
</configuration>

1.4.4 核心配置

配置core-site.xml:vim core-site.xml

配置代码点击查看
<configuration>
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
    <property>
      <name>fs.defaultFS</name>  
      <value>hdfs://node101:8020</value>  
    </property>  
<!-- 指定Hadoop的临时文件的本地存放路径 -->
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/var/log/hadoop/tmp</value>
    </property>
<!-- 设置HDFS web UI用户身份 -->
	<property>
   	  <name>hadoop.http.staticuser.user</name>
	  <value>root</value>
	</property>
<!-- 配置该root(superUser)允许通过代理访问的主机节点 -->
    <property>
      <name>hadoop.proxyuser.root.hosts</name>
      <value>*</value>
    </property>
<!-- 配置该root(superUser)允许通过代理用户所属组 -->
    <property>
       <name>hadoop.proxyuser.root.groups</name>
       <value>*</value>
    </property>
<!-- 配置该root(superUser)允许通过代理的用户-->
    <property>
       <name>hadoop.proxyuser.root.groups</name>
       <value>*</value>
    </property>
</configuration>

配置workers:vim workers

确保文件的内容如下格式:
node102
node103

1.5

分发配置好的HADOOP 到其它节点:
任选一种方式scp/rsync:
for i in {102..103}; do scp -r /opt/module/hadoop-3.3.6 root@node${i}:/opt/module/;done
或者:
for i in {102..103}; do rsync -va /opt/module/hadoop-3.3.6 root@node${i}:/opt/module/;done

1.6

格式化集群
注意,只有第一次启动时需要格式化,且只需要在node101执行一次即可:
在/opt/module/hadoop-3.3.6/目录下执行:
bin/hdfs namenode -format

image
格式化成功界面如上

1.7群启集群(也可单独每节点启动)

注意启动顺序:
启动HDFS:sbin/start-dfs.sh
启动YARN:sbin/start-yarn.sh
启动Historyserver:mapred --daemon start historyserver

关闭HDFS:sbin/stop-dfs.sh
关闭YARN:sbin/stop-yarn.sh
关闭Historyserver:mapred --daemon stop historyserver

image
启动HDFS报如上错时需要查看集群内的虚拟机的防火墙是否关闭,或者是免密配置是否出错

image
启动HDFS报如上错时需要在hadoop-env.sh添加如下内容(添加过的则不会报错):

点击查看代码
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
如下如启动成功:

image

1.7 启动成功后,可通过以下方式访问管理页面:

HADOOP:
http://node101的IP:8088/cluster
HDFS:
http://node101的IP:9870/dfshealth.htm

posted on 2024-12-20 18:03  小高叁肆  阅读(134)  评论(0)    收藏  举报