百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术流 > 正文

Hadoop 3使用分享(一):安装笔记

citgpt 2024-10-02 13:24 11 浏览 0 评论

 Hadoop3已经发布很久了,迭代集成的一些新特性也是很有用的。接下来,笔者先为大家分享一下Hadoop3.2 安装笔记


Hadoop 3使用分享(一):安装笔记

准备工作

本次使用虚拟机服务器来搭建开源版Hadoop3集群,所用软件及版本如下所示:

Vmware 12.0

Centos 7.6

JDK1.8

Hadoop3.2.1


Vmware 虚拟环境

采用NAT方式联网

网关地址:192.168.80.1

3个服务器节点IP地址:

mini1 192.168.80.81

mini2 192.168.80.82

mini3 192.168.80.83

子网掩码:255.255.255.0


主机及集群角色规划

mini1 NameNode DataNode ResourceManager NodeManager

mini2 SecondaryNameNode DataNode NodeManager

mini3 DataNode NodeManager


具体安装步骤如下:


一,linux系统环境准备

以下[1-7]步操作,所有节点【mini1,mini2,mini3】都需要进行设置,具体操作如下:

1,依次更改【mini1,mini2,mini3】主机名:

vi /etc/hostname

2,配置网络

2.1 命令: vi /etc/sysconfig/network-scripts/ifcfg-ens33

如下配置:

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.80.81

GATEWAY=192.168.80.1

NETMASK=255.255.255.0

DNS1=114.114.114.114


2.2 重启网卡命令:systemctl restart network


2.3 配置Ip与主机名映射,命令:vi /etc/hosts


192.168.80.81 mini1

192.168.80.82 mini2

192.168.80.83 mini3


3,关闭防火墙

systemctl stop firewalld (临时关闭防火墙)

systemctl disable firewalld (禁止firewall开机启动)

systemctl status firewalld (查看防火墙状态)


4,禁用Selinux(安全权限管理模块)

vi /etc/sysconfig/selinux

SELINUX=disabled


5,设置将 /proc/sys/vm/swappiness 设置为 0 (修改swap空间的swappiness,降低对硬盘的缓存)

执行以下输入:

echo "vm.swappiness=0" >> /etc/sysctl.conf (永久降低虚拟内存需求率)

sysctl -p (并运行如下命令使生效)


6,修改时区:timedatectl set-timezone Asia/Shanghai


7,配置免密登录

******配置主机之间的免密ssh登陆******

假如 mini1 要登陆 mini2,mini3

在mini1上操作:

首先生成密钥对,命令如下:

ssh-keygen (提示时,直接回车即可)

将生产的秘钥copy到【mini1,mini2,mini3】上,命令如下

ssh-copy-id mini1

ssh-copy-id mini2

ssh-copy-id mini3



二,集群时间同步

【mini1】作为时间同步服务器,【mini2,mini3】同步【mini1】的时间,具体操作如下:


1,禁用【mini1,mini2,mini3】chrony时间同步服务(centos7操作系统默认使用chrony)

systemctl stop chronyd

systemctl disable chronyd

2,在【mini1,mini2,mini3】上执行命令:yum install -y ntp 安装时间同步服务


3,在Server【mini1】上执行命令: vi /etc/ntp.conf


添加以下内容:

restrict 192.168.80.0 mask 255.255.255.0 nomodify notrap

server 127.127.1.0

fudge 127.127.1.0 stratum 10


同时注释掉这几个配置

#server 0.centos.pool.ntp.org iburst

#server 1.centos.pool.ntp.org iburst

#server 2.centos.pool.ntp.org iburst

#server 3.centos.pool.ntp.org iburst


4,在Server【mini1】上执行启动ntpd服务命令

systemctl start ntpd (启动ntpd服务)

systemctl status ntpd (查看ntpd服务状态)

systemctl enable ntpd (将ntpd服务加入开机启动)

systemctl list-unit-files |grep ntpd (查看是否将ntpd服务加入到开机启动项)


5,在客户端【mini2,mini3】配置同步: crontab -e

*/1 * * * * /usr/sbin/ntpdate mini1 ;/sbin/hwclock -w



三,安装JDK

1.上传jdk安装包

2.安装目录: /opt/apps/

3.解压jdk到安装目录: tar -zvxf jdk-8u101-linux-x64.tar.gz -C /opt/apps/

4.在安装目录中建立jdk软链接,指向jdk所在目录 :ln -s jdk1.8.0_101 jdk

5.配置环境变量,编辑vi /etc/profile文件,在最后一行加入以下两行:

export JAVA_HOME=/opt/apps/jdk

export PATH=$PATH:$JAVA_HOME/bin


6.修改完成后,执行命令: source /etc/profile 使配置生效

7.检验:在任意目录下输入命令: java -version 看是否成功执行

8.将安装好的jdk目录用scp命令拷贝到其他机器

9.将/etc/profile配置文件也用scp命令拷贝到其他机器并分别执行source命令


四,安装Hadoop

1.上传Hadoop安装包 :hadoop-3.2.1.tar.gz

2.解压安装包: tar -zvxf hadoop-3.2.1.tar.gz -C /opt/apps/

3.在安装目录中建立hadoop软链接,指向hadoop解压目录 :ln -s hadoop-3.2.1 hadoop

4.修改配置文件:cd /opt/apps/hadoop/etc/hadoop

4.1 配置hadoop-env.sh 文件

export JAVA_HOME=/opt/apps/jdk


4.2 配置core-site.xml文件

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://mini1:9000</value>

</property>

</configuration>

4.3 配置hdfs-site.xml文件

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>/opt/apps/hadoop/hadoopdata/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/opt/apps/hadoop/hadoopdata/data</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>mini2:50090</value>

</property>

</configuration>

4.4 配置mapred-site.xml文件

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>


4.5 配置yarn-site.xml文件

<configuration>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>mini1</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>


4.6 配置workers文件

mini1

mini2

mini3


5.拷贝整个hadoop安装目录到其他机器

scp -r /opt/apps/hadoop-3.2.1 mini2:/opt/apps/

scp -r /opt/apps/hadoop-3.2.1 mini3:/opt/apps/


6.要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量

配置Hadoop环境变量:vi /etc/profile

export JAVA_HOME=/opt/apps/jdk

export HADOOP_HOME=/opt/apps/hadoop

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


7.将/etc/profile配置文件也用scp命令拷贝到其他机器并分别执行source命令


五,启动HDFS集群

1.首先初始化namenode的元数据目录。

命令:hdfs namenode -format(mini1上执行)

创建一个全新的元数据存储目录

生成记录元数据的文件fsimage

生成集群的相关标识:如:集群id——clusterID


2.启动namenode进程

命令:hdfs --daemon start namenode (mini1上执行)


4.启动datanode(mini1,mini2,mini3上执行)

命令:hdfs --daemon start datanode


5.重要提示:可以在主节点全部启动或停止关于HDFS相关角色(主节点mini1上执行)


将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

#!/usr/bin/env bash

HDFS_DATANODE_USER=root

HADOOP_SECURE_DN_USER=hdfs

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root


全部启动命令:start-dfs.sh 全部停止命令:stop-dfs.sh


6.启动后浏览HDFS web界面: http://mini1:9870/


六,启动YARN集群

1.启动resourcemanager进程(主节点mini1上执行)

命令:yarn --daemon start resourcemanager


2.启动nodemanager进程(mini1,mini2,mini3上执行)

命令:yarn --daemon start nodemanager


3.重要提示:可以在主节点全部启动或停止关于HDFS相关角色(主节点mini1上执行):

将start-yarn.sh,stop-yarn.sh两个文件顶部需添加以下:

#!/usr/bin/env bash

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

全部启动命令:start-yarn.sh 全部停止命令:stop-yarn.sh


4.启动后浏览YARN集群 web界面: http://mini1:8088/



相关推荐

js中arguments详解

一、简介了解arguments这个对象之前先来认识一下javascript的一些功能:其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载。Javascrip中每个函数...

firewall-cmd 常用命令

目录firewalldzone说明firewallzone内容说明firewall-cmd常用参数firewall-cmd常用命令常用命令 回到顶部firewalldzone...

epel-release 是什么

EPEL-release(ExtraPackagesforEnterpriseLinux)是一个软件仓库,它为企业级Linux发行版(如CentOS、RHEL等)提供额外的软件包。以下是关于E...

FullGC详解  什么是 JVM 的 GC
FullGC详解 什么是 JVM 的 GC

前言:背景:一、什么是JVM的GC?JVM(JavaVirtualMachine)。JVM是Java程序的虚拟机,是一种实现Java语言的解...

2024-10-26 08:50 citgpt

使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
跨域(CrossOrigin)

1.介绍  1)跨域问题:跨域问题是在网络中,当一个网络的运行脚本(通常时JavaScript)试图访问另一个网络的资源时,如果这两个网络的端口、协议和域名不一致时就会出现跨域问题。    通俗讲...

微服务架构和分布式架构的区别

1、含义不同微服务架构:微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并...

深入理解与应用CSS clip-path 属性
深入理解与应用CSS clip-path 属性

clip-pathclip-path是什么clip-path 是一个CSS属性,允许开发者创建一个剪切区域,从而决定元素的哪些部分可见,哪些部分会被隐...

2024-10-25 11:51 citgpt

HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
Request.ServerVariables 大全

Request.ServerVariables("Url")返回服务器地址Request.ServerVariables("Path_Info")客户端提供的路...

python操作Kafka

目录一、python操作kafka1.python使用kafka生产者2.python使用kafka消费者3.使用docker中的kafka二、python操作kafka细...

Runtime.getRuntime().exec详解

Runtime.getRuntime().exec详解概述Runtime.getRuntime().exec用于调用外部可执行程序或系统命令,并重定向外部程序的标准输入、标准输出和标准错误到缓冲池。...

promise.all详解 promise.all是干什么的
promise.all详解 promise.all是干什么的

promise.all详解promise.all中所有的请求成功了,走.then(),在.then()中能得到一个数组,数组中是每个请求resolve抛出的结果...

2024-10-24 16:21 citgpt

Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解

取消回复欢迎 发表评论: