文章目录

  • Hadoop 环境搭建
    • 1、安装虚拟机
    • 2.安装 Ubuntu 操作系统
    • 3、关闭防火墙
    • 4、 SSH 安装
    • 5、 安装 Xshell 及 Xftp
    • 6、 安装 JDK
    • 7、安装 hadoop
    • 8. 结语

Hadoop 环境搭建

1、安装虚拟机

在一切行动的前提,我们需要先安装好虚拟机,毕竟是供我们学习用的,因此我们需要通过虚拟机利用Linux系统来实现我们的Hadoop环境。

安装虚拟机步骤:
(1)下载 VMware 安装包。到 VMware® Workstation Pro 官网,选择对应的版本 进行下载。本教程选择的版本是 VMware® Workstation 14 Pro。

(2)安装 VMware。双击安装文件,按提示操作至安装完成。

(3)新建虚拟机。打开 VMware 软件,单击主页的【创建新的虚拟机】按钮开始 创建虚拟机,如图 2-1 所示。

单击“自定义(高级)”选项,如图 2-2 所示,并单击【下一步】按钮。 选择“虚拟机硬件兼容性”,默认即可,直接单击【下一步】按钮,如图 2-3 所示。

选择“稍后安装操作系统”,单击【下一步】按钮,如图 2-4 所示。 选择“客户机操作系统”,单击选中“Linux(L)”,如图 2-5 所示,再单击【下 一步】按钮。

设置“虚拟机名称(例如:Ubuntu)”,并选择虚拟机的安装位置,最好选择一个 有空余空间的磁盘分区来安装,如图 2-6 所示,再单击【下一步】按钮。 设置“处理器配置”,保持默认即可,并单击【下一步】按钮,如图 2-7 所示。

分配虚拟机内存(内存建议大于或等于 1024MB),然后单击【下一步】按钮,如 图 2-8 所示。

设置“网络类型”,单击“使用网络地址转换(NAT)”,并单击【下一步】按钮, 如图 2-9 所示。

选择“I/O 控制器类型”,使用默认选项“LSI Logic”,并单击【下一步】按钮, 如图 2-10 所示。

选择“磁盘类型”,使用默认选项“SCSI”,并单击【下一步】按钮,如图 2-11 所示。

选择“磁盘”,选择“创建新虚拟磁盘”,并单击【下一步】按钮,如图 2-12 所 示。

指定“磁盘容量”,建议为 20GB 或更大,并单击【下一步】按钮,如图 2-13 所示。



指定“磁盘文件”,保留默认的位置或单击【浏览】按钮选择其他位置,并单击【下 一步】按钮,如图 2-14 所示。 单击【完成】按钮,完成虚拟机的安装,如图 2-15 所示。

2.安装 Ubuntu 操作系统

虽然Windows和Unix以及Linux都支持Hadoop的开发,但是只有Linux系统是支持Hadoop的生产,因此我们需要利用Linux来配置我们的Hadoop,上面我们已经把虚拟机安装好了,同时在上面也介绍了安装Ubuntu操作系统的一小步步骤,VMware以及Ubuntu的镜像文件都已打包在点我!!

提取码是:rmne

接下来我们就正式进入安装Ubuntu系统的过程:
(1)下载 Ubuntu ISO 镜像文件。到 Ubuntu 官网选择对应的版本进行下载。本教程选择的版本是 ubuntu-16.04.4-desktop-amd64.iso。
(2)打开 VMware Workstation Pro 软件,单击左侧栏的虚拟机(如 Ubuntu),再 单击右侧的“编辑虚拟机设置”,如图 2-16 所示。

选择“CD/DVD(SATA)”,连接选择“使用 ISO 映像文件”,单击【浏览】按钮, 选择下载的 ISO 镜像文件,单击【确定】按钮,如图 2-17 所示。

单击“开启此虚拟机”,然后根据提示安装至完成,如图 2-18 所示。

3、关闭防火墙

如果不关闭 Ubuntu 操作系统的防火墙,会出现以下几种情况。
(1)无法正常访问 Hadoop HDFS 的 Web 管理页面。
(2)会导致后台某些运行脚本(例如后面要学习的 HIVE 程序)出现假死状态。
(3)在删除和增加节点的时候,会让数据迁移处理时间更长,甚至不能正常完成 相关操作。 所以我们要关闭防火墙。关闭防火墙的命令如下。

$ sudo ufw disableFirewall stopped and disabled on system startup

查看防火墙状态,状态为“不活动”,说明防火墙已经关闭。

$ sudo ufw status
Status: inactive

注意:本教程使用的命令以“$”开头时,代表当前用户为普通用户;“#”开头代表 当前用户为 root 用户。命令行中的“$”或者“#”是不需要输入的,例如,“$ sudo ufw status”只需要在终端命令行输入“sudo ufw status”即可。

4、 SSH 安装

SSH 是 Secure Shell 的缩写,它是一种建立在应用层基础上的安全协议。SSH 是目 前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以 有效防止远程管理过程中的信息泄露。

SSH 由客户端(openssh-client)软件和服务端(openssh-server)软件组成。在安 装 SSH 服务时,需要 Ubuntu 操作系统连接互联网。

(1)安装 SSH 客户端软件

Ubuntu 操作系统默认安装有 SSH 客户端软件,通过以下命令查看是否已安装,如 果返回包含“openssh-client”的字样,说明已经安装 SSH 客户端软件。

$ sudo dpkg -l | grep ssh

否则,用以下命令安装。

$ sudo apt-get install openssh-client

(2)安装 SSH 服务端软件

Ubuntu 操作系统默认没有安装 SSH 服务端软件,安装命令如下。

$ sudo apt-get install openssh-server

重启 SSH 服务,命令如下。

$ sudo /etc/init.d/ssh restart

5、 安装 Xshell 及 Xftp

采用 Xshell 可以通过 SSH 协议远程连接 Linux 主机,采用 Xftp 可实现安全地在 UNIX/Linux 和 Windows 之间传输文件。可打开 NetSarang 官网下载最新的 Xshell 及 Xftp 免费版本。本书采用的是 Xshell 6.0 及 Xftp 6.0 免费版本。安装 Xshell 和 Xftp 较简 单,只需要双击安装文件默认安装即可。

利用xftp6可以进行windows与linux文件传输,比如在windows系统安装了jdk1.8要上传到linux系统,则需要用到xftp6,(前提也是xftp6要连接到Linux)

安装 Xshell 及 Xftp可以在上面提供的链接下载,此处再给出链接提取码为:rmne

如果觉得云盘下载实在是太麻烦了,也可以选择在这里下载

安装完 Xshell 及 Xftp 后,打开 Xshell,选中左侧所有会话,单击右键,选择【新建】 -【会话】,如图 2-19 所示。


在连接中,配置名称及主机。其中,主机是上面安装的 Ubuntu 操作系统的 IP 地址, 如图 2-20 所示。

tips:如果要查看 Ubuntu 操作系统的 IP 地址,可采用如下命令。

$ ifconfig

例如,显示如下结果,表示 Ubuntu 操作系统的 IP 地址是“192.168.30.128”。目 前的 IP 地址是自动获取的,建议读者参考相关资料将 IP 地址设置为固定的。

ens160 Link encap:Ethernet HWaddr 00:0c:29:bf:e1:df inet addr:192.168.30.128 Bcast:192.168.30.255 Mask:255.255.255.0

再在 Xshell 会话配置中,配置 Ubuntu 操作系统的登录用户名和密码,单击【连接】 按钮即可开始连接上前面安装好 Ubuntu 操作系统,如图 2-21 所示。

6、 安装 JDK

Hadoop 是基于 Java 语言开发的,运行 Hadoop 需要安装 JDK(Java Development Kit)。
(1)下载安装包并上传到 Linux 系统 JDK 安装包需要在 Oracle 官网下载。本书采用的 JDK 安装包为 jdk-8u171-linux-x64.tar.gz。将安装包下载至 Windows 本地目录下,例如 D:\soft。在 Xshell 软件中,单击上方的绿色小图标,打开 Xftp,如图 2-22 所示。

在弹出的 Xftp 窗口中,把 JDK 的安装包上传到 Ubuntu 系统~目录下,如图 2-23 所示。

上传成功后,在 Ubuntu 操作系统下通过 ls 命令查看,结果如下。

$ ls ~
jdk-8u171-linux-x64.tar.gz

(2)解压安装包到~目录下

$ cd ~
$ tar -zxvf jdk-8u171-linux-x64.tar.gz

(3)建立 JDK 软链接,以方便后续使用

$ ln -s jdk1.8.0_171 jdk

(4)配置 JDK 环境变量

$ vi ~/.bashrc        /*vi 为打开文件命令

在文件内容的末尾添加如下代码(注意:等号两侧不要有空格)。

export JAVA_HOME=~/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
export PATH=${JAVA_HOME}/bin:$PATH

熟悉Linux操作命令的童鞋已经开始操作起来了,当然如果对于这些操作命令不熟悉的同学也不要怕,可以点击这个链接,学习一下Linux的相关操作命令,再接着进入配置环境的操作。
(5)使配置生效

$ source ~/.bashrc

(6)检验是否安装成功

$ java –version

出现如下版本信息表示 JDK 安装成功。

java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

7、安装 hadoop

Hadoop的三种启动模式分别为
1.单机模式(独立模式)(Local或Standalone Mode)
2.伪分布式模式(Pseudo-Distrubuted Mode)
3.全分布式集群模式(Full-Distributed Mode)

对于我们学习使用的话,其实我们只需要配置伪分布式来模拟一个小规模的集群就可以的了。伪分布式其实是完全分布式的一种特例,但它只有一个节点。下面开始安装Hadoop的伪分布式吧!

(1)修改主机名

查看 Ubuntu 操作系统的主机名,参考下面的命令。

$ hostname
hadoop-virtual-machine

为了安装方便和易于记忆,将这台主机的主机名修改为 node1。
用 vi 命令编辑/etc/hostname 文件。

$ sudo vi /etc/hostname

将原有内容删除,添加如下内容。

node1

重启 Ubuntu 操作系统,使修改生效。

$ sudo reboot

(2)映射 IP 地址及主机名

先查看 Ubuntu 操作系统的 IP 地址,可参考 上文配置jdk的教程。比如,这里查到的 IP 地址 是“192.168.30.128”。

修改/etc/hosts 文件。

$ sudo vi /etc/hosts

在文件末尾添加一下内容,下面的 IP 地址根据实际的 IP 地址修改。

192.168.30.128     node1

(3)免密登录设置
如果只需要本机登录别的主机,把本机当作客户端,则在本机安装 SSH 客户端 (openssh-client)软件即可。如果要让别的主机(包括本机自己)登录本机,也就是 说把本机当作服务端,就需要安装 SSH 服务端(openssh-server)软件。Ubuntu 操作 系统默认没有安装 SSH 服务端软件,请参考 2.1.4 进行安装。

登录其他主机时,通常需要输入密码。如果要让普通用户(如 hadoop)无需输入 密码就可以登录集群内的主机,即实现免密登录,通常的做法是在本机创建一个密钥对 (包括公钥和私钥),并将公钥发送给集群内所有的主机进行认证,即可实现免密登录。

伪分布式只有一个节点,本机同时扮演着客户端和服务端的角色。在 SSH 客户端软 件和 SSH 服务端软件都安装好的前提下,进行以下免密登录设置。

(1)生成密钥对

$ ssh-keygen -t rsa

其中,rsa 表示加密算法,键入上面一条命令后连续敲击三次回车键,系统会自动在~/.ssh 目录下生成公钥(id_rsa.pub)和私钥(id_rsa),可通过命令$ ls ~/.ssh 查看。

$ ls ~/.ssh id_rsa id_rsa.pub

(2)追加公钥

我们以本机登录本机自己为例(连接本机),将公钥追加到~/.ssh/authorized_keys 文件中。

$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

通过命令$ ls ~/.ssh 查看,认证文件 authorized_keys 已经生成。读者如果感兴趣, 可以通过 cat 命令查看 authorized_keys 内容是否包含有 id_rsa.pub 的内容。

$ ls ~/.ssh
authorized_keys id_rsa id_rsa.pub

(3)免密登录验证

执行命令 ssh node1,首次登陆需要输入“yes”,第二次登录就不需要输入任何信 息了。注意命令行路径的变化。以下例子免密登录之前的路径是“~/.ssh”,登录后的 路径是“~”。

hadoop@node1:~/.ssh$ ssh node1
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-36-generic x86_64)
* Documentation:    https://help.ubuntu.com
* * Management:     https://landscape.canonical.com
250 packages can be updated.
134 updates are security updates.
Last login: Sat Jul 14 21:19:26 2018 from 192.168.30.128hadoop@node1:~$

用命令$ exit 退出 node1 登录,路径由 “~” 变为了登录前的“~/.ssh”。

hadoop@node1:~$ exit
logout
Connection to node1 closed.
hadoop@node1:~/.ssh$

(4)设置 Hadoop 配置文件

安装 Hadoop 伪分布式模式,总共有 5 个文件需配置,它们分别是 hadoop-env.sh、 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。这些配置文件的路径均 在${HADOOP_HOME}/ etc/hadoop 目录下。

(4_1)配置 hadoop-env.sh

进入 Hadoop 配置文件所在目录,修改 hadoop-env.sh 文件。

$ cd ~/hadoop/etc/hadoop
$ vi hadoop-env.sh

找到 export JAVA_HOME 一行,把行首的#去掉,并按实际修改 JAVA_HOME 的值。

# The java implementation to use.
export JAVA_HOME=/home/hadoop/jdk

注意:JAVA_HOME=/home/hadoop/jdk,其中的 hadoop 为用户名,注意要按实际 修改。

(4_2)配置 core-site.xml

用 vi 命令打开 core-site.xml。

$ vi core-site.xml

参考以下内容进行修改,修改完保存退出。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration><property> <name>fs.defaultFS</name> <value>hdfs://node1:8020</value> <!-- 以上ip 地址或主机名要按实际情况修改 --> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop/tmp</value> </property>
</configuration>

配置说明: fs.defaultFS 属性指定默认文件系统的 URI 地址,一般格式为“hdfs://host:port”。 其中,host 可以设置为 Ubuntu 操作系统的 IP 地址以及主机名称中的任意一个,这里 设置为主机名;port 如果不配置,则使用默认端口号 8020。

hadoop.tmp.dir 指定 Hadoop 的临时工作目录,设置为/home/<用户 名>/hadoop/tmp,<用户名>请根据实际情况修改。注意:一定要配置 hadoop.tmp.dir, 否则默认的 tmp 目录在/tmp 下,重启 Ubuntu 操作系统时 tmp 目录下的 dfs/name 文件 夹会被删除,造成没有 NameNode。

(4_3)配置 hdfs-site.xml

用 vi 命令打开 hdfs-site.xml。

$ vi hdfs-site.xml

修改成以下内容,保存退出。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property>
</configuration>

dfs.replication 的默认值是 3,因为伪分布式只有一个节点,所以值设置为 1。

(4_4)配置 mapred-site.xml

复制 mapred-site.xml.template,生成 mapred-site.xml。

cp mapred-site.xml.template mapred-site.xml

用 vi 命令打开 mapred-site.xml。

$ vi mapred-site.xml

修改成以下内容,保存退出。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>mapreduce.framework.name</name>                   <value>yarn</value> </property>
</configuration>

mapreduce.framework.name 默认值为 local,设置为 yarn,让 MapReduce 程序运 行在 YARN 框架上。

(4_5)配置 yarn-site.xml

用 vi 命令打开 yarn-site.xml。

$ vi yarn-site.xml

修改成以下内容,保存退出。

<?xml version="1.0"?>
<configuration><property> <name>yarn.resourcemanager.hostname</name>                  <value>node1</value>  <!-- 以上主机名或IP 地址按实际情况修改 --> </property> <property> <name>yarn.nodemanager.aux-services</name>                  <value>mapreduce_shuffle</value> </property>
</configuration>

yarn.resourcemanager.hostname 属性为资源管理器的主机,设置为 Ubuntu 操作 系统的主机名或 IP 地址。

yarn.nodemanager.aux-services 属性为节点管理器的辅助服务器,默认值为空,设 置为 mapreduce_shuffle。

通过以上设置,我们完成了 Hadoop 伪分布式模式的配置。其实 Hadoop 可以配置 的属性还有很多,没有配置的属性就用默认值,默认属性配置存放在 core-default.xml、 hdfs-default.xml、mapred-default.xml 和 yarn-default.xml 文件中。可以到官网查询对 应文档或通过命令 locate <查找的文件名> 来查找文件所在路径,再通过 cat 命令查看 其内容,例如:

$ locate core-default.xml /home/hadoop/soft/hadoop-2.7.3/share/doc/hadoop/hadoop-project-dist/hadoop-common /core-default.xml
$ cat /home/hadoop/soft/hadoop-2.7.3/share/doc/hadoop/hadoop-project-dist/hadoop-common/cor e-default.xml

(5)格式化 HDFS

格式化的过程是创建初始目录和文件系统结构的过程。执行以下命令格式化 HDFS。

$ hdfs namenode –format
$ sudo chmod 777 hadoop-2.7.1

注意:格式化只需进行一次,下次启动不要再次格式化,否则会少 DataNode 进程。

(6)启动 Hadoop

采用下面命令启动 HDFS。

$ start-dfs.sh

用 jps 命令验证,正确启动会出现以下 3 个进程

$ jps
NameNode
DataNode
SecondaryNameNode

采用下面命令启动 YARN。

$start-yarn.sh

(7)验证 Hadoop 进程

用 jps 命令验证,正确启动将多出以下两个进程。

$ jps ResourceManager NodeManager

tips:start-dfs.sh、start-yarn.sh 也可以合并成下面一个命令。

$start-all.sh

tips:若使用$start-all.sh命令,在开启Hadoop进程的时候系统会提示我们输入四次虚拟机的密码!

如果某个主机少了某个进程,应该到相应主机去找对应的 log 查看原因,log 存放在 ${HADOOP_HOME}/logs 目录下。例如,若少了 DataNode 进程,那么就切换到 ${HADOOP_ HOME}/logs 目录下,查看 DataNode 相关的 log,找到含有“WARN”“Error” “Exception”等的关键字句,通过上网搜索关键字句找到解决问题的办法

$ cd ${HADOOP_HOME}/logs
$ cat hadoop-hadoop-datanode-node1.log

也可以通过 vi 命令查看。

$ vi hadoop-hadoop-datanode-node1.log

最新出现的错误,其信息都在文章末尾。

(8)通过 Web 访问 Hadoop

(8_1)HDFS Web 界面

在 Windows 浏览器中,输入网址 http://ip地址:50070(例:http://192.168.30.128:50070),可以查看 NameNode 和 DataNode 的信息,如图所示。

在 Windows 浏览器中,输入网址 http://ip地址:50090(例:http://192.168.30.128:50090),可以查看 SecondaryNameNode 的信息,如图所示。

(8_2)YARN Web 界面

在 Ubuntu 操作系统的浏览器中,输入网址 http://ip地址:8088(例:http://192.168.30.128:8088),可以查看 集群所有应用程序的信息,如图所示。

步骤到了这里,基本已经可以确定你的Hadoop已经配置完成了!!!

8. 结语

以上就是配置Hadoop的初始步骤,对于作为初学者的同学,Hadoop的配置是最低要求,利用Linux下的Ubuntu操作系统来实现Hadoop伪分布式的运行,学习Hadoop生态的各大功能,大家好好学习,共勉!!!

基于Ubuntu系统下的Hadoop 环境搭建(新手可尝)相关推荐

  1. ④ESP8266 开发学习笔记_By_GYC 【Ubuntu系统下ESP8266 开发环境搭建】

    目录 ④ESP8266 开发学习笔记_By_GYC [Ubuntu系统下ESP8266 开发环境搭建] 一.安装前准备 1.乐鑫官方的ESP-IDF 编程指南 2.ESP-IDF风格的ESP8266 ...

  2. ubuntu 系统下的Caffe环境搭建

    原文地址:http://blog.csdn.net/hjimce/article/details/48781693 作者:hjimce 对于caffe的系统一般使用linux系统,当然也有window ...

  3. linux环境下java开发_Linux Ubuntu系统下Java开发环境搭建

    软件151田杰中 2. 在合适的路径下创建文件夹用来存储Java JDK,本例选择在/opt目录下新建JVM子文件夹.操作如下 打开Terminal(后文成为T1),输入: cd /opt       ...

  4. Linux Ubuntu系统下Java开发环境搭建

    软件151田杰中 1. 前往ORACLE官网下载最新版本的Java JDK:http://www.oracle.com/technetwork/java/javase/downloads/index. ...

  5. linux下嵌入式编译环境搭建,ubuntu系统下嵌入式开发环境搭建(ubuntu 16.04)

    1.安装git sudo apt-get install git 2.安装vim sudo apt-get install vim 3.安装arm-linux-gcc (1) arm-linux-gc ...

  6. 基于ubuntu系统下的USB设备绑定

    目录 前言 基本原理 实现方法 前言 在Ubuntu系统的使用中,没有对USB进行设备进行绑定的话,每次插拔或者顺序的不同,都会造成ttyUSB端口号的改变,不利于实际应用,一劳永逸地方法就是对其进行 ...

  7. cc java开发环境搭建_Windows系统下java开发环境搭建

    总的来说,开发环境是程序员工作的基础,没了他,IT工作就没得开展了.话不多说,今天提供的教程是Windows系统下Java开发环境的搭建,具体如下 1.下载并安装JDK(JAVA Developmen ...

  8. Windows系统下的Python环境搭建

    -------在网上搜罗了许多Python环境搭建的方法,还是下面这一篇我觉得最详细,搬来作为参考---------- 转自https://zhuanlan.zhihu.com/p/111168324 ...

  9. linux系统下深度学习环境搭建和使用

    作为一个AI工程师,对Linux的一些技能的掌握也能从一定层面反应工程师的资深水平. 要求1:基于SSH的远程访问(本篇文章) 能用一台笔记本电脑,远程登陆一台linux服务器 能随时使用笔记本电脑启 ...

  10. 超详细,linux虚拟机的下的hadoop环境搭建

    一.虚拟机网络配置 1.查看ip地址 ifconfig 2.关闭系统防火墙命令 systemctl stop firewalld.service 3.关闭系统防火墙自启动命令 systemctl di ...

最新文章

  1. python进程间通信 listener_python进程间通信之Queue
  2. android上的i-jetty (1)环境搭建
  3. vue2.0笔记《二》组件
  4. HDU2855—Fibonacci Check-up
  5. 短信通信的几种情况和CMS错误
  6. 部门级服务器一般支持几个cpu,部门级服务器简介
  7. Windows server 2003网络服务之搭建服务器群集
  8. Exchange Server 2010部署顺序
  9. 【运动学】基于matlab GUI模拟小球自由落体【含Matlab源码 1630期】
  10. 如何压缩pdf文件的大小?
  11. java判断访问设备类型
  12. 【7月cocos学习笔记】
  13. Python While循环与break语句_加工零件
  14. python数组从小到大排序_Python 实现将数组值按从小到大的顺序排列
  15. Tip - 24个程序员工具
  16. gcc、 binutils、gdb
  17. 13 常见CHIP封装的创建
  18. 加速迈入云原生时代,国产数据库行业要变天
  19. 全网最全最细 FreeRTOS 手册详解——1-The FreeRTOS Distribution
  20. 关于安时积分法的二阶RC模型

热门文章

  1. 双人贪吃蛇java 代码_java 双人贪吃蛇
  2. Android基础入门教程——4.1.1 Activity初学乍练
  3. 机器学习算法的Python实现 (1):logistics回归 与 线性判别分析(LDA)
  4. 杀毒软件免费下载 2013排行榜(TOP8)
  5. 计算机控制软件流程图,计算机控制系统的组成
  6. 从零开始学Qt(一)前言
  7. 构建一个可行的BI系统的造价是多少,实施周期?具备条件基础是什么? 数据量有要求么
  8. python连接微信运动_用Python霸屏微信运动,横扫支付宝榜单 !
  9. 算法竞赛入门经典笔记
  10. Win10安装乌班图18双系统