觉得有帮助的,请多多支持博主,点赞关注哦~

文章目录

  • Hadoop完全分布式集群搭建
    • 一、新建虚拟机
    • 二、规划集群与服务
      • 1、逻辑结构
      • 2、物理结构
      • 3、总结构
    • 三、配置集群
      • 1、主节点基础网络配置
        • 1.1、配置固定ip地址
        • 1.2、修改主机名
        • 1.3、配置dns
        • 1.4、配置 ip 地址和主机名映射
        • 1.5、关闭防火墙
        • 1.6、重启网卡
      • 2、新建用户及权限配置
        • 2.1、创建目录
        • 2.2、创建用户组和用户
        • 2.3、修改权限
        • 2.4、切换用户
      • 3、配置安装JDK
        • 3.1、安装jdk
        • 3.2、配置环境变量并检查
      • 4、根据主节点hadoop01克隆两份系统
      • 5、修改各个从节点网络配置
      • 6、主从节点实现免密登录
        • 6.1、生成密钥
        • 6.2、复制公钥
        • 6.3、验证免密登录
      • 7、同步集群时间
        • 7.1、主节点配置时间服务器
          • 7.1.1、检查NTP包是否安装
          • 7.1.2、安装NTP服务
          • 7.1.3、设置时间配置文件
          • 7.1.4、设置BIOS与系统时间同步
          • 7.1.5、启动ntp服务并测试
        • 7.2、从节点配置时间与主节点时间同步
          • 7.2.1、 先关闭非时间服务器节点(这里是从节点)的ntpd服务
          • 7.2.2、配置与主节点同步
          • 定时同步
      • 8、主节点配置安装Hadoop
        • 8.1、安装
        • 8.2、配置
      • 9、修改主节点配置文件
        • 9.1、创建所需文件目录
        • 9.2、hadoop-env.sh
        • 9.3、core-site.xml
        • 9.4、hdfs-site.xml
        • 9.5、mapred-site.xml
        • 9.6、 yarn-site.xml
        • 9.7、msater
        • 9.8、slaves
      • 10、分发hadoop2.7到各个从节点
        • 10.1、手动方式
        • 10.2、shell脚本方式
    • 四、启动集群(主节点执行)
      • 1、初始化
      • 2、启动hdfs服务
      • 3、启动yarn服务
      • 4、启动任务历史服务器
      • 5、集群机器查看
        • 5.1、hadoop01
        • 5.2、hadoop02
        • 5.3、hadoop03
      • 6、查看结果
        • 6.1、NameNode
        • 6.2、SecondaryNameNode
        • 6.3、ResourceManager
        • 6.4、NodeManager
        • 6.5、JobHistoryServer
    • 五、基准测试
      • 1、写入测试
      • 2、读取测试
      • 3、清理测试数据

Hadoop完全分布式集群搭建

一、新建虚拟机

没啥说的,注意分区即可,我这里是演示,配置不高。

  1. /boot:300M足够
  2. /swap:一般为内存的两倍,2048M
  3. /home:2000M足够
  4. /:剩余空间

二、规划集群与服务

1、逻辑结构

2、物理结构

3、总结构

  1. 192.168.153.134:Hadoop01(主节点):

    包括NameNode、DataNode、ResourceManager、NodeManager、JobHistoryServer

  2. 192.168.153.135:Hadoop02(从节点):

    包括SecondaryNameNode、DataNode、NodeManager

  3. 192.168.153.136:Hadoop03(从节点):

    包括NameNode、DataNode

三、配置集群

1、主节点基础网络配置

1)配置固定ip地址
2)配置主机名
3)配置主机名和ip地址映射
4)关闭防火墙
5)ping:宿主机和insternt,保证网络通讯正常

1.1、配置固定ip地址

# 配置固定ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33# 参考配置
IPADDR=192.168.153.134
NETMASK=255.255.255.0
GATEWAY=192.168.153.2
DNS1=114.114.114.114
DNS2=8.8.8.8

1.2、修改主机名

# 一、
# 修改network,修改主机名
vi /etc/sysconfig/network# 参考配置
NETWORKING=yes
HOSTNAME=hadoop01
# 二、
# 修改主机名
vi /etc/hostname# 参考配置
hadoop01

1.3、配置dns

# 修改resolv.conf,配置dns
vi /etc/resolv.conf# 参考配置
nameserver 114.114.114.114
nameserver 8.8.8.8

1.4、配置 ip 地址和主机名映射

# 配置 ip 地址和主机名映射
vi /etc/hosts# 参考配置
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.153.134 hadoop01
192.168.153.135 hadoop02
192.168.153.136 hadoop03

1.5、关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service# 相关命令
查看防火墙状态:firewall-cmd --state
关闭防火墙: systemctl stop firewalld.service
开启防火墙: systemctl start firewalld.service
禁止防火墙开机启动:systemctl disable firewalld.service

1.6、重启网卡

service network restart

2、新建用户及权限配置

2.1、创建目录

# -p递归创建,在存放临时文件的opt文件夹中分别创建software和model
mkdir -p /opt/software
mkdir -p /opt/model

2.2、创建用户组和用户

以后操作需要使用新建用户操作,不要直接使用root用户。

# 创建用户组 -g:指定组id
groupadd -g 1111 hadoopenv
# 创建用户 -m:自动创建家目录 -u:指定用户id -g:指定所属组
useradd -m -u 1111 -g hadoopenv hadoopenv
# 修改用户密码
passwd hadoopenv
# 可以查看组和用户
cat /etc/group
cat /etc/passwd

2.3、修改权限

需要给新建用户赋予root权限,才能完成一系列操作。

# 首先查看一下配置文件权限为440
ll /etc/sudoers
# 440是不能修改的,需要修改文件权限大一些,777,反正一会儿要改回来
chmod 777 /etc/sudoers
# 修改配置文件
vi /etc/sudoers
# 加入,可以使用G直接查看文末,进行添加
hadoopenv   ALL=(ALL)  NOPASSWD:ALL
# 将文件权限改回440,安全
chmod 440 /etc/sudoers

2.4、切换用户

# 切换到刚创建的用户
su hadoop01
# 进入opt目录
cd /opt
# 使用sudo进行目录拥有者修改
# sudo就是root权限
# 可以使用id修改
sudo chown -R 1111:1111 model
# 也可以使用名称修改
sudo chown -R 1111:1111 software

3、配置安装JDK

3.1、安装jdk

# 进入software目录
cd /opt/software
# 上传本地文件命令:rz
# 如果无法使用,则需要安装:sudo yum install lrzsz -y
rz
# 解压jdk到model目录下,-C:指定目录
tar -zxvf jdk -C ../model
# 进入model目录
cd ../model
# 修改jdk名称
mv jdk jdk1.8

3.2、配置环境变量并检查

# 配置环境变量
sudo vim /etc/profile# 参考配置:
# 可以使用G,到末尾添加
export JAVA_HOME=/opt/model/jdk1.8
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin# 使配置文件生效
source /etc/profile# 查看配置是否成功
java -version
echo $JAVA_HOME
which java

4、根据主节点hadoop01克隆两份系统

 将hadoop01先关机,然后鼠标右击管理->克隆->创建完整克隆->填写名称、选择存放位置即可

5、修改各个从节点网络配置

# 修改两个从节点ip分别为
192.168.153.135
192.168.153.136# 修改两个主机名分别为
hadoop02
hadoop03# 重启
reboot# 连接Xshell

6、主从节点实现免密登录

6.1、生成密钥

# 三台机器都要操作
[hadoopenv@hadoop01 ~]$ ssh-keygen -t rsa

6.2、复制公钥

# 将 hadoop01 的公钥写到本机和远程机器的 ~/ .ssh/authorized_keys 文件中(另外两台机器上需要做同样的动作)
[hadoopenv@hadoop01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop01
[hadoopenv@hadoop01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop02
[hadoopenv@hadoop01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop03

6.3、验证免密登录

ssh hadoop01
ssh hadoop02
ssh hadoop03

7、同步集群时间

7.1、主节点配置时间服务器

7.1.1、检查NTP包是否安装
[hadoopenv@hadoop01 ~]$ rpm -qa | grep ntp
7.1.2、安装NTP服务
[hadoopenv@hadoop01 ~]$ sudo yum install ntp -y
7.1.3、设置时间配置文件
[hadoopenv@hadoop01 ~]$ sudo vi /etc/ntp.conf# 参考配置:# 修改一(设置本地网络上的主机不受限制)
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 为
restrict 192.168.239.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 为
#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
7.1.4、设置BIOS与系统时间同步
[hadoopenv@hadoop01 ~]$ sudo vi /etc/sysconfig/ntpd# 参考配置:
# Command line options for ntpd
SYNC_HWCLOCK=yes
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
7.1.5、启动ntp服务并测试
# 启动ntp服务
[hadoopenv@hadoop01 ~]$ sudo systemctl start ntpd# 查看ntp状态
[hadoopenv@hadoop01 ~]$ systemctl status ntpd● ntpd.service - Network Time ServiceLoaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)Active: active (running) since 日 2020-02-16 19:14:17 CST; 7s agoProcess: 32513 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 32514 (ntpd)CGroup: /system.slice/ntpd.service└─32514 /usr/sbin/ntpd -u ntp:ntp -u ntp:ntp -p /var/run/ntpd.pid -g# 设置为开机自启
[hadoopenv@hadoop01 ~]$ sudo systemctl enable ntpd.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.# 测试
[hadoopenv@hadoop01 ~]$  ntpstatsynchronised to local net (127.127.1.0) at stratum 11time correct to within 7948 mspolling server every 64 s[hadoopenv@hadoop01 ~]$ sudo ntpq -premote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.          10 l   35   64    1    0.000    0.000   0.000
[hadoopenv@hadoop01 ~]$

7.2、从节点配置时间与主节点时间同步

7.2.1、 先关闭非时间服务器节点(这里是从节点)的ntpd服务
# 关闭ntp服务
[hadoopenv@hadoop02 ~]$ sudo systemctl stop ntpd.service# 关闭开机自启
[hadoopenv@hadoop02 ~]$ sudo systemctl disable ntpd.service
7.2.2、配置与主节点同步
  1. 手动同步

    [hadoopenv@hadoop02 ~]$ sudo ntpdate hadoop01
    24 Nov 11:25:13 ntpdate[2878]: step time server 192.168.239.125 offset 24520304.363894 sec
    [hadoopenv@hadoop02 ~]$ date
    2020年 11月 24日 星期二 11:25:20 CST
    
  2. 定时同步
    # 查看从节点的定时任务
    [hadoopenv@hadoop02 ~]$ sudo crontab -l
    [hadoopenv@hadoop03 ~]$ sudo crontab -l # 添加定时任务
    [hadoopenv@hadoop02 ~]$ sudo crontab -e
    [hadoopenv@hadoop03 ~]$ sudo crontab -e# 参考配置:
    # 在其他机器配置10分钟与时间服务器同步一次
    */10 * * * * /usr/sbin/ntpdate hadoop01
    

8、主节点配置安装Hadoop

8.1、安装
# 与jdk相同,不解释了
cd /opt/software
rz
tar -zxvf hadoop -C ../model
8.2、配置
# 修改环境变量
sudo vim /etc/profile# 参考配置:
export JAVA_HOME=/opt/model/jdk1.8
export CLASSPATH=.:$JAVA_HOME/lib
export HADOOP_HOME=/opt/model/hadoop-2.7.7
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin# 使配置生效
source /etc/profile

9、修改主节点配置文件

9.1、创建所需文件目录
[hadoopenv@hadoop01 hadoop-2.7.7]$ mkdir /opt/model/hadoop-2.7.7/tmp
[hadoopenv@hadoop01 hadoop-2.7.7]$ mkdir -p /opt/model/hadoop-2.7.7/dfs/namenode_data
[hadoopenv@hadoop01 hadoop-2.7.7]$ mkdir -p /opt/model/hadoop-2.7.7/dfs/datanode_data
[hadoopenv@hadoop01 hadoop-2.7.7]$ mkdir -p /opt/model/hadoop-2.7.7/checkpoint/dfs/cname
9.2、hadoop-env.sh
exoprt JAVA_HOME=/opt/model/jdk1.8

9.3、core-site.xml
<configuration><property><!--用来指定hdfs的老大,namenode的地址--><name>fs.defaultFS</name><value>hdfs://hadoop01:9000</value></property>  <property><!--用来指定hadoop运行时产生文件的存放目录-->   <name>hadoop.tmp.dir</name><value>file:///opt/model/hadoop-2.7.7/tmp</value></property><property><!--设置缓存大小,默认4kb--><name>io.file.buffer.size</name><value>4096</value></property>
</configuration>
9.4、hdfs-site.xml
<configuration><property><!--数据块默认大小128M--><name>dfs.block.size</name><value>134217728</value></property><property><!--副本数量,不配置的话默认为3--><name>dfs.replication</name> <value>3</value></property><property><!--定点检查--> <name>fs.checkpoint.dir</name><value>file:///opt/model/hadoop-2.7.7/checkpoint/dfs/cname</value></property><property><!--namenode节点数据(元数据)的存放位置--><name>dfs.name.dir</name> <value>file:///opt/model/hadoop-2.7.7/dfs/namenode_data</value></property><property><!--datanode节点数据(元数据)的存放位置--><name>dfs.data.dir</name> <value>file:///opt/model/hadoop-2.7.7/dfs/datanode_data</value></property><property><!--指定secondarynamenode的web地址--><name>dfs.namenode.secondary.http-address</name> <value>hadoop02:50090</value></property><property><!--hdfs文件操作权限,false为不验证--><name>dfs.permissions</name> <value>false</value></property>
</configuration>
9.5、mapred-site.xml
<configuration><property>  <!--指定mapreduce运行在yarn上--><name>mapreduce.framework.name</name><value>yarn</value></property><property><!--配置任务历史服务器IPC--><name>mapreduce.jobhistory.address</name><value>hadoop01:10020</value></property><property><!--配置任务历史服务器web-UI地址--><name>mapreduce.jobhistory.webapp.address</name><value>hadoop01:19888</value></property>
</configuration>
9.6、 yarn-site.xml
<configuration><property><!--指定yarn的老大resourcemanager的地址--><name>yarn.resourcemanager.hostname</name><value>hadoop01</value></property><property><name>yarn.resourcemanager.address</name><value>hadoop01:8032</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>hadoop01:8088</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>hadoop01:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>hadoop01:8031</value></property><property><name>yarn.resourcemanager.admin.address</name><value>hadoop01:8033</value></property><property><!--NodeManager获取数据的方式--><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><!--开启日志聚集功能--><name>yarn.log-aggregation-enable</name><value>true</value></property><property><!--配置日志保留7天--><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property>
</configuration>
9.7、msater
[hadoopenv@hadoop01 hadoop]$ vim master
hadoop01
9.8、slaves
hadoop01
hadoop02
hadoop03

10、分发hadoop2.7到各个从节点

注意:分发后,需要在从节点分别配置一下Hadoop的环境变量

10.1、手动方式

# 将安装包分发到hadoop02
[hadoopenv@hadoop01 hadoop]$ sudo scp -r /opt/model/hadoop-2.7.7/ hadoopenv@hadoop02:/opt/model
或
[hadoopenv@hadoop01 hadoop]$ sudo scp -r /opt/model/hadoop-2.7.7/ hadoop02:/opt/model# 将安装包分发到hadoop03
[hadoopenv@hadoop01 hadoop]$ sudo scp -r /opt/model/hadoop-2.7.7/ hadoopenv@hadoop03:/opt/model
或
[hadoopenv@hadoop01 hadoop]$ sudo scp -r /opt/model/hadoop-2.7.7/ hadoop03:/opt/model

10.2、shell脚本方式

cp-config.sh

# cp-config.sh
#!/bin/bash
# 节点间复制文件
# 首先判断参数是否存在
args=$#
if [ args -eq 0 ];thenecho "no args"exit 1
fi
# 获取文件名称
p1=$1
fname=$(basename $p1)
echo faname=$fname
# 获取上级目录到绝对路径
pdir=$(cd $(dirname $p1);pwd -P)
echo pdir=$pdir
# 获取当前用户名称
user=$(whoami)
# 循环分发
for(( host=2;host<4;host++ ));doecho "------hadoop0$host------"scp -r $pdir/$fname $user@hadoop0$host:$pdir
done
echo "------分发完成------"
执行命令:[hadoopenv@hadoop01 model]$ ./cp_config.sh /opt/model/hadoop-2.7.7/

四、启动集群(主节点执行)

hadoop01 上启动 Hadoop集群。此时 hadoop02hadoop03 上的相关服务也会被启动

1、初始化

# 第一次执行的时候一定要格式化文件系统,不要重复执行
[hadoopenv@hadoop01 ~]$ hdfs namenode -format

2、启动hdfs服务

[hadoopenv@hadoop01 ~]$ start-dfs.sh
[hadoopenv@hadoop01 ~]$ jps

3、启动yarn服务

[hadoopenv@hadoop01 ~]$ start-yarn.sh
[hadoopenv@hadoop01 ~]$ jps

4、启动任务历史服务器

[hadoopenv@hadoop01 ~]$ mr-jobhistory-daemon.sh start historyserver
[hadoopenv@hadoop01 ~]$ jps

5、集群机器查看

5.1、hadoop01

5.2、hadoop02

5.3、hadoop03

6、查看结果

6.1、NameNode

http://192.168.153.134:50070

6.2、SecondaryNameNode

http://192.168.153.135:50090

6.3、ResourceManager

http://192.168.153.134:8088

6.4、NodeManager

http://192.168.153.134:8042

6.5、JobHistoryServer

http://192.168.153.134:19888

五、基准测试

1、写入测试

[hadoopenv@hadoop01 mapreduce]$ hadoop jar /opt/model/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.7-tests.jar TestDFSIO -write -nrFiles 10 -size 100MB

可直接进入web端查看。

50070查看新生成的目录,或19888查看相应的日志

2、读取测试

[hadoopenv@hadoop01 mapreduce]$ hadoop jar /opt/model/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.7-tests.jar TestDFSIO -read -nrFiles 10 -size 100MB

可直接进入web端查看。

50070查看新生成的目录,或19888查看相应的日志

3、清理测试数据

[hadoopenv@hadoop01 mapreduce]$ hadoop jar /opt/model/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.7-tests.jar TestDFSIO -clean

觉得有帮助的,请多多支持博主,点赞关注哦~

Hadoop完全分布式集群总结相关推荐

  1. hadoop完全分布式集群群起

    hadoop完全分布式集群群起 1.配置slaves 2. 启动集群 1.配置slaves [xuzhenchao@hadoop102 hadoop-2.7.5]$ vim slaves 在文件中增加 ...

  2. Hadoop伪分布式集群的安装部署

    Hadoop伪分布式集群的安装部署Hadoop伪分布式集群的安装部署 首先可以为Linux虚拟机搭建起来的最初状态做一个快照,方便后期搭建分布式集群时多台Linux虚拟机的准备. 一.如何为虚拟机做快 ...

  3. 大数据开发技术课程报告(搭建Hadoop完全分布式集群操作集群)

    文章目录 大数据开发技术课程报告内容及要求 一. 项目简介和实验环境 二. 虚拟机的各项准备工作 三. 安装JDK并配置环境变量 四. 安装Hadoop并配置环境变量 五. 配置Hadoop完全分布式 ...

  4. 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现...

    『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现 1.基本设定和软件版本 主机名 ip 对应角色 mas ...

  5. HADOOP 伪分布式集群搭建

    一 linux 环境的搭建 由于笔者这里使用的是vmware 虚拟机 采用centos7 linux 操作系统进行搭建,所以一下示例均以centos7进行示例 1.  搭建vmware 虚拟机 (1) ...

  6. 大数据开发·关于虚拟机Hadoop完全分布式集群搭建教程

    hadoop完全分布式集群搭建 一.搭建准备 1.安装VMware虚拟机 2.Xshell 7 远程客户端及Xftp 7安装 3.搭建模板虚拟机hadoop100 配置虚拟机网络 为虚拟机普通用户配置 ...

  7. linux 部署Hadoop完全分布式集群教程

    一.准备工作 1.本次任务需要三台虚拟机,主机名分别为Master.Slave01.Slave02先在Master上安装好jdk和Hadoop(安装教程可以参考这两篇文章)然后为了简便我们直接克隆两台 ...

  8. Linux 部署Hadoop伪分布式集群教程

    首先:我们需要下载一些关于Hadoop伪分布式集群需要的工具与tar包 链接: https://pan.baidu.com/s/1oUw1jDCxfghWsnaWauSHKg 提取码:6s5a 接下来 ...

  9. Hadoop完全分布式集群搭建详细图文教程

    本文所使用的环境及版本: CentOS Linux release 7.9.2009 (Core) jdk1.8.0_291 hadoop-3.2.2 一.安装模板机 1.安装CentOS 7.9并配 ...

最新文章

  1. 使用Python,Opencv进行二维直方图的计算及绘制
  2. 理解动态语言inline cache优化
  3. [UE4]C++中extern关键字浅谈
  4. 为什么人类的大脑认为数学“美”?
  5. 机器学习中用到的概率知识_山顶洞人学机器学习之——几种常见的概率分布
  6. netty : io.netty.handler.codec.TooLongFrameException
  7. Subversion for Windows 相关工具
  8. java虚拟机有什么作用_java虚拟机有什么用
  9. 超好用的两行java代码能获取几乎所有文件的contentType,返回前端能在浏览器上直接打开
  10. _beginThread如何传递多个参数
  11. 忘记卡巴斯基内置账户密码 / 取消卡巴斯基密码保护
  12. Blender学习-考拉课程学习记录
  13. 关于人像后期处理基础的相关技术步骤
  14. Apollo 2.0 传感器标定方法 使用指南(官方)
  15. centos7安装XtraBackup 2.4.4
  16. C语言规范:C89、C90、C95、C99
  17. 鼎捷ERP--出纳、应收、应付结算分享
  18. 无线路由器wps一键加密设置技巧 WPS加密设置图文教程
  19. 我的新西兰打工旅行签证(Working Holiday Visa)申请之路
  20. 山大计算机自考,2021年4月山东大学自考专业一览表

热门文章

  1. 如何挣更多钱呢?提高你的编程艺术!
  2. wsl无网络连接(转载)
  3. 计算机课ps软件,电脑上的ps软件叫什么
  4. scala利用akka框架封装数据库操作api微服项目
  5. 网络流中最大流和最小割算法
  6. 利用stm32f103c8t6实现对WS2812的控制(从硬件出发)
  7. 解决云服务器上go-cqhttp扫码登录QQ失败问题
  8. 六年级计算机考试总结,六年级计算机考试卷.doc
  9. 程序员该如何有效的找工作?
  10. 最新n1盒子openwr固件