Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置

Hadoop安装

阅读推荐(105条消息) 大数据安装之hadoop-3.3.4_x_y_z423的博客-CSDN博客

(112条消息) hadoop3.3.4集群安装部署_hwbays的博客-CSDN博客

加倍推荐,Hadoop集群配置内容讲的及其详细基于docker的hadoop集群搭建

一、准备工作

1、环境工具

xshell
Windows 10 Pro, 64-bit
VMware® Workstation 16 Pro
Ubuntu22.04 * 3

2、VMware tools安装

apt install open-vw-tools

apt install open-vw-tools-desktop # 据我了解官网推荐带桌面的安装

个人没有安装好,复制粘贴失效,无法拖拽

推荐创建共享文件夹https://www.cnblogs.com/chengqiang521/p/16620768.html

3、下载文件

Hadoop(在官网下载的时候注意不要下载成源代码)

https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz

jdk [jdk-18.0.2_linux-x64_bin.tar.gz-正式版下载-官方版下载-123云盘 (123pan.com)](

传输文件到Ubuntu虚拟机中

4、创建链接克隆,修改主机名

①这里我是使用源Ubuntu虚拟主机创建了三个链接克隆,该克隆依据快照原理离不开源主机,但是依旧可以独立运行,对应快照一定不能误删
Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置_第1张图片

②三个Ubuntu分别改主机名为Hadoop1,2,3;有以下两种方法

hostnamectl set-hostname Hadoop1;

或直接在配置文件中改 vim /ect/hostname

Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置_第2张图片

5、网络设置

VMware 虚拟网络编辑器设置net模式,可以自动定义子网ip和掩码(所有虚拟机关闭后设置)

Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置_第3张图片

其中NAT设置里可以看到网关

设置静态IP

使用netplan设置IP地址

①、配置netplan可读入的网络配置文件

# vim /etc/netplan/00-installer-config.yaml # 这个名字好像可以随便,因为netplan读取文件时读*.yaml

network:
  ethernets:
    ens160:     #配置的网卡的名称
      addresses: [192.168.161.131/24]    #配置的静态ip地址和掩码
      dhcp4: no    #关闭DHCP,如果需要打开DHCP则写yes
      optional: true
      
      #gateway4 已被弃用,请改用默认路由。默认路由就是通过 routes 配置 IP,如下
      routes: 
        - to: default
          via: 192.168.161.2 #默认网关,注意查看自己的网关到底是多少,VMware中一般为 *.*.*.2
      nameservers:
         addresses: [114.114.114.114,180.76.76.76]    #DNS服务器地址,多个DNS服务器地址需要用英文逗号分隔开
  version: 2
  renderer: networkd    #指定后端采用systemd-networkd或者Network Manager,可不填写则默认使用systemd-workd

②、netplan应用配置

# netplan apply

6、修改host文件(Hadoop1、Hadoop2、Hadoop3)

vim /etc/hosts

全部改成如下格式

Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置_第4张图片

7、关闭防火墙(Hadoop1、Hadoop2、Hadoop3)

关闭防火墙是为了让集群内部之间更方便的通信,省事不安全

systemctl stop firewalld.service *#停止firewall*

systemctl disable firewalld.service *#禁止firewall开机启动*

我就没有安装防火墙

8、测试各机器之间的联通性

ping Hadoop2

二、设置ssh免密登录(Hadoop1、Hadoop2、Hadoop3)

ssh免密登录与ssh的密钥登录是有区别的
这里我犯了一个逻辑上的错误。
在ssh密钥登录的过程中服务器持有的是公钥
而(客户)客户端持有的是私钥。
我们在生成公私密钥对后,将公钥安装给服务器,将私钥发送给客户。
注意:密钥对不一定非要在服务端生成,我就是这里晕了一下。

这里的免密登录就是密钥登录

下面的操作中密钥对产生自客户(客户端,保留私钥的一方),所以要使用ssh-copy-id将公钥安装在服务端。

ssh-copy-id可以将公钥远程的写入目标机器目标用户下/.ssh/authorized_keys文件中)

具体操作:

①此处需要使用ssh-server如没有则下载

apt install openssh-server

②配置所有节点(Hadoop1、Hdoop2、Hadoop3)的/etc/ssh/sshd_config文件。找到PermitRootLogin 去掉注释,后面改为yes

vim /etc/ssh/sshd_config

分别找到一下条目去掉注释,更改

PermitRootLogin yes #允许root用户登录
RSAAuthentication yes #RSA身份认证
PubkeyAuthentication yes #公共身份认证
PasswordAuthentication yes #密码身份认证

更改之后记得重启一下ssh服务

sudo systemctl restart sshd

这里ssh密钥登录本身不需要密码身份认证,但是使用ssh-copy-id命令时需要。
所以如果你的root账户还没有密码记得先设置密码
sudo su
passwd root

③在root下创建ssh密钥登录需要的目录(三个都创建)

(我不知道ssh-copy-id会不会自动在服务方创建,但第一个要机器要自己创建)

sudo su
cd ~
mkdir .ssh
chmod 700 .ssh 
cd .ssh
mkdir authorized_keys
chmod 600 authorized_keys # 设置响应权限确保正常运行

④在.ssh文件下生成密钥对,直接回三个车就好,注意不能设置密码,不然怎么免密登录。

cd ~/.ssh
ssh-keygen -t rsa #生成免密登录公私钥,根据提示按回车或y

⑤将公钥安装在服务端中

ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop1 #自己给自己按,我自己ssh我自己
ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop3

注意这里需要输入一次服务端root(你所对应的账户)密码。

(scp命令也可以用来发送密钥,不过后面还要自己安装比较麻烦)

⑥然后就可以免密登录了,记得都相互设置一下使得所有的都可以相互免密登录。

三、安装jdk(Hadoop1)

1、查看系统中是否已经安装了java

java -version

2、在目录下创建software下层创建java

3、将jdk解压到java目录下

tar -zxvf 压缩包位置 -C /home/您的名字/software/java

4、添加系统变量(对所有用户生效)

#vim /etc/profile #打开文件

#在文件最后添加如下内容
export JAVA_HOME=你jdk解压路径
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile #让环境变量生效

5、检查是否安装完成

java -version
java
javac

有输出表示成功

四、安装Hadoop (Hadoop1)

1、创建目录

cd /home/haiyang/software

mkdir Hadoop

2、将压缩包解压到目录下

tar -zxvf 压缩包 -C 当前创建的目录

3、添加环境变量

查看解压文件

cd /home/haiyang/software/Hadoop/

ls

打开环境变量配置文件

vim /etc/profile

在最后添加如下的内容

export HADOOP_HOME=/home/haiyang/software/Hadoop/hadoop-2.10.1 # 具体位置看个人安装
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # 这里是前面的jdk和这里的hadoop一起的

4、使环境变量生效

source /etc/profile

5、测试是否安装成功

hadoop version

五、为Hadoop集群的配置新建目录

cd /home/haiyang/software/Hadoop
mkdir tmp
mkdir {var,dfs}
mkdir -p dfs/name
mkdir -p dfs/data

Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置_第5张图片

六、Hadoop集群配置(Hadoop1)

配置内容来自(112条消息) hadoop3.3.4集群安装部署_hwbays的博客-CSDN博客
配置中注释内容来自https://blog.csdn.net/ddxshf/article/details/60326681

切换目录

cd /home/haiyang/software/Hadoop/hadoop-3.3.4/etc/hadoop/

①修改hadoop-env.sh文件

vim hadoop-env.sh

export JAVA_HOME=/home/haiyang/software/java/jdk-18.0.2

Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置_第6张图片

②修改core-site.xml,在文件的configrue标签内加入以下内容

vim core-site.xml

 
 <property>
     <name>hadoop.tmp.dirname>
 <value>/home/haiyang/software/Hadoop/tmpvalue>
 property>


 <property>
     <name>fs.default.namename>
     <value>hdfs://Hadoop1:9000value>
 property>
 
 
 <property>
     <name>hadoop.http.staticuser.username>
     <value>haiyangvalue>
 property>

③修改hdfs-site.xml文件,在文件的configrue标签内加入以下内容

vim hdfs-site.xml


 <property>
<name>dfs.name.dirname>
   <value>/home/haiyang/software/Hadoop/dfs/namevalue>
   <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.description>
property>


<property>
   <name>dfs.data.dirname>
   <value>/home/haiyang/software/Hadoop/dfs/datavalue>
   <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.description>
property>

<property>
   <name>dfs.namenode.checkpoint.dirname>
   <value>/home/haiyang/software/Hadoop/dfs/secondaryvalue>
property>


<property>
   <name>dfs.replicationname>
   <value>2value>
property>




<property>
   <name>dfs.namenode.http-addressname>
   <value>Hadoop1:50070value>
property>


<property>
   <name>dfs.namenode.secondary.http-addressname>
   <value>Hadoop3:50090value>
property>


  <property>
    <name>dfs.namenode.servicerpc-addressname>
    <value>Hadoop1:8022value>
  property>
  
  
  <property>
    <name>dfs.https.addressname>
    <value>Hadoop1:50470value>
  property>
   
  <property>
    <name>dfs.https.portname>
    <value>50470value>
  property>




④修改workers文件,删除localhost,加入节点信息,每个节点占一行

vim workers

Hadoop1
Hadoop2
Hadoop3

⑤修改mapred-env.sh文件,在文件末尾添加JDK路径

export JAVA_HOME=/home/haiyang/software/java/jdk-18.0.2

⑥修改mapred-site.xml文件,在文件的configrue标签内加入以下内容


<property>
    <name>mapred.job.trackername>
    <value>Hadoop1:49001value>
property>
 
 
 
 
<property>
      <name>mapred.local.dirname>
       <value>/home/hadoop/varvalue>
property>
 
<property>
       <name>mapreduce.framework.namename>
       <value>yarnvalue>
property>

⑦修改yarn-env.sh,在文件末尾添加

export JAVA_HOME=/home/haiyang/software/java/jdk-18.0.2

⑧修改yarn-site.xml,在文件的configrue标签内加入以下内容

<property>
        <name>yarn.resourcemanager.hostnamename>
        <value>Hadoop1value>
   property>
 
   <property>
        <description>The address of the applications manager interface in the RM.description>
        <name>yarn.resourcemanager.addressname>
        <value>${yarn.resourcemanager.hostname}:8032value>
   property>
 
   <property>
        <description>The address of the scheduler interface.description>
        <name>yarn.resourcemanager.scheduler.addressname>
        <value>${yarn.resourcemanager.hostname}:8030value>
   property>
 
   <property>
        <description>The http address of the RM web application.description>
        <name>yarn.resourcemanager.webapp.addressname>
        <value>${yarn.resourcemanager.hostname}:8088value>
   property>
 
   <property>
        <description>The https adddress of the RM web application.description>
        <name>yarn.resourcemanager.webapp.https.addressname>
        <value>${yarn.resourcemanager.hostname}:8090value>
   property>
 
   <property>
        <name>yarn.resourcemanager.resource-tracker.addressname>
        <value>${yarn.resourcemanager.hostname}:8031value>
   property>
 
   <property>
        <description>The address of the RM admin interface.description>
        <name>yarn.resourcemanager.admin.addressname>
        <value>${yarn.resourcemanager.hostname}:8033value>
   property>
 
   <property>
        <name>yarn.nodemanager.aux-servicesname>
        <value>mapreduce_shufflevalue>
   property>
 
   <property>
        <name>yarn.scheduler.maximum-allocation-mbname>
        <value>1024value>
        <discription>每个节点可用内存,单位MB,默认8182MBdiscription>
   property>
 
   <property>
        <name>yarn.nodemanager.vmem-pmem-rationame>
        <value>2.1value>
   property>
 
   <property>
        <name>yarn.nodemanager.resource.memory-mbname>
        <value>1024value>
   property>
   <property>
        <name>yarn.nodemanager.vmem-check-enabledname>
        <value>falsevalue>
   property>

切换目录

cd /home/haiyang/software/Hadoop/hadoop-3.3.4/sbin

⑨修改start-dfs.sh,stop-dfs.sh文件,在文件头部添加以下配置

HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root

⑩修改start-yarn.sh,stop-yarn.sh文件,在文件头部添加以下配置

RN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
YARN_RESOURCEMANAGER_USER=root

七、 分发配置(Hadoop1)

这里我们使用rsync进行配置分发,节约配置成本(这样配置分发的前提是节点之间已经做好了免密登录)

在Hadoop1上

cd /home/haiyang/software/

rsync -rvl Hadoop root@Hadoop2:/home/haiyang/software/ #对Hadoop2分发 Hadoop文件

rsync -rvl Hadoop root@Hadoop3:/home/haiyang/software/

rsync -rvl java root@Hadoop2:/home/haiyang/software/ #对Hadoop2分发 java文件

rsync -rvl java root@Hadoop3:/home/haiyang/software/ #对Hadoop3分发 java文件

rsync /etc/profile root@Hadoop3:/etc/profile #分发hadoop、jdk环境变量配置文件

使(Hadoop1、Hadoop2、Hadoop3)中环境变量生效

都执行 source /etc/profile

八、启动服务测试

①hadoop初始化(只需在主服务器执行即可(NameNode节点))

cd /home/haiyang/software/Hadoop/hadoop-3.3.4/bin
./hadoop namenode -format
初始化成功,结果如下
Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置_第7张图片

②启动hadoop

cd  /home/haiyang/software/Hadoop/hadoop-3.3.4/sbin/
./start-all.sh

Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置_第8张图片

./stop-all.sh

九、熟悉 hdfs命令

(我的这个时候运行hadoop提示没有这个命令,没理解为啥没有,然后执行了一次 source /etc/profile 恢复正常)
(1)ls 显示目录下的所有文件或者文件夹

使用方法: hadoop fs -ls [uri形式目录]
示例: hadoop fs –ls / 显示根目录下的所有文件和目录
显示目录下的所有文件可以加 -R 选项
示例: hadoop fs -ls -R /
(2) cat 查看文件内容

使用方法:hadoop fs -cat URI [URI …]
示例: hadoop fs -cat /in/test2.txt

(3) mkdir 创建目录

使用方法:hadoop fs -mkdir [uri形式目录]
示例: hadoop fs –mkdir /test
创建多级目录 加上 –p
示例: hadoop fs –mkdir -p /a/b/c

(4) rm 删除目录或者文件

使用方法:hadoop fs -rm [文件路径] 删除文件夹加上 -r
示例: hadoop fs -rm /test1.txt
删除文件夹加上 -r,
示例:hadoop fs -rm -r /test

(2)put 复制文件
将文件复制到hdfs系统中,也可以是从标准输入中读取文件,此时的dst是一个文件
使用方法: hadoop fs -put …
示例:Hadoop fs -put /usr/wisedu/temp/test1.txt /
从标准输入中读取文件:hadoop fs -put -/in/myword

你可能感兴趣的:(hadoop,大数据,分布式)