Spark2.1.0安装与配置(单机版)

B站同步视频:Spark2.1.0安装与配置(单机版)

前言

该安装教程是承接Spark源码编译B站教程所制,因此所使用的安装包是在Spark源码编译教程中得到spark-2.1.0-bin-rh27hive.tgz文件以及官网的spark-2.1.0-bin-hadoop2.7.tgz ,其实两个文件的功能几乎相同。

关于为什么进行Spark源码编译,主要是因为个人喜好 ,编译在个人看来只是一种体验。

下载官网https://archive.apache.org/dist/spark/提供的安装包,毕竟是官方的,会可靠点,其中有without-hadoop和hadoop2.x或hadoop3.x的,spark-2.1.0-bin-hadoop2.7.tgz 是含hive支持的,spark-2.1.0-bin-without-hadoop.tgz 是不含hive支持的,含支持的编译命令与自定义编译的命令是相同的(除了hadoop版本,可查看安装包文件中根目录的RELEASE文件)

这里主要想通过这两个含支持和不含支持的安装包介绍多版本Spark的安装,关于选择哪个安装,这里不做引导,各有各的好,不含支持的比较轻量,含支持的比较完整!

关于其它介绍,这里就不过多展开了,毕竟自己也是小白一枚。

一、单版本(含Hive支持官方版&自定义编译)

官网的和自定义编译得到的两个功能一致,选其一安装即可。如步骤中不分类,则说明两者的操作是相同的。

第一步 获取安装包

① 官方提供的安装包

这里主要介绍Spark2.1.0 的安装(spark-2.1.0-bin-hadoop2.7.tgz),其它版本类似,如需安装其它版本,请自行更改版本哦。下载链接见上面提到的官网https://archive.apache.org/dist/spark/,请自行找到合适的版本获取下载链接。这个下载会很慢,建议是在Windows平台下使用迅雷下载,下载完再拖进去。

如果是安装Spark3.x的话可以使用清华源:https://mirrors.tuna.tsinghua.edu.cn/apache/spark/

cd ~
wget https://archive.apache.org/dist/spark/spark-2.1.0/spark-2.1.0-bin-hadoop2.7.tgz

迅雷下载会相对快一点点,这里已经下载好了的,就不演示了

② 自定义编译得到的安装包

详见视频:Ubuntu下Spark2.1.0源码编译打包(https://www.bilibili.com/video/BV1eB4y187Gf?spm_id_from=333.999.list.card_archive.click&vd_source=3c792130f317de0ed318a3e6ad0e583b)

得到的安装包为:spark-2.1.0-bin-rh27hive.tgz

第二步 解压安装

① 官网提供的安装包

sudo tar -zxf ~/spark-2.1.0-bin-hadoop2.7.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.1.0-bin-hadoop2.7 ./spark
sudo chmod -R 777 ./spark

② 自定义编译得到的安装包

sudo tar -zxf ~/spark-2.1.0-bin-rh27hive.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.1.0-bin-rh27hive ./spark
sudo chmod -R 777 ./spark

第三步 配置

因为包含Hive支持,这里Hive安装配置时是基于MySQL 5.7的,所以需要用到MySQL 5.7的驱动mysql-connector-java-5.1.40-bin.jar

① 拷贝Hive配置文件(hive-site.xml 和MySQL驱动)

如果你的Hive是基于MySQL的,那么应该会配置过MySQL驱动,可以使用Hive的(其中mysql-connector-java-5.1.40-bin.jar 请改为自己的)

cd /usr/local/hive
cp ./conf/hive-site.xml /usr/local/spark/conf/
mkdir /usr/local/spark/jars/mysql
cp ./lib/mysql-connector-java-5.1.40-bin.jar /usr/local/spark/jars/mysql

如果hive里面没有MySQL,则请先下载

如果没有,可以通过该链接(https://wwt.lanzouf.com/ivdPR08couhc)下载,由于是动态链接,好像不能使用wget下载,所以需要在虚拟机的浏览器打开下载,默认保存在~/下载目录。如果是其它版本的MySQL,上述驱动应该不适用,请自行准备,至于在哪里可以下载,这里搜刮了一些版本的,请自己去查是适合哪个版本的。

( 阿里云盘 https://www.aliyundrive.com/s/PdJJPvNuYTg 提取码: ydny)

cp ~/下载/mysql-connector-java-5.1.40-bin.jar /usr/local/spark/jars/mysql

给出 hive-site.xml 的内容

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>hive</value><description>password to use against metastore database</description></property><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>datanucleus.schema.autoCreateAll</name><value>true</value></property><!-- Hive产生的元数据存放位置--><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property>
</configuration>

② 添加环境变量

gedit ~/.bashrc
#确保配置hadoop的环境变量时下存在下面的内容,不存在则添加(取消#注释即可)
#export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native/
#[Spark]
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
source ~/.bashrc

③ Spark配置

关于这个slf4j-log4j12-1.7.16.jar是日志文件,因为配置了hadoop的classpath之后会重复,启动spark时会输出一些警告,当然可忽略,个人不喜欢,就去掉了一个,如果需要,可以反向操作,恢复即可。

cd /usr/local/spark
mv ./jars/slf4j-log4j12-1.7.16.jar ./jars/slf4j-log4j12-1.7.16.jar.template
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
gedit ./conf/spark-env.sh

在开头第二行空白位置,添加下面内容,里面的XXX_HOME是环境变量中自己已经配置好的。,其中PYSPARK_PYTHON只能指向小于3.6的,因为Spark2.1.0还不支持3.6及以上的。

export SPARK_DIST_CLASSPATH=$(${HADOOP_HOME}/bin/hadoop classpath)
export LD_LIBRARY_PATH=${JAVA_LIBRARY_PATH}
export JAVA_HOME=${JAVA_HOME}
export CLASSPATH=$CLASSPATH:${HIVE_HOME}/lib
export SCALA_HOME=${SCALA_HOME}
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python3.5
# 单机版配置为本机 ip
export SPARK_MASTER_IP=127.0.0.1
export SPARK_LOCAL_IP=127.0.0.1

④ 设置输出日志的等级

cd /usr/local/spark
cp ./conf/log4j.properties.template ./conf/log4j.properties
gedit ./conf/log4j.properties

在开头位置找到下面的内容

# Set everything to be logged to the console
log4j.rootCategory=INFO, console

INFO改为WARN

log4j.rootCategory=WARN, console

⑤ 设置类(依赖包)路径

cd /usr/local/spark
cp ./conf/spark-defaults.conf.template ./conf/spark-defaults.conf
gedit ./conf/spark-defaults.conf

在最后添加以下两行内容

extraJavaOptions属性中是定向使用日志文件的配置,如果适用该文件进行配置,原日志文件的配置不会自动生效,可能是被覆盖的原因,这里需要重新指向,

extraClassPath属性是类路径,如果后续需要添加例如Hbase或kafka依赖,就可以在后面继续添加,就不用在程序提交时指定这些依赖的路径,多个类路径以: 分隔

spark.driver.extraJavaOptions      -Dlog4j.configuration=file:/usr/local/spark/conf/log4j.properties
spark.driver.extraClassPath        /usr/local/spark/jars/*:/usr/local/spark/jars/mysql/*

给出一个添加Hbase类路径的例子

cd  /usr/local/spark/jars
mkdir  hbase
cp  /usr/local/hbase/lib/hbase*.jar  ./hbase
cp  /usr/local/hbase/lib/guava-12.0.1.jar  ./hbase
cp  /usr/local/hbase/lib/htrace-core-3.1.0-incubating.jar  ./hbase
cp  /usr/local/hbase/lib/protobuf-java-2.5.0.jar  ./hbase
cd  /usr/local/spark
gedit ./conf/spark-defaults.conf

在extraClassPath属性原有基础上加上::/usr/local/spark/jars/hbase/*

spark.driver.extraClassPath        /usr/local/spark/jars/*:/usr/local/spark/jars/mysql/*:/usr/local/spark/jars/hbase/*

到这里就安装完成了!!

第四步 测试

下面进行简单的测试,输出圆周率的近似数

cd /usr/local/spark
./bin/run-example SparkPi 2>&1 | grep "Pi is roughly"

为了测试连接Hadoop,这里做点前期工作

gedit ~/test.csv
X国,1,1,0,0,2020-01-20
Y国,0,1,0,0,2020-01-21
Z国,0,1,0,0,2020-01-22
Q国,0,1,0,0,2020-01-23
A国,1,2,0,0,2020-01-24
C国,0,2,0,0,2020-01-25
cd /usr/local/hadoop
./sbin/start-dfs.sh
./bin/hdfs dfs -mkdir /SparkTest
./bin/hdfs dfs -put ~/test.csv /SparkTest
./bin/hdfs dfs -cat /SparkTest/test.csv | head -5

启动mysql服务(一般安装后是默认自启动的)

sudo service mysql start

启动Spark-Shell(注意hive中不能存在global_temp数据库)

cd /usr/local/spark
./bin/spark-shell

第一行的global_temp数据库警告可忽略,因为这个是缓存数据库,如果hive中事先已经存在,那么Spark启动时会报错的。这个警告应该只是输出一下,并没有影响。

第一次启动会出现hive版本的问题,前面的hive-site.xml中配置了不进行版本验证,可能第一次会验证,后续启动就不会了

测试hadoop

val inputDF = spark.read.csv("hdfs://localhost:9000/SparkTest/test.csv")
inputDF.show()

测试是否有hive支持,(hbase),支持时会重复输出导包内容和hive中存在的数据库

关于hive支持与spark sql的区别,这里不太清楚,因为spark sql是spark本身的一部分

import org.apache.spark.sql.hive.HiveContext
spark.sql("show databases").show()
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
:quit

启动pyspark

cd /usr/local/spark
./bin/pyspark
exit()

二、多版本(官方版without-hadoop)

这里提供官方版without-hadoop单版本安装和多版本安装两个方法,自行选择。

这里前面已经安装过一个了,就演示多版本的安装。

多版本在这里认为的是,上面已经安装的是主版本,而其它额外安装的为子版本,如果需要将原版本作为子版本,则请先对原版本安装目录更名(sudo mv /usr/local/spark /usr/local/spark-sub),再对原版本进行该模块的教程更改内容,或者卸载原版本也可以,再重装。方法很多,看个人喜欢。

卸载就是删除原安装目录文件和移除环境变量即可

##如无需卸载,请勿执行该内容
sudo rm -rf /usr/local/spark
gedit ~/.bashrc
source ~/.bashrc

第一步 获取安装包

官方提供的安装包

这里主要介绍Spark2.1.0 的安装(spark-2.1.0-bin-without-hadoop.tgz),其它版本类似,如需安装其它版本,请自行更改版本哦。下载链接见上面提到的官网https://archive.apache.org/dist/spark/,请自行找到合适的版本获取下载链接。这个下载会很慢,建议是在Windows平台下使用迅雷下载,下载完再拖进去。

cd ~
wget https://archive.apache.org/dist/spark/spark-2.1.0/spark-2.1.0-bin-without-hadoop.tgz

第二步 解压安装

① 单版本安装

sudo tar -zxf ~/spark-2.1.0-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.1.0-bin-without-hadoop ./spark
sudo chmod -R 777 ./spark

② 多版本安装

注意多版本安装时,安装的目录名时不一致的,这里使用的是spark-sub,可以改成自己喜欢的,但不能与已存在的相同

sudo tar -zxf ~/spark-2.1.0-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.1.0-bin-without-hadoop ./spark-sub
sudo chmod -R 777 ./spark-sub

第三步 配置

虽然不包含hive支持,但可能需要操作MySQL,所以也是需要用到MySQL 5.7的驱动mysql-connector-java-5.1.40-bin.jar

① 拷贝MySQL驱动

如果没有,可以通过该链接(https://wwt.lanzouf.com/ivdPR08couhc)下载,由于是动态链接,好像不能使用wget下载,所以需要在虚拟机的浏览器打开下载,默认保存在~/下载目录。如果是其它版本的MySQL,上述驱动应该不适用,请自行准备,至于在哪里可以下载,这里搜刮了一些版本的,请自己去查是适合哪个版本的。

( 阿里云盘 https://www.aliyundrive.com/s/PdJJPvNuYTg 提取码: ydny)

1)单版本
mkdir /usr/local/spark/jars/mysql
cp ~/下载/mysql-connector-java-5.1.40-bin.jar /usr/local/spark/jars/mysql
2)多版本
mkdir /usr/local/spark-sub/jars/mysql
cp ~/下载/mysql-connector-java-5.1.40-bin.jar /usr/local/spark-sub/jars/mysql

② 添加环境变量

1)单版本
gedit ~/.bashrc
#确保配置hadoop的环境变量时下存在下面的内容,不存在则添加(取消#注释即可)
#export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native/
#[Spark]
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
source ~/.bashrc
2)多版本

因为是安装多个spark,这里需要采用临时添加环境变量的方式,即在启动时重新更新环境变量SPARK_HOME,更新后并不会影响原本的spark配置,如不添加,则会启动默认(原有)的spark。当然有添加不同的环境变量的方式,但这样会使启动命令有所改变,而临时添加的方式不需要更改命令(看个人习惯),不过需要注意到是:临时添加环境变量的方式需要使用完整路径才能启动子版本,因为它只在启动的时候才会重定向。对于添加不同的环境变量,这种话方式比较麻烦,需要移除原有的SPARK_HOME环境变量,使用不同的名称,例如SPARK1_HOME,SPARK2_HOME,因为一旦存在SPARK_HOME,不管哪个版本,都会指向配置的那个版本。

cd /usr/local/spark-sub
gedit ./bin/spark-shell

开头空白行添加内容

export SPARK_HOME=/usr/local/spark-sub
export PATH=$PATH:SPARK_HOME/bin

对pyspark,sparkR,spark-sql,spark-submit也需要进行同样的操作

cd /usr/local/spark-sub
gedit ./bin/pyspark
gedit ./bin/sparkR
gedit ./bin/spark-sql
gedit ./bin/spark-submit

③ Spark配置

1)单版本
cd /usr/local/spark
2)多版本
cd /usr/local/spark-sub

1,2共同内容:

mv ./jars/slf4j-log4j12-1.7.16.jar ./jars/slf4j-log4j12-1.7.16.jar.template  #没有没关系
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
gedit ./conf/spark-env.sh

在开头第二行空白位置,添加下面内容,里面的XXX_HOME是环境变量中自己已经配置好的。

export SPARK_DIST_CLASSPATH=$(${HADOOP_HOME}/bin/hadoop classpath)
export JAVA_HOME=${JAVA_HOME}
export SCALA_HOME=${SCALA_HOME}
export HADOOP_HOME=${HADOOP_HOME}
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export LD_LIBRARY_PATH=${JAVA_LIBRARY_PATH}
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python3.5
# 单机版配置为本机 ip
export SPARK_MASTER_IP=127.0.0.1
export SPARK_LOCAL_IP=127.0.0.1

④ 设置输出日志的等级

1)单版本
cd /usr/local/spark
2)多版本
cd /usr/local/spark-sub

1,2共同内容:

cp ./conf/log4j.properties.template ./conf/log4j.properties
gedit ./conf/log4j.properties

在开头位置找到下面的内容

# Set everything to be logged to the console
log4j.rootCategory=INFO, console

INFO改为WARN

log4j.rootCategory=WARN, console

⑤ 设置类(依赖包)路径

1)单版本
cd /usr/local/spark
2)多版本
cd /usr/local/spark-sub

1,2共同内容:

cp ./conf/spark-defaults.conf.template ./conf/spark-defaults.conf
gedit ./conf/spark-defaults.conf

在最后添加以下两行内容

extraJavaOptions属性中是定向使用日志文件的配置,如果适用该文件进行配置,原日志文件的配置不会自动生效,可能是被覆盖的原因,这里需要重新指向,

extraClassPath属性是类路径,如果后续需要添加例如Hbase或kafka依赖,就可以在后面继续添加,就不用在程序提交时指定这些依赖的路径,多个类路径以: 分隔

1)单版本
spark.driver.extraJavaOptions      -Dlog4j.configuration=file:/usr/local/spark/conf/log4j.properties
spark.driver.extraClassPath        /usr/local/spark/jars/*:/usr/local/spark/jars/mysql/*
2)多版本
spark.driver.extraJavaOptions      -Dlog4j.configuration=file:/usr/local/spark-sub/conf/log4j.properties
spark.driver.extraClassPath        /usr/local/spark-sub/jars/*:/usr/local/spark-sub/jars/mysql/*

到这里就安装完成了!!

第四步 测试

为了测试连接Hadoop,这里做点前期工作,如果前面已经做过,可跳过

gedit ~/test.csv
X国,1,1,0,0,2020-01-20
Y国,0,1,0,0,2020-01-21
Z国,0,1,0,0,2020-01-22
Q国,0,1,0,0,2020-01-23
A国,1,2,0,0,2020-01-24
C国,0,2,0,0,2020-01-25
cd /usr/local/hadoop
./sbin/start-dfs.sh
./bin/hdfs dfs -mkdir /SparkTest
./bin/hdfs dfs -put ~/test.csv /SparkTest
./bin/hdfs dfs -cat /SparkTest/test.csv | head -5

① 单版本

下面进行简单的测试,输出圆周率的近似数

cd /usr/local/spark
./bin/run-example SparkPi 2>&1 | grep "Pi is roughly"

启动Spark-Shell

cd /usr/local/spark
./bin/spark-shell

测试hadoop

val inputDF = spark.read.csv("hdfs://localhost:9000/SparkTest/test.csv")
inputDF.show()

测试是否有hive支持,应该是不支持的

import org.apache.spark.sql.hive.HiveContext
:quit

启动pyspark

cd /usr/local/spark
./bin/pyspark
exit()

② 多版本

下面进行简单的测试,输出圆周率的近似数

cd /usr/local/spark-sub
./bin/run-example SparkPi 2>&1 | grep "Pi is roughly"

启动Spark-Shell

cd /usr/local/spark-sub
./bin/spark-shell

测试hadoop

val inputDF = spark.read.csv("hdfs://localhost:9000/SparkTest/test.csv")
inputDF.show()

测试是否有hive支持,应该是不支持的,支持时会重复输出

import org.apache.spark.sql.hive.HiveContext
:quit

如果把临时添加环境变量去掉,再测试是否支持Hive,因为启动的是支持hive的,这个效果在使用不同Spark版本时,可能会更明显。

可以看到启动without hadoop的是没有那个数据库警告的,但去掉临时环境变量之后,就出现了,说明启动的并不是without -hadoop的spark,而且也含有hive支持

cd /usr/local/spark-sub
gedit ./bin/spark-shell

将配置的环境变量注释

#export SPARK_HOME=/usr/local/spark-sub
#export PATH=$PATH:SPARK_HOME/bin

再执行上面的操作。

启动pyspark

cd /usr/local/spark-sub
./bin/pyspark
exit()

Spark2.1.0安装与配置(单机版)相关推荐

  1. hadoop 2.5.0安装和配置

    安装hadoop要先做以下准备: 1.jdk,安装教程在 http://www.cnblogs.com/stardjyeah/p/4640917.html 2.ssh无密码验证,配置教程在 http: ...

  2. Maven3.5.0安装与配置

    Maven3.5.0安装与配置 下载Maven3.5.0 Maven3.5.0下载地址 Maven3.5.0的安装 将下载后的apache-maven-3.5.0-bin.zip解压,如"g ...

  3. tomcat9.0安装与配置

    tomcat9.0安装与配置 准备工作 通常情况下,是先下载JDK.JRE之后再下载tomcat的,所以在安装配置tomcat之前,需要检查一下你的jdk.jre环境变量是否配置完成. ·控制面板-& ...

  4. 国产达梦数据库学习笔记(一):NeoKylin7.0安装及配置与常用基础命令

    国产达梦数据库学习笔记(一):NeoKylin7.0安装及配置与常用基础命令 以VMware Workstation Pro 15环境下的NeoKylin7.0与DM8为例 中标麒麟系统NeoKyli ...

  5. 在CDH上用外部Spark2.2.1安装和配置 CarbonData

    在CDH上用外部Spark2.2.1 (hadoop free版本)standalone 模式安装和配置 CarbonData 一.cdh中外部spark(standalone模式安装) 1.把安装包 ...

  6. 查询linux kafka安装目录,Kafka 1.0.0安装和配置--Linux篇

    阅读目录: 1. 关闭防火墙和Selinux 2. 安装所需环境JDK,Zookeeper 3. 下载Kafka 1.0.0版本 4. 配置Kafka 5. 启动Kafka并验证 6. 报错及解决 7 ...

  7. UE5 C++ Rider 编程指南 0.安装和配置

    目录 0. 前言 1. Rider特性 1.1 快速跨平台C++支持 1.2 连接代码和UE编辑器 1.3 协助反射机制和RPC 1.4 代码分析和命名风格 1.5 调试器 1.6 单元测试 2. 安 ...

  8. VMware NSX 4.0安装、配置和升级实战

    本文通过一个Vmware NSX 4的安装配置实例,扼要说明了一个典型的NSX系统配置.升级过程需要注意的正确步骤,并列出了作者在学习过程中踩过的坑,为同行绕过提供借鉴. 1.系统软硬件环境说明 本安 ...

  9. mysql8.0安装及配置超详细教程_系统城教你mysql8.0安装与配置教程

    一.下载mysql 安装mysql有两种方式,一种是下载安装包安装,另一种是下载压缩包解压配置,这里使用安装包方式. 进去后点击下面的Download 点击No thinks进入下载 二.安装mysq ...

最新文章

  1. 在Web页面上启动运行Linux系统
  2. 网站百度索引量受哪些因素影响呢?
  3. 02-MyBatis配置SQL打印
  4. 在java中5 % 3_Java基础5
  5. 广州程序员辞职创业卖菠萝油,放弃30万年薪
  6. PSIM软件中 Simplified C Block模块 和 C Block模块区别
  7. Trick(三)——循环左移的实现
  8. 乔布斯:你须寻得所爱(转)
  9. bootstrap创建响应式网站
  10. 尚品汇笔记——尚硅谷
  11. 关于微博api返回内容不全内容
  12. RK3066移动鼠标,有时会卡顿一会儿
  13. 计算机u盘病毒清除方式,清除文件夹exe病毒方法
  14. ctab提取dna流程图_ctab 提取dna配方
  15. 悟空crm配置mysql_超简单的悟空crm安装教程!看完不信你不会
  16. git仓库账号或着密码修改之后需要重新配置SSH公钥
  17. 基于html篮球网页游戏,基于html5和jquery的篮球跳动游戏
  18. SRAM cell 详解
  19. 打击标题党,痛斥灌水文
  20. 每日格言积累及总结——更新中

热门文章

  1. Linux系统编程—进程—system函数
  2. 2018杭州-云栖大会
  3. win7 屏蔽全角/半角快捷键(Shift+Space)
  4. java大一下期末作业老鼠迷宫Swing窗口实现
  5. 多位中青年科研人员早逝!985教授:不要拿生命做研究...
  6. 差分进化算法求解函数最值问题
  7. jmeter启动出现not able to find java executable or version的解决方法
  8. 什么是多边形网格?对于3D建模来说是个怎样的存在?你知道吗?
  9. “毕业5年,年薪50万,我总结了职场最值钱的5句【转需】
  10. 中国服装行业要走服装智能制造路线