Hadoop3.3.4分布式安装

安装前提:已经配置好java环境,所有机器之间ssh的免密登录。

注意:下文中的flinkv1、flinkv2、flinkv3是三台服务器的别名

1.集群部署规划

注意:NameNode和SecondaryNameNode不要安装在同一台服务器

注意:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台

机器上。

2.上传安装包到linux系统上

3.进入到Hadoop安装包路径下

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e ~]$ cd /opt/package/

4.解压安装文件到/opt/module下面

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e package]$ tar -zxvf hadoop-3.3.4.tar.gz -C ../software/

5.查看是否解压成功

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e package]$ cd ../software/
[zhangflink@9wmwtivvjuibcd2e software]$ ls

6.重命名

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e software]$ mv hadoop-3.3.4/ hadoop
[zhangflink@9wmwtivvjuibcd2e software]$ ls

7.将Hadoop添加到环境变量

(1)获取Hadoop安装路径

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e software]$ cd hadoop/
[zhangflink@9wmwtivvjuibcd2e hadoop]$ pwd

(2)打开/etc/profile文件

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ sudo vim /etc/profile

在profile文件末尾添加JDK路径:(shitf+g)

bash 复制代码
> #HADOOP_HOME 	export
> HADOOP_HOME=/opt/software/hadoop 	
> export PATH=$PATH:$HADOOP_HOME/bin
> export PATH=$PATH:$HADOOP_HOME/sbin

(3)保存后退出

bash 复制代码
 :wq

(4)分发环境变量文件

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ /home/zhangflink/bin/xsync /etc/profile

(5)source 是之生效(3台节点)

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ source /etc/profile

8.配置集群

(1)核心配置文件

配置core-site.xml

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ cd etc/
[zhangflink@9wmwtivvjuibcd2e etc]$ cd hadoop/
[zhangflink@9wmwtivvjuibcd2e hadoop]$ vim core-site.xml

在配置文件最下面的configuration中间添加如下配置项

bash 复制代码
<configuration>
<!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://flinkv1:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/software/hadoop/data</value>
</property>

<!-- 配置HDFS网页登录使用的静态用户为atguigu -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>zhangflink</value>
</property>

<!-- 配置该atguigu(superUser)允许通过代理访问的主机节点 -->
    <property>
        <name>hadoop.proxyuser.zhangflink.hosts</name>
        <value>*</value>
</property>
<!-- 配置该atguigu(superUser)允许通过代理用户所属组 -->
    <property>
        <name>hadoop.proxyuser.zhangflink.groups</name>
        <value>*</value>
</property>
<!-- 配置该atguigu(superUser)允许通过代理的用户-->
    <property>
        <name>hadoop.proxyuser.zhangflink.users</name>
        <value>*</value>
</property>
</configuration>

(2)HDFS配置文件

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ vim hdfs-site.xml
bash 复制代码
<configuration>
<!-- nn web端访问地址-->
        <property>
        <name>dfs.namenode.http-address</name>
        <value>flinkv1:9870</value>
    </property>

        <!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>flinkv3:9868</value>
    </property>

    <!-- 测试环境指定HDFS副本的数量1 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

(3)YARN配置文件

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ vim yarn-site.xml 
bash 复制代码
<configuration>
<!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>flinkv2</value>
    </property>

    <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>

        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
    </property>

        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
    </property>

    <!-- yarn容器允许管理的物理内存大小 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</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>

(4)MapReduce配置文件

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ vim mapred-site.xml
bash 复制代码
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

(5)配置workers

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ vim workers 
bash 复制代码
flinkv1
flinkv2
flinkv3

9.配置历史服务器

为了查看程序的历史运行情况,需要配置一下历史服务器

(1)配置mapred-site.xml

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ vim mapred-site.xml
bash 复制代码
<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>flinkv1:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>flinkv1:19888</value>
</property>

10.配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。

日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。

注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。

(1)配置yarn-site.xml

bash 复制代码
<!-- 开启日志聚集功能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>

<!-- 设置日志聚集服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://flinkv1:19888/jobhistory/logs</value>
</property>

<!-- 设置日志保留时间为7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>

11.分发Hadoop

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e software]$ /home/zhangflink/bin/xsync hadoop/

12.群起集群

(1)启动集群

如果集群是第一次启动,需要在flinkv1节点格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ bin/hdfs namenode -format

(2)启动HDFS

启动HDFS如果出现以上报错,可能是没有配置java环境变量,首先检查系统java环境是否配置成功

如果系统环境如上图所示正常,那么就是hadoop的配置文件没有配置java环境变量路径导致。

只需按如下配置hadoop-env.sh文件即可

编辑hadoop-env.sh文件

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ vim etc/hadoop/hadoop-env.sh

找到java环境修改配置

bash 复制代码
JAVA_HOME=/opt/software/jdk1.8.0_212

分发hadoop配置文件

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ /home/zhangflink/bin/xsync etc/

再次启动HDFS

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ sbin/start-dfs.sh

查看进程

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ jps

(3)在配置了ResourceManager的节点(flinkv2)启动YARN

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e-0001 hadoop]$ sbin/start-yarn.sh

查看进程

bash 复制代码
[zhangflink@9wmwtivvjuibcd2e hadoop]$ jps

(4)Web端查看HDFS的Web页面:http://flinkv1:9870/ (云服务器请使用公网IP地址访问,确保端口的安全组入口已经开发)

(5)Web端查看SecondaryNameNode

相关推荐
失散131 小时前
分布式专题——10.4 ShardingSphere-Proxy服务端分库分表
java·分布式·架构·shardingsphere·分库分表
方圆想当图灵5 小时前
如何让百万 QPS 下的服务更高效?
分布式·后端
Dobby_0510 小时前
【Hadoop】分布式文件系统 HDFS
大数据·hadoop·分布式
哈哈很哈哈10 小时前
Spark 核心 RDD详解
大数据·分布式·spark·scala
项目題供诗10 小时前
Hadoop(十一)
大数据·hadoop·分布式
学习中的阿陈15 小时前
Hadoop伪分布式环境配置
大数据·hadoop·分布式
CesareCheung15 小时前
JMeter分布式压力测试
分布式·jmeter·压力测试
失散1317 小时前
分布式专题——10.5 ShardingSphere的CosID主键生成框架
java·分布式·架构·分库分表·shadingsphere
Cxzzzzzzzzzz21 小时前
RabbitMQ 在实际开发中的应用场景与实现方案
分布式·rabbitmq
在未来等你21 小时前
Kafka面试精讲 Day 16:生产者性能优化策略
大数据·分布式·面试·kafka·消息队列