在过去几年,Cloudera 和 Hortonworks 两家大数据先驱公司分别为我们提供了 CDP(Cloudera Data Platform)和 HDP(Hortonworks Data Platform)两款企业级 Hadoop 解决方案,其都提供了部署、管理、监控以及运维大数据服务组件和节点的能力,大大提升了大数据运维工程师的效率。但是随着 Cloudera 和 Hortonworks 两家公司的合并,以及一些战略上的变化。Cloudera 从早些时候的 CDH 6.3.3 以后再无免费社区版本,到2021年1月31日开始,所有 Cloudera 软件都需要有效的订阅进行访问!这无疑给我们大数据工程师带来一些影响。

在此背景下,UCloud 基于多年大数据平台开发经验,在不久前正式发布了针对私有化部署场景下的一站式智能大数据平台 USDP 免费版《继CDH收费之后,这家公司率先推出了免费版大数据套件服务!》。USDP 系列版本支持 HDFS、Kudu、ES 全生态,且后续会持续扩充其他服务、组件的支持,助力企业提升大数据开发、运维效率,快速构建大数据业务的分析处理能力。

本文将给大家介绍一下 USDP 免费版的安装部署过程,希望能够给大家一些帮助。

环境准备

我们从 USDP 提供的资料可以看出,USDP 平台包括 Manager Node 和 Worker Node。Manager Node 中比较重要的服务是 Manager Server,其为 USDP 管理端服务,需配备一个 MySQL 实例存储集群相关的元数据信息。Worker Node 中比较重要的组件是 Agent,其为 USDP 从节点控制端服务,用于管理、操作所在节点以及所在节点上的大数据服务。其中 BigData Service 为各类大数据服务(例如:HDFS、YARN等)。一般生产环境的部署架构如下所示:

从上图可以看出,USDP 平台需要我们提供最少三个节点的集群。而且系统必须为 CentOS,需要是 7.2 到 7.6 之间的版本 ,因为 USDP 需要从操作系统中获取一些信息来正常运行 USDP 平台。这里我用了三台节点,每台节点都是8c32g,500G数据盘,各个节点部署的服务如下:

下载和设置 USDP

确定了集群的规模之后,我们就可以下载 USDP 免费版的安装包了。可以通过下面的链接进行下载: https://s3-cn-bj.ufileos.com/jungle111111/usdp-1.0.0.0/install/usdp-free-1.0.0.tar.gz 这个文件比较大,大约有43G左右,所以下载大概需要数小时不等。

下载完之后,我们将其解压,解压后的文件如下:

[root@node1 usdp-1.0.0]# ll
总用量 44686388
-rw-r--r-- 1 root root 20491532904 2月   1 18:57 epel.tgz
-rw-r--r-- 1 root root     3077630 2月   1 18:56 httpd-rpms.tar.gz
-rw-r--r-- 1 root root 16897158731 2月   1 18:56 mirror.tgz
-rw-r--r-- 1 root root  8367086414 5月  15 13:19 usdp-01-master-privatization-free-1.0.0.0.tar.gz

usdp-01-master-privatization-free-1.0.0.0.tar.gz:是 USDP 主程序与大数据服务资源包•httpd-rpms.tar.gz 、mirror.tgz:是 USDP 离线 yum 基础源资源包•epel.tgz:是 USDP 离线 yum 扩展源资源包

为了后面部署的方便,我们分别创建 /opt/usdp-srv/ 和 /data 文件夹,将 epel.tgz、httpd-rpms.tar.gz 以及 mirror.tgz 移到 /data 文件夹,usdp-01-master-privatization-free-1.0.0.0.tar.gz 移到 /opt/usdp-srv/ 文件夹。并且把 usdp-01-master-privatization-free-1.0.0.0.tar.gz 文件分发到所有 USDP 节点上。

我们到 /opt/usdp-srv/ 目录,解压 usdp-01-master-privatization-free-1.0.0.0.tar.gz 文件(其他节点也都去解压),可以得到如下的目录结构:

[root@node1 usdp-srv]# tar -zxf usdp-01-master-privatization-free-1.0.0.0.tar.gz
[root@node1 usdp-srv]# cd usdp/
[root@node1 usdp]# ls -l
总用量 4
drwxr-xr-x 2 root root   33 5月  14 12:06 agent
drwxr-xr-x 2 root root  136 5月  14 12:07 bin
drwxr-xr-x 2 root root   65 5月  14 12:06 config
drwxr-xr-x 2 root root  137 12月 16 2020 jmx_exporter
drwxr-xr-x 2 root root   35 5月  14 12:06 recommend
drwxr-xr-x 6 root root   59 5月  14 12:06 repair
drwxr-xr-x 3 root root   21 4月  20 16:21 repository
drwxr-xr-x 2 root root 4096 12月 16 2020 scripts
drwxr-xr-x 2 root root   34 5月  14 12:07 server
drwxr-xr-x 2 root root   29 5月  14 15:03 sql
drwxr-xr-x 3 root root   21 5月  14 12:06 templated
drwxr-xr-x 2 root root    6 12月 16 2020 verify
drwxr-xr-x 2 root root   29 5月  14 12:06 versions

上面的各个目录解释如下:

agent:USDP 分布式客户端程序•bin:USDP 程序启停脚本•config:USDP 程序配置文件•jmx_exporter:进程监控指标采集程序•recommend:大数据服务部署预置模板•repair:部署前环境初始化脚本与资源包•repository:大数据服务资源包•scripts:USDP 相关程序脚本•server:USDP 分布式管理端程序•sql:USDP 元数据信息初始化 SQL•templated:大数据服务配置模板•verify:证书存放路径•versions:USDP 大数据资源包版本信息

USDP 平台部署

USDP 免费版准备好之后,我们就可以部署了。这里以首次全量部署为例进行说明。

首次全量部署需要用到 /opt/usdp-srv/usdp/repair 模块,其目录结构如下所示:

[root@node1 usdp]# cd repair/
[root@node1 repair]# ll
总用量 8
drwxr-x--- 2 root root 4096 5月  14 12:06 bin
drwxr-x--- 2 root root  105 5月  14 12:06 config
drwxr-x--- 4 root root 4096 4月  20 16:38 packages
drwxr-x--- 2 root root   23 5月  14 12:06 sbin

上面目录的作用如下:

bin:单个修复模块脚本所在目录,无需手动管理;•config:一键修复脚本所需配置文件目录,需要用户手动修改;•packages:修复过程中安装 USDP 所需依赖压缩包存放目录;•sbin:一键修复主脚本所在目录,无需手动管理;

在 config 目录下面有三个配置文件:

repair.properties:主要配置私有化 yum 源安装节点信息、namp 安装节点信息、mysql 数据库安装节点信息、修复机器总数,以及修复模块日志存放位置。用户根据需要自行修改相关配置项;•repair-host-info.properties:节点全量修复,需要配置此文件,具体配置所有节点内网 Ip、密码、端口号以及主机名;•repair-host-info-add.properties:集群新增节点时,需要配置此文件,具体配置新增节点内网 Ip、密码、端口号以及主机名;

由于我们是全量修复,所以需要用到 repair.properties 和 repair-host-info.properties 两个配置文件。根据我们上面节点的信息,修改如下:

repair.properties

# Set the YUM source host IP
yum.repo.host.ip=10.23.110.136
#The Host information for installing the NMAP service
namp.server.ip=10.23.110.136
namp.server.port=22namp.server.password=abcd123456
# The Host information for installing the NTP service(Master)
ntp.master.ip=10.23.110.136
# Install MySQL machine node information
mysql.ip=10.23.110.136
mysql.host.ssh.port=22
mysql.host.ssh.password=abcd123456
# Set the MYSQL database login password
mysql.password=abc123456
# The total number of machines needed to be repaired.
repair.host.num=3
# The total number of added machines needed to be repaired.
repair.add.host.num=0
# Common Settings.
repair.log.dir=./logs

上面各个参数的详细含义如下:

repair-host-info.properties

# 1.Please provide the information of hosts needed to be repaired in the format specified below
# 2.usdp.ip.i(eg:i=1,2,3.....):
# 3.usdp.password.i:
# 4.usdp.ssh.port.i:
# 5.usdp.ssh.port.hostname.i:
usdp.ip.1=10.23.110.136
usdp.password.1=abcd123456
usdp.ssh.port.1=22usdp.ssh.port.hostname.1=node1usdp.ip.2=10.23.30.148
usdp.password.2=abcd123456
usdp.ssh.port.2=22
usdp.ssh.port.hostname.2=node2
usdp.ip.3=10.23.148.109
usdp.password.3=abcd123456
usdp.ssh.port.3=22
usdp.ssh.port.hostname.3=node3

上面各个参数的详细含义如下:

注意:

•为了方便,我们三台节点的登录密码都设置为 abcd123456,也就是 ssh 的登录密码。另外,这个登录密码最好不要有特殊字符,要不然安装的过程会出现问题。•repair-host-info.properties 文件里面我们配置了三台 usdp 节点,如果我们有超过三个节点,需要在里面添加对应的信息,有几个节点添加几个。

执行初始化脚本

完成上述步骤后,执行如下命令即可开始一键初始化任务。

cd /opt/usdp-srv/usdp/repair/sbin
bash repair.sh initAll
source /etc/profile

当执行完 bash repair.sh initAll 之后,看到有下面的输出结果说明整个 usdp 平台的部署完成。

[root@node1 sbin]# bash repair.sh initAll
Bash Path: /opt/usdp-srv/usdp/repair/sbin
REPAIR_PATH: /opt/usdp-srv/usdp/repair/sbin
UDP_PATH: /opt/usdp-srv/usdp
REPAIR_BIN_PATH: /opt/usdp-srv/usdp/repair/bin
REPAIR_BIN_PATH: /opt/usdp-srv/usdp/repair/bin
REPAIR_SBIN_PATH: /opt/usdp-srv/usdp/repair/sbin
PACKAGES_PATH: /opt/usdp-srv/usdp/repair/packages
REPAIR_PATH: /opt/usdp-srv/usdp/repair
UDP_PATH: /opt/usdp-srv/usdp
REPAIR_BIN_PATH: /opt/usdp-srv/usdp/repair/bin
REPAIR_SBIN_PATH: /opt/usdp-srv/usdp/repair/sbin
PACKAGES_PATH: /opt/usdp-srv/usdp/repair/packages
.........
这里省了很多输出
.........
SUCCESS: All encryption-free login links have been repaired successfully
SUCCESS: All closing firewall links have been repaired successfully
SUCCESS: All closing swap links have been repaired successfully
SUCCESS: set hostname links have been repaired successfully
SUCCESS: Set  ntp  have been repaired successfully
SUCCESS: Set  libxslt devel  have been repaired successfully
SUCCESS: Set  psmisc  have been repaired successfully
SUCCESS: Set mysql-client links have been repaired successfully
SUCCESS: Set  mysql-python  have been repaired successfully
SUCCESS: All transparent_hugepage links have been repaired successfully
SUCCESS: Set JDK links have been repaired successfully
SUCCESS: Set xdg-utils links have been repaired successfully
SUCCESS: Set redhat-lsb links have been repaired successfully
SUCCESS: Set python-devel links have been repaired successfully
SUCCESS: Set cyrus-sasl links have been repaired successfully
SUCCESS: Set python36-devel links have been repaired successfully
SUCCESS: Set gcc-c++ links have been repaired successfully
SUCCESS: Set  Cython links have been repaired successfully
SUCCESS: Set  Six links have been repaired successfully
SUCCESS: Set  websocket-client links have been repaired successfully
SUCCESS: Set  ecdsa links have been repaired successfully
SUCCESS: Set  pytest-runner links have been repaired successfully
SUCCESS: Set krb5-devel links have been repaired successfully
The USDP deployment environment of all nodes has been repaired successfully . Please proceed to the next step

说明:

•我们只需要在执行 repair 的节点上下载 usdp-free-1.0.0.tar.gz,然后把解压后的 usdp-01-master-privatization-free-1.0.0.0.tar.gz 文件分发到所有节点,并解压到 /opt/usdp-srv/ 目录即可。不需要配置。•上面的配置只需要在执行 repair 的节点上设置即可,别的节点不需要额外的设置;因为执行 bash repair.sh initAll 的时候会把上面修改的两个配置文件分发到所有 node 上。•usdp 需要依赖 JDK、Python 以及 MySQL 等,这些都会在执行 bash repair.sh initAll 的时候自动安装好,而且所有的节点都会自动安装,我们不需要额外处理。

为 USDP 配置 MySQL 数据库

上面初始化工作完成之后,我们需要配置以下 USDP 服务节点的 MySQL 信息,只需要打开 /opt/usdp-srv/usdp/config/application-server.yml 文件,找到 datasource 配置片段,修改为如下内容即可:

  datasource:type: com.zaxxer.hikari.HikariDataSource#    driver-class-name: org.gjt.mm.mysql.Driverdriver-class-name: com.p6spy.engine.spy.P6SpyDriverurl: jdbc:p6spy:mysql://node1:3306/db_udp?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: rootpassword: abc123456

注意:这个 mysql 服务节点的地址和密码需要根据实际情况填写。因为我在 repair.properties 文件里面把 MySQL 安装在 10.23.110.136(也就是 node1) 节点,登录密码设置为 abc123456。

启动 USDP 服务端程序

节点修复完成后,进入 USDP 管理端所在节点后,并进入 USDP 安装根目录,通过 root 用户执行如下命令,以启动 USDP 管理端服务:

[root@node1 sbin]# cd /opt/usdp-srv/usdp/
[root@node1 usdp]# bin/start-udp-server.sh
BASE_PATH: /opt/usdp-srv/usdp/bin
JMX_PATH: /opt/usdp-srv/usdp/jmx_exporter
ln -s /opt/usdp-srv /data/usdp-srv
ln -s /opt/usdp-srv/srv/udp /srv/
ln -s /data/var/log/udp /var/log/
REPAIR_PATH: /opt/usdp-srv/usdp/repair
UDP_PATH: /opt/usdp-srv/usdp
REPAIR_BIN_PATH: /opt/usdp-srv/usdp/repair/bin
REPAIR_SBIN_PATH: /opt/usdp-srv/usdp/repair/sbin
PACKAGES_PATH: /opt/usdp-srv/usdp/repair/packages
nmap-6.40-19.el7.x86_64
nmap exists
UDP Server is running with: 10691
Done.
[root@node1 usdp]#

看到 UDP Server is running with: 10691 之后说明 USDP 管理节点启动成功了。

USDP 集群配置

USDP 管理节点启动成功之后,需要等待一会。接着我们可以通过浏览器访问如下地址即可打开 USDP Web 页面:http://10.23.110.136,如下:

第一次访问 USDP Web 页面需要设置管理员密码,设置完毕后,即可进行下一步操作。也就是需要激活 USDP:

我们点击上面的 导入许可证 按钮,然后会弹出以下的页面:

我们复制下来上面的硬件识别码(D2060300FFFB8B07),然后到 http://117.50.84.208:8002/licenseManagement/generate 页面生成一个免费版证书:

点击上面的 下载 按钮,无需解压,直接在 USDP 页面中上传证书即可。这时候就可以看到 新建集群 的页面:

我们点击 新建集群向导 就可以进入集群配置的流程。

从包含服务组件可以看出,免费版的 USDP 支持计算、存储、监控、可视化、调度以及安全等六种组件。USDP 涵盖了 HDFS、Hive、HBase、Spark、Flink、Presto、Atlas、Ranger 等众多开源大数据组件,目前,UCloud 一站式智能大数据平台 USDP 所支持的服务如表格所示,同时还在持续拓展更多开源生态组件服务。

我们点击下一步按钮,到指定集群节点页面。由于我们在 repair-host-info.properties 文件里面配置了各个节点的 hostname(比如 usdp.ssh.port.hostname.1=node1),所以在执行 repair 的时候系统已经在 /etc/hosts 里面为我们设置好了相关配置。所以这个页面我们只需要要如下配置就可以:

点击

点击 下一步,USDP 系统自动给我们识别好了各个节点的情况。由于 USDP 需要最少三节点的部署,所以我们选中上面三个节点,然后进入下一步。这个环节 USDP 会为我们检查节点的环境:

如果感兴趣的话,可以点击上面的 检查中 查看检查了什么东西:

如果是用 USDP 的 repair 脚本修复的话,上面的检查环境一般都会顺利通过,如下:

点击下一步,就可以进入到选择服务页面,如下:

USDP 为我们提供了三个推荐方案,我们可以根据自己的需要选择不同的组件部署。当然,如果 USDP 给我们推荐的方案都不满足我们的需求,那么我们是可以选择自定义来选择不同的服务组合。这里由于是测试,我们选择 推荐方案 B,然后点击下一步。

这时候进入了在各个节点安装组件的选项,这里我选择了智能推荐,也就是进入了上述的页面,然后点击下一步。

这块需要配置 HDFS 和 HIVE 的配置选项,主要是 HDFS DataNode 数据目录和 Hive MetaStore 的配置,我这块用的是默认配置,然后点击下一步。

这一步是我们前面选择各个组件的部署信息预览,如果没问题的话可以点击 开始部署 ,这时候会进入下面页面:

这个页面等进度到 100% 的时候,部署就完成了。

点击 集群详情 就可以看到集群的部署情况了。

到这里就 USDP 集群就安装完成了。另外,我们可以看到 USDP 给我们提供了丰富的监控指标和报警告警设置。

在监控指标收集方面,主要包括以下三个当面:

•JMX全量指标采集•Http常用指标采集•自定义指标采集

以上三部分监控数据最终将汇总于 USDP 的 Promethues 中,并在每个服务的概览页面中,展示最常用的监控指标。同时,在 Grafana 中,通过 USDP 官方预置的监控模板(Dashboard),用户可以查看最详细监控指标。如果 USDP 预置的监控图标无法满足业务需求,用户也可以自定义添加所需的监控图表。

在告警方面,USDP 提供丰富的预置告警模板,用户只需要引导进行简单配置,即可实现向不同目标(微信、钉钉、邮件、接口调用等)发送集群指标告警的需求。与监控指标的设计相似,如果用户认为预置的告警模板无法满足业务需求,也可以自定义对告警模板进行修改,或添加新的告警规则。

USDP 集群使用

安装好了 USDP 集群之后,我们来试用一下这个集群好不好用。这里以使用 Hive 来简单查询数据为例进行说明。

在 USDP 任一安装过 hive 客户端的节点,进入 hadoop 用户,然后使用下面命令就可以进入 Hive 命令行模式了:

[root@node1 templated]# su hadoop
[hadoop@node1 templated]$ /srv/udp/1.0.0.0/hive/bin/hive
hive (default)>

我们按照下面步骤创建一张名为 iteblog_test_usdp_hive 的 Hive 表:

hive (default)> create table iteblog_test_usdp_hive (id int, name string, age int);
OK
Time taken: 3.014 seconds
hive (default)> show create table iteblog_test_usdp_hive;
OK
CREATE TABLE `iteblog_test_usdp_hive`(`id` int,`name` string,`age` int)
ROW FORMAT SERDE'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED AS INPUTFORMAT'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION'hdfs://iteblog/user/hive/warehouse/iteblog_test_usdp_hive'
TBLPROPERTIES ('transient_lastDdlTime'='1625383436')
Time taken: 0.185 seconds, Fetched: 14 row(s)
hive (default)>

然后我们插入一条数据,并查询:

hive (default)> insert into iteblog_test_usdp_hive values (1, 'iteblog', 100);
OK
_col0    _col1    _col2
Time taken: 10.321 seconds
hive (default)> select * from iteblog_test_usdp_hive;
OK
iteblog_test_usdp_hive.id    iteblog_test_usdp_hive.name    iteblog_test_usdp_hive.age
1    iteblog    100
Time taken: 0.186 seconds, Fetched: 1 row(s)
hive (default)>

在 USDP 中,Hive 默认的执行引擎为 Tez,可以到 UDSP 平台直接修改 hive.execution.engine 参数切换到其他执行引擎。通过 USDP 平台我们可以进入很方面的进入到 Tez 的显示页面,具体如下:

总结

搞过大数据平台的运维部署的同学们应该很清楚,部署一个大数据集群是一个很费时费力的体力活,稍不留神很容易出错。CDH 的出现大大减少我们部署运维大数据集群的工作,提升了运维效率;但是随着 CDH 的全面收费,相信给大家组成了一定的困扰。这次 UCloud 大数据团队给我们提供的免费版 USDP 在一定程度上可以完全替掉 CDH 平台,在安装体验过程还是比较顺的,安装部署过程基本都是全自动,减少人工的工作量,减少出错,非常值得给大家推荐。

扫码获取详细USDP 安装手册 加入UCloud大数据技术交流群

过往记忆大数据 USDP 实测搭建,可替代CDH的免费大数据套件平台相关推荐

  1. 新⼀代USDP开源套件,可替代CDH的免费大数据套件平台及架构选型

    持续输出 敬请关注 大数据架构  湖仓一体化  流批一体 离线+实时数仓  各种大数据解决方案  各种大数据新技术实践 持续输出  敬请关注 [第一篇]⼤数据平台基础架构及解决⽅案https://bl ...

  2. 「数据密集型系统搭建」开卷篇|什么是数据密集型系统

      在我们开发的诸多系统,基本都可以视为"数据密集型系统",数据是一切物质的载体,我们依靠数据做存储记录,通过数据进行信息传递交换,最终还要数据来呈现和展示等,从一定视角而言,系统 ...

  3. 基于 Node.js 爬虫的数据 API,搭建一套属于自己的 API 数据

    SpliderApi https://github.com/ecitlm/Spl... 基于nodejs 的爬虫 API接口项目,包括前端开发日报.知乎日报.前端top框架排行.妹纸福利.搞笑视频/ ...

  4. 欢迎加入过往记忆大数据知识星球

    酝酿了很久,终于在4月底开通了知识星球.到目前为止,已经有100+成员加入了. 先介绍一下星主我吧. 我从上大学开始接触计算机语言,之后考研,读研,毕业入大厂.赶上了第一波大数据浪潮,青春的12年都与 ...

  5. 大数据数仓搭建-大数据用户画像推荐系统搭建

    一 确定需求 我把需求主要分为三大类 一 离线数据报表需求 二 实时观查数据走向需求 三 算法需求 二 确定系统架构 根据需求我们目前有几种大数据架构可以供参考 流式架构 流式架构非常激进,直接拔掉了 ...

  6. 大数据基础环境搭建的从spark到hadoop,从底层硬件到上层软件的一些必备注意事项

    一.硬件环境 硬件如何搭配,能做到比较高的性价比,不存在短板.合理的硬件搭配,对系统的稳定性也很关键. 1.CPU不是核数越高越好,性价比才是关键. 经常遇到很多的企业级客户,他们机器配置非常高,CP ...

  7. 大数据 深度 分页_机器学习、深度学习、大数据 ?傻傻分不清楚?

    提起机器学习四个字,不知你的脑海中是否会有一丝印象?毕竟身处信息时代,在日常生活中,无论通过什么媒介,接触到这个名词概念的机会还是挺大的.与之类似,还有以下这些名词概念:数据分析.数据挖 掘.深度学习 ...

  8. 独家 | 关于数据湖架构、战略和分析的8大错误认知(附链接)

    翻译:张玲 校对:丁楠雅 本文约9200字,建议阅读20分钟. 本文打破有关数据湖的8个错误认知,错误认知包括3方面,还提出了5个小技巧,以构建一个灵活的.可交付业务价值的数据湖. 本文的目的是构建数 ...

  9. 清华大学王建民:在大数据的思维下,人人都是冰冷的数据包?

    文章来源:慕华学堂 王建民,清华大学软件学院院长.数据科学研究院副院长.研究领域包括大数据与知识工程.非结构化数据管理.业务过程与产品生命周期管理.数字版权与系统安全技术.数据库测试技术等. 在近日刚 ...

  10. 我国大型数据中心占比已达12.7%,大而不强成制约因素

    当下的国民经济对于数字化的依赖日益加深,据中国信息通信研究院数据显示,我国数字经济增加值规模由2005年的2.6万亿元增加至2019年的35.8万亿元.与此同时,数字经济在GDP所占的比重逐年提升,由 ...

最新文章

  1. 算法基础知识科普:8大搜索算法之红黑树(下)
  2. 【发现】ASP.NET DEVELOPMENT SERVER 未能开始侦听端口xxxxx以一种访问权限不允许的方式做了一个访问套接字的尝试——解决方法...
  3. 启用 SR-IOV 解决 Neutron 网络 I/O 性能瓶颈
  4. FastReport.Net使用:[36]续表
  5. 谢欣伦 - OpenDev原创教程 - 蓝牙设备查找类CxBthRemoteDeviceFind
  6. 一般服务器崩了要多久能修复,阴阳师服务器崩了修复了吗?阴阳师最新4月15日更新内容...
  7. 关于数据可视化入门,看这一篇够了
  8. oracle 五天之前,Oracle课程档案,第五天
  9. python重命名文件夹下所有文件_Python3.4.3重命名当前文件夹下的文件
  10. nsautoreleasepool研究
  11. DEVC++编译奇怪报错问题解决
  12. 【Linux】解决Linux上解压jdk报错gzip: stdin: not in gzip format
  13. python 从小白到大牛这本书好嘛_《Python从小白到大牛》又一本零基础入门书
  14. C#中的线程二(BeginInvoke和Invoke)
  15. (强烈推荐)无线网络密码破解方法
  16. python转exe
  17. 观察者模式和模拟wow插件的例子
  18. 依赖函数检查 mysql_connect()_解决的方法:mysql_connect()不支持请检查mysql模块是否正确载入...
  19. 怎样用计算机求立方根的近似数,(教案3)6.2 立方根
  20. 如何把Excel表格显示到邮件正文里?

热门文章

  1. 机器学习(七)白化whitening
  2. Redis中的Scan命令的使用
  3. teamviewer介绍及操作
  4. 新人服务器上快速简单搭建cs
  5. PTT BBS-- 软件人的心路历程分享 (补习计算机、学习写程序、出书、出国、求职...这位前辈都经历过了)...
  6. cpc cpa cpm cps 什么意思
  7. 用户sa登录失败的解决办法
  8. 远程如何重装linux系统,独立服务器远程重装Linux系统
  9. OneNote for win10 无法加载笔记本
  10. 微软网站打不开_分享几个国外超高清壁纸网站4k可任意下载