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

这篇具有很好参考价值的文章主要介绍了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 安装配置

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

hostnamectl set-hostname Hadoop1;

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

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

5、网络设置

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

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

其中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 安装配置

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 安装配置

六、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 安装配置

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

vim core-site.xml

 <!--hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中。-->
 <property>
     <name>hadoop.tmp.dir</name>
 <value>/home/haiyang/software/Hadoop/tmp</value>
 </property>

<!--fs.default.name 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。HDFS和MapReduce组件都需要它,这就是它出现在core-site.xml文件中而不是hdfs-site.xml文件中的原因。-->
 <property>
     <name>fs.default.name</name>
     <value>hdfs://Hadoop1:9000</value>
 </property>
 
 <!-- -->
 <property>
     <name>hadoop.http.staticuser.user</name>
     <value>haiyang</value>
 </property>

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

vim hdfs-site.xml

<!--dfs.namenode.name.dir 元数据存储目录 这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。 -->
 <property>
<name>dfs.name.dir</name>
   <value>/home/haiyang/software/Hadoop/dfs/name</value>
   <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>

<!--dfs.datanode.data.dir 块存储目录 这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值hadoop.tmp.dir, 这 个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆盖。 -->
<property>
   <name>dfs.data.dir</name>
   <value>/home/haiyang/software/Hadoop/dfs/data</value>
   <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.dir</name>
   <value>/home/haiyang/software/Hadoop/dfs/secondary</value>
</property>

<!--dfs.replication 块数  它决定着系统里面的文件块的数据备份个数。对于一个实际的应用,它 应该被设为3(这个数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的可靠性(系统故障时,也许会造成数据丢失)。在单机和单机伪分布模式下,将此值修改为1。-->
<property>
   <name>dfs.replication</name>
   <value>2</value>
</property>

<!-- 下面指定Hadoop辅助名称节点主机配置 -->

<!-- 配置namenode启动主机ip地址和端口-->
<property>
   <name>dfs.namenode.http-address</name>
   <value>Hadoop1:50070</value>
</property>

<!--secondarynamenode启动主机ip地址和端口,对这个修改可以决定secondarynamenode的位置-->
<property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>Hadoop3:50090</value>
</property>

<!--namenode.servicerpc启动主机ip地址和端口-->
  <property>
    <name>dfs.namenode.servicerpc-address</name>
    <value>Hadoop1:8022</value>
  </property>
  
  <!--dfs.https启动主机ip地址和端口-->
  <property>
    <name>dfs.https.address</name>
    <value>Hadoop1:50470</value>
  </property>
   <!--dfs.https.port启动端口-->
  <property>
    <name>dfs.https.port</name>
    <value>50470</value>
  </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标签内加入以下内容

<!--mapred.job.tracker JobTracker的主机(或者IP)和端口。-->
<property>
    <name>mapred.job.tracker</name>
    <value>Hadoop1:49001</value>
</property>
 
 <!--mapreduce.jobtracker.system.dir MapReduce在HDFS上存储文件的位置。-->
 
 <!--mapreduce.cluster.local.dir MapReduce的缓存数据存储在文件系统中的位置。-->
<property>
      <name>mapred.local.dir</name>
       <value>/home/hadoop/var</value>
</property>
 
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>

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

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

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

<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>Hadoop1</value>
   </property>
 
   <property>
        <description>The address of the applications manager interface in the RM.</description>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
   </property>
 
   <property>
        <description>The address of the scheduler interface.</description>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
   </property>
 
   <property>
        <description>The http address of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
   </property>
 
   <property>
        <description>The https adddress of the RM web application.</description>
        <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>
        <description>The address of the RM admin interface.</description>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
   </property>
 
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>
 
   <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>1024</value>
        <discription>每个节点可用内存,单位MB,默认8182MB</discription>
   </property>
 
   <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
   </property>
 
   <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1024</value>
   </property>
   <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
   </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 安装配置

②启动hadoop

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

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

./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文章来源地址https://www.toymoban.com/news/detail-410609.html

到了这里,关于Ubuntu22.04 Hadoop3.3.4 jdk18.02 安装配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 双系统ubuntu18.04如何更新到22.04

    将双系统中的Ubuntu 18.04更新到22.04,按照以下步骤操作: 1.打开终端并更新系统,使用以下命令: 2.确保系统是最新的,然后备份数据,以防万一。 3.执行以下命令,安装 update-manager-core: 4.执行以下命令,将Ubuntu 18.04升级到20.04: 如果没有升级到20.04,请参考以下内容: 1.确

    2024年02月04日
    浏览(77)
  • Ubuntu安装腾讯会议——Ubuntu16.04/18.04/20.04/22.04

    通过以下教程可以快速的安装腾讯会议,本教程适用于Ubuntu16.04/18.04/20.04/22.04 进入腾讯会议下载官网下载腾讯会议Linux客户端 选择x86_64格式安装包下载 双击deb文件,点击install进行安装 安装成功,可以成功运行

    2024年02月12日
    浏览(98)
  • Ubuntu官方安装微信——Ubuntu16.04/18.04/20.04/22.04

    通过以下教程可以快速的安装官方版微信,本教程适用于Ubuntu16.04/18.04/20.04/22.04 进入微信下载官网下载微信Linux客户端 点击64位下载即可,如果不能下载,使用终端如下命令 双击deb文件,点击install进行安装 安装成功,可以在菜单中点击运行

    2024年02月08日
    浏览(48)
  • Linux基础篇 Ubuntu 22.04的环境安装-02

    目录 一、资料的获取 二、安装虚拟机 三、安装Ubuntu过程 四、注意事项 1.通过官方网站下载 Ubuntu系统下载 | Ubuntu https://cn.ubuntu.com/download 2.下载桌面板即可 3.选择下载的版本   1.创建新的虚拟机 2.选择自定义安装  3.硬件兼容性选项默认即可   4. 选择稍后安装操作系统  5.选

    2024年02月08日
    浏览(45)
  • Ubuntu安装向日葵远程控制——Ubuntu18.04/20.04/22.04

    通过以下教程可以快速的安装向日葵远程控制,本教程适用于Ubuntu18.04/20.04/22.04 进入向日葵远程控制下载官网下载向日葵远程控制Linux客户端 选择图形版本安装包下载,可以看到适用于17.04及以上版本 双击deb文件,点击install进行安装 安装成功,在菜单里可以打开

    2024年02月12日
    浏览(52)
  • 从头搭建Android源码编译环境(Ubuntu 18.04 / 20.04 / 22.04)

    在新安装的Ubuntu上(版本20.04LTS),完成搭建Android源码编译环境步骤如下。 顺带说一句,当前用的比较多的Ubuntu是18.04和20.04,在实际项目中一直在用,可用性和稳定性都没问题。 最新的Ubuntu22.04版本,系统默认的二进制库变化比较大,编译Android源码有问题(实测过,没细研

    2024年02月06日
    浏览(161)
  • ubuntu22.04 安装jdk8,jdk11,jdk17,jdk21 并且便于切换

    您已经创建了一个非常实用的shell函数 setJavaHome 来切换不同版本的JDK环境。这个函数定义了如何根据传入的参数来更改 JAVA_HOME 环境变量,并更新 PATH 环境变量以包含新的 JAVA_HOME 路径。 要在Ubuntu 22.04上安装多个JDK版本并使用这个函数来切换它们,您需要按照以下步骤操作:

    2024年02月04日
    浏览(58)
  • ubuntu22.04离线安装jdk、mysql、redis、mongodb、nginx

    ubuntu22.04离线安装jdk、mysql、redis、mongodb、nginx) 1.1 安装包列表 序号 名称 1 jdk-8u181-linux-x64.tar.gz 1.2 安装方式 2.1 安装包列表 序号 名称 1 net-tools_1.60+git20181103.0eebece-1ubuntu5_amd64.deb 2 unzip_6.0-20ubuntu1.1_amd64.deb 3 g++11.3.zip 4 gcc11.3.zip 5 make_4.3-4.1build1_amd64.deb 2.2 安装方式 3.1 安装包列表

    2024年02月09日
    浏览(51)
  • Ubuntu18.04/20.04/22.04的Apollo8.0软件包安装(免编译)

    本文主要介绍在如何使用软件包(即 deb 包)的方式来安装 Apollo,相对于源码方式安装,软件包安装方式不需要编译,更加快捷。但是对环境的支持比较单一,如果在自定义环境内安装,请移步源码安装方式 1. 安装 Ubuntu Linux 安装 Ubuntu 18.04+ 的步骤,参见 官方安装指南。 完

    2024年02月05日
    浏览(65)
  • Ubuntu 23.04、22.04、20.04、18.04国内源--阿里云、中科大、163、清华更新源(sources.list)

    Ubuntu配置文件位置:/etc/apt/sources.list 需要用root权限: 用vi、gedit、vs code等任何熟悉的编辑工具打开文件进行修改 2种修改方式 1)把原文件中:archive.ubuntu.com,替换为:archive.aliyun.com(或其他更新源网址) 2)直接复制下方的内容,覆盖原文件中的内容即可。 修改完成后,更

    2023年04月22日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包