hadoop记录-hive常见设置
分区表
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
create table test.test28_partition(id string, name string)
PARTITIONED BY (inc_day string)
STORED AS PARQUET
location 'hdfs://xxx/user/hive/warehouse/test/test27_partition';
show CREATE table test.test28_partition
desc formatted test.test10_partition;
insert into table test.test27_partition PARTITION (inc_day)
select b.dept_code,b.income,b.inc_month from dm_hrmis.ql_jobmatch_dept_message_income_v2 b limit 100000;
1.Hive java.lang.RuntimeException: problem advancing post rec#4010960 的处理方法
处理方法1. 增大Reduce内存
set mapreduce.reduce.memory.mb=8192;
set mapreduce.reduce.java.opts="-Xmx7000m -Xms1800m";
处理方法2. 增大Reduce的个数
增大reduce的个数,目的是减少每个reduce的数据量,使reduce的内存够用。
如以下参数设置每128M数据一个reduce,如果默认设置为256M,则生成的reduce的数量增大一倍。
set hive.exec.reducers.bytes.per.reducer=128000000;
处理方法3. 同时增大Reduce内存和增大Reduce的个数
如果是MapReduce运行,设置运行Reduce时,把shuffle缓冲区保留的数据为0. 设置以下参数不为0可以加大程序的执行速度。如reduce的 shuffle缓冲区大小为2G时,设置此值为0.5,则运行Reduce时,可以有1Gshuffle 数据在内存中。这部分数据不用先写到硬盘,运行Reduce时再从硬盘读入。但是运行Reduce时,可能会造成内存不足。
mapreduce.reduce.input.buffer.percent=0;
处理方法5. 倾斜的数据单独处理
如果前面的方法不能解决问题,说明数据同一key的数据过多,不论reduce设置多少,他们还是进入同一个reduce处理。如果Reduce内存已经设置系统的上限还是报错,只能把倾斜的数据单独处理。 用两个 SQL ,一个SQL只处理倾斜的数据,另一个SQL处理其他数据。
2.动态分区设置
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.dynamic.partition=true;
3.小文件合并设置
<property>
<name>hive.merge.mapfiles</name>
<value>true</value>
</property>
<property>
<name>hive.merge.mapredfiles</name>
<value>true</value>
</property>
<property>
<name>hive.merge.size.per.task</name>
<value>268435456</value>
</property>
<property>
<name>hive.merge.smallfiles.avgsize</name>
<value>67108864</value>
</property>
-- 设置文件合并
set abaci.is.dag.job=false;
set hive.merge.mapredfiles=true;
set mapred.combine.input.format.local.only=false;
set hive.merge.smallfiles.avgsize=100000000;
-- 在map only的情况下,如上的参数如果没有生效,可以设置如下
-- 在HQL的最外层增加distribute by rand()
select * from XXX distribute by rand()
4.查看表结构信息
desc formatted xxx.xxx;
show create table xxx.xxx;
5.队列设置
老版本一般 mapred开头
新版本是mapreduce开头
set mapred.job.queue.name=queue3;
SET mapreduce.job.queuename=queue3;
set mapred.queue.names=queue3;
6.执行引擎设置
set hive.execution.engine=spark;
set hive.execution.engine=mr2;
set hive.execution.engine=tez;
7.使用union all的时候,系统资源足够的情况下,为了加快hive处理速度,可以设置如下参数实现并发执行
set mapred.job.priority=VERY_HIGH;
set hive.exec.parallel=true;
8.设置map reduce个数
-- 设置map capacity
set mapred.job.map.capacity=2000;
set mapred.job.reduce.capacity=2000;
-- 设置每个reduce的大小
set hive.exec.reducers.bytes.per.reducer=500000000;
-- 直接设置个数
set mapred.reduce.tasks = 15;
其他参数设置
hive.cli.print.header=true 查询结果是否显示表头
hive.exec.mode.local.auto=true 设置自动使用本地化而不执行MapReduce
hive.auto.convert.join=true Join优化,开启小表标记
mapred.reduce.tasks.speculative.execution=true
hive.mapred.reduce.tasks.speculative.execution=true;
Map端
|
Reduce端
|
io.sort.mb
io.sort.spill.percent
min.num.spill.for.combine
io.sort.factor
io.sort.record.percent
|
mapred.reduce.parallel.copies
mapred.reduce.copy.backoff
io.sort.factor
mapred.job.shuffle.input.buffer.percent
mapred.job.reduce.input.buffer.percent
|
Map的输出结果集合会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是相同的GroupBy Key
有可能被分发到不同的Reduce中,从而达到负载均衡的目的;第二个MRJob再根据预处理的数据结果按照GroupBy Key分布到
Reduce中(这个过程可以保证相同的GroupBy Key被分布到同一个Reduce中),最后完成最终的聚合操作。
hive.exec.mode.local.auto
决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行)
true
hive.exec.mode.local.auto.inputbytes.max
如果 hive.exec.mode.local.auto 为 true,当输入文件大小小于此阈值时可以自动在本地模式运行,默认是 128兆。
134217728L
hive.exec.mode.local.auto.tasks.max
如果 hive.exec.mode.local.auto 为 true,当 Hive Tasks(Hadoop Jobs)小于此阈值时,可以自动在本地模式运行。
4
hive.auto.convert.join
是否根据输入小表的大小,自动将 Reduce 端的 Common Join 转化为 Map Join,从而加快大表关联小表的 Join 速度。
false
hive.mapred.local.mem
Mapper/Reducer 在本地模式的最大内存量,以字节为单位,0为不限制。
0
mapred.reduce.tasks
所提交 Job 的 reduer 的个数,使用 Hadoop Client 的配置。
默认是-1,表示Job执行的个数交由Hive来分配
-1
hive.exec.scratchdir
HDFS路径,用于存储不同 map/reduce 阶段的执行计划和这些阶段的中间输出结果。
/tmp/<user.name>/hive
hive.metastore.warehouse.dir
Hive 默认的数据文件存储路径,通常为 HDFS 可写的路径。
"
hive.groupby.skewindata
决定 group by 操作是否支持倾斜的数据。
原理是,在Group by中,对一些比较小的分区进行合并
false
hive.merge.mapfiles
是否开启合并 Map 端小文件,对于 Hadoop 0.20 以前的版本,起一首新的 Map/Reduce Job,对于 0.20 以后的版本,则是起使用 CombineInputFormat 的 MapOnly Job。
true
hive.merge.mapredfiles
是否开启合并 Map/Reduce 小文件,对于 Hadoop 0.20 以前的版本,起一首新的 Map/Reduce Job,对于 0.20 以后的版本,则是起使用 CombineInputFormat 的 MapOnly Job。
false
hive.default.fileformat
Hive 默认的输出文件格式,与创建表时所指定的相同,可选项为 'TextFile' 、 'SequenceFile' 或者 'RCFile'。
'TextFile'
hive.mapred.mode
Map/Redure 模式,如果设置为 strict,将不允许笛卡尔积。
'nonstrict'
hive.exec.parallel
是否开启 map/reduce job的并发提交。
默认Map/Reduce job是顺序执行的,默认并发数量是8,可以配置
false
hive.security.authorization.enabled
Hive 是否开启权限认证。
开启认证后,需要执行授权语句才能对表进行操作,详细请见hive.apache.org
false
hive.exec.plan
Hive 执行计划的路径,会在程序中自动进行设置
null
hive.exec.submitviachild
决定 map/reduce Job 是否应该使用各自独立的 JVM 进行提交(Child进程),默认情况下,使用与 HQL compiler 相同的 JVM 进行提交。
false
hive.exec.script.maxerrsize
通过 TRANSFROM/MAP/REDUCE 所执行的用户脚本所允许的最大的序列化错误数。
100000
hive.exec.script.allow.partial.consumption
是否允许脚本只处理部分数据,如果设置为 true ,因broken pipe等造成的数据未处理完成将视为正常。
false
hive.exec.compress.output
决定查询中最后一个 map/reduce job 的输出是否为压缩格式。
false
hive.exec.compress.intermediate
决定查询的中间 map/reduce job(中间 stage)的输出是否为压缩格式。
对于只进行Map的数据就没有必要了。压缩可以减少网络IO,提高效率。
false
hive.intermediate.compression.codec
中间 map/reduce job 的压缩编解码器的类名(一个压缩编解码器可能包含多种压缩类型),该值可能在程序中被自动设置。 LZO
hive.intermediate.compression.type
中间 map/reduce job 的压缩类型,如 "BLOCK" "RECORD"。
hive.exec.reducers.bytes.per.reducer
每一个 reducer 的平均负载字节数。
改变此参数可以用来影响hive的启动的Reducer的个数,默认每个Reducer处理1G数据
1000000000
hive.exec.reducers.max
reducer 个数的上限。
999
hive.exec.pre.hooks
语句层面,整条 HQL 语句在执行前的 hook 类名。
"
hive.exec.post.hooks
语句层面,整条 HQL 语句在执行完成后的 hook 类名。
hive.exec.parallel.thread.number
并发提交时的并发线程的个数。 默认8个
8
hive.mapred.reduce.tasks.speculative.execution
是否开启 reducer 的推测执行,与 mapred.reduce.tasks.speculative.execution 作用相同。
false
hive.exec.counters.pull.interval
客户端拉取 progress counters 的时间,以毫秒为单位。
1000L
hive.exec.dynamic.partition
是否打开动态分区。 需要打开
false
hive.exec.dynamic.partition.mode
打开动态分区后,动态分区的模式,有 strict 和 nonstrict 两个值可选,strict 要求至少包含一个静态分区列,nonstrict 则无此要求。
建议设置成nonstrict,strict情况下,查询表数据要求强制指定分区。
strict
hive.exec.max.dynamic.partitions
所允许的最大的动态分区的个数。可以手动增加分区。
1000
hive.exec.max.dynamic.partitions.pernode
单个 reduce 结点所允许的最大的动态分区的个数。
100
hive.exec.default.partition.name
默认的动态分区的名称,当动态分区列为''或者null时,使用此名称。''
'__HIVE_DEFAULT_PARTITION__'
hadoop.bin.path
Hadoop Client 可执行脚本的路径,该路径用于通过单独的 JVM 提交 job,使用 Hadoop Client 的配置。
$HADOOP_HOME/bin/hadoop
hadoop.config.dir
Hadoop Client 配置文件的路径,使用 Hadoop Client 的配置。
$HADOOP_HOME/conf
fs.default.name
Namenode 的 URL,使用 Hadoop Client 的配置。
file:///
map.input.file
Map 的输入文件,使用 Hadoop Client 的配置。
null
mapred.input.dir
Map 的输入目录,使用 Hadoop Client 的配置。
null
mapred.input.dir.recursive
输入目录是否可递归嵌套,使用 Hadoop Client 的配置。
false
mapred.job.tracker
Job Tracker 的 URL,使用 Hadoop Client 的配置,如果这个配置设置为 'local',将使用本地模式。
local
mapred.job.name
Map/Reduce 的 job 名称,如果没有设置,则使用生成的 job name,使用 Hadoop Client 的配置。
null
mapred.reduce.tasks.speculative.execution
Map/Reduce 推测执行,使用 Hadoop Client 的配置。
null
hive.metastore.metadb.dir
Hive 元数据库所在路径。
"
hive.metastore.uris
Hive 元数据的 URI,多个 thrift://地址,以英文逗号分隔。
"
hive.metastore.connect.retries
连接到 Thrift 元数据服务的最大重试次数。
3
javax.jdo.option.ConnectionPassword
JDO 的连接密码。
"
hive.metastore.ds.connection.url.hook
JDO 连接 URL Hook 的类名,该 Hook 用于获得 JDO 元数据库的连接字符串,为实现了 JDOConnectionURLHook 接口的类。
"
javax.jdo.option.ConnectionURL
元数据库的连接 URL。
"
hive.metastore.ds.retry.attempts
当没有 JDO 数据连接错误后,尝试连接后台数据存储的最大次数。
1
hive.metastore.ds.retry.interval
每次尝试连接后台数据存储的时间间隔,以毫秒为单位。
1000
hive.metastore.force.reload.conf
是否强制重新加载元数据配置,一但重新加载,该值就会被重置为 false。
false
hive.metastore.server.min.threads
Thrift 服务线程池的最小线程数。
8
hive.metastore.server.max.threads
Thrift 服务线程池的最大线程数。
0x7fffffff
hive.metastore.server.tcp.keepalive
Thrift 服务是否保持 TCP 连接。
true
hive.metastore.archive.intermediate.original
用于归档压缩的原始中间目录的后缀,这些目录是什么并不重要,只要能够避免冲突即可。
'_INTERMEDIATE_ORIGINAL'
hive.metastore.archive.intermediate.archived
用于归档压缩的压缩后的中间目录的后缀,这些目录是什么并不重要,只要能够避免冲突即可。
'_INTERMEDIATE_ARCHIVED'
hive.metastore.archive.intermediate.extracted
用于归档压缩的解压后的中间目录的后缀,这些目录是什么并不重要,只要能够避免冲突即可。
'_INTERMEDIATE_EXTRACTED'
hive.cli.errors.ignore
是否忽略错误,对于包含多的 SQL 文件,可以忽略错误的行,继续执行下一行。
false
hive.session.id
当前会话的标识符,格式为“用户名_时间”用于记录在 job conf 中,一般不予以手动设置。
"
hive.session.silent
当前会话是否在 silent 模式运行。 如果不是 silent 模式,所以 info 级打在日志中的消息,都将以标准错误流的形式输出到控制台。
false
hive.query.string
当前正在被执行的查询字符串。
"
hive.query.id
当前正在被执行的查询的ID。
"
hive.query.planid
当前正在被执行的 map/reduce plan 的 ID。
"
hive.jobname.length
当前 job name 的最大长度,hive 会根据此长度省略 job name 的中间部分。
50
hive.jar.path
通过单独的 JVM 提交 job 时,hive_cli.jar 所在的路径
"
hive.aux.jars.path
各种由用户自定义 UDF 和 SerDe 构成的插件 jar 包所在的路径。
"
hive.added.files.path
ADD FILE 所增加的文件的路径。
"
hive.added.jars.path
ADD JAR 所增加的文件的路径。
"
hive.added.archives.path
ADD ARCHIEVE 所增加的文件的路径。
"
hive.table.name
当前的 Hive 表的名称,该配置将通过 ScirptOperator 传入到用户脚本中。
"
hive.partition.name
当前的 Hive 分区的名称,该配置将通过 ScriptOperator 传入到用户脚本中。
"
hive.script.auto.progress
脚本是否周期性地向 Job Tracker 发送心跳,以避免脚本执行的时间过长,使 Job Tracker 认为脚本已经挂掉了。
false
hive.script.operator.id.env.var
用于识别 ScriptOperator ID 的环境变量的名称。
'HIVE_SCRIPT_OPERATOR_ID'
hive.alias
当前的 Hive 别名,该配置将通过 ScriptOpertaor 传入到用户脚本中。
"
hive.map.aggr
决定是否可以在 Map 端进行聚合操作
true
hive.join.emit.interval
Hive Join 操作的发射时间间隔,以毫秒为单位。
1000
hive.join.cache.size
Hive Join 操作的缓存大小,以字节为单位。
25000
hive.mapjoin.bucket.cache.size
Hive Map Join 桶的缓存大小,以字节为单位。
100
hive.mapjoin.size.key
Hive Map Join 每一行键的大小,以字节为单位。
10000
hive.mapjoin.cache.numrows
Hive Map Join 所缓存的行数。
25000
hive.groupby.mapaggr.checkinterval
对于 Group By 操作的 Map 聚合的检测时间,以毫秒为单位。
100000
hive.map.aggr.hash.percentmemory
Hive Map 端聚合的哈稀存储所占用虚拟机的内存比例。
0.5
hive.map.aggr.hash.min.reduction
Hive Map 端聚合的哈稀存储的最小 reduce 比例。
0.5
hive.udtf.auto.progress
Hive UDTF 是否周期性地报告心跳,当 UDTF 执行时间较长且不输出行时有用。
false
hive.fileformat.check
Hive 是否检查输出的文件格式。
true
hive.querylog.location
Hive 实时查询日志所在的目录,如果该值为空,将不创建实时的查询日志。
'/tmp/$USER'
hive.script.serde
Hive 用户脚本的 SerDe。
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
hive.script.recordreader
Hive 用户脚本的 RecordRedaer。
'org.apache.hadoop.hive.ql.exec.TextRecordReader'
hive.script.recordwriter
Hive 用户脚本的 RecordWriter。
'org.apache.hadoop.hive.ql.exec.TextRecordWriter'
hive.hwi.listen.host
HWI 所绑定的 HOST 或者 IP。
'0.0.0.0'
hive.hwi.listen.port
HWI 所监听的 HTTP 端口。
9999
hive.hwi.war.file
HWI 的 war 文件所在的路径。
$HWI_WAR_FILE
hive.test.mode
是否以测试模式运行 Hive
false
hive.test.mode.prefix
Hive 测试模式的前缀。
'test_'
hive.test.mode.samplefreq
Hive 测试模式取样的频率,即每秒钟取样的次数。
32
hive.test.mode.nosamplelist
Hive 测试模式取样的排除列表,以逗号分隔。
"
hive.merge.size.per.task
每个任务合并后文件的大小,根据此大小确定 reducer 的个数,默认 256 M。
256000000
hive.merge.smallfiles.avgsize
需要合并的小文件群的平均大小,默认 16 M。
16000000
hive.optimize.skewjoin
是否优化数据倾斜的 Join,对于倾斜的 Join 会开启新的 Map/Reduce Job 处理。
false
hive.skewjoin.key
倾斜键数目阈值,超过此值则判定为一个倾斜的 Join 查询。
1000000
hive.skewjoin.mapjoin.map.tasks
处理数据倾斜的 Map Join 的 Map 数上限。
10000
hive.skewjoin.mapjoin.min.split
处理数据倾斜的 Map Join 的最小数据切分大小,以字节为单位,默认为32M。
33554432
mapred.min.split.size
Map Reduce Job 的最小输入切分大小,与 Hadoop Client 使用相同的配置。
1
hive.mergejob.maponly
是否启用 Map Only 的合并 Job。
true
hive.heartbeat.interval
Hive Job 的心跳间隔,以毫秒为单位。
1000
hive.mapjoin.maxsize
Map Join 所处理的最大的行数。超过此行数,Map Join进程会异常退出。
1000000
hive.hashtable.initialCapacity
Hive 的 Map Join 会将小表 dump 到一个内存的 HashTable 中,该 HashTable 的初始大小由此参数指定。
100000
hive.hashtable.loadfactor
Hive 的 Map Join 会将小表 dump 到一个内存的 HashTable 中,该 HashTable 的负载因子由此参数指定。
0.75
hive.mapjoin.followby.gby.localtask.max.memory.usage
MapJoinOperator后面跟随GroupByOperator时,内存的最大使用比例
0.55
hive.mapjoin.localtask.max.memory.usage
Map Join 的本地任务使用堆内存的最大比例
0.9
hive.mapjoin.localtask.timeout
Map Join 本地任务超时,淘宝版特有特性
600000
hive.mapjoin.check.memory.rows
设置每多少行检测一次内存的大小,如果超过 hive.mapjoin.localtask.max.memory.usage 则会异常退出,Map Join 失败。
100000
hive.debug.localtask
是否调试本地任务,目前该参数没有生效
false
hive.task.progress
是否开启 counters ,以记录 Job 执行的进度,同时客户端也会拉取进度 counters。
false
hive.input.format
Hive 的输入 InputFormat。
默认是org.apache.hadoop.hive.ql.io.HiveInputFormat,其他还有org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
hive.enforce.bucketing
是否启用强制 bucketing。
false
hive.enforce.sorting
是否启用强制排序。
false
hive.mapred.partitioner
Hive 的 Partitioner 类。
'org.apache.hadoop.hive.ql.io.DefaultHivePartitioner'
hive.exec.script.trust
Hive Script Operator For trust
false
hive.hadoop.supports.splittable.combineinputformat
是否支持可切分的 CombieInputFormat
false
hive.optimize.cp
是否优化列剪枝。
true
hive.optimize.ppd
是否优化谓词下推。
true
hive.optimize.groupby
是否优化 group by。
true
hive.optimize.bucketmapjoin
是否优化 bucket map join。
false
hive.optimize.bucketmapjoin.sortedmerge
是否在优化 bucket map join 时尝试使用强制 sorted merge bucket map join。
false
hive.optimize.reducededuplication
是否优化 reduce 冗余。
true
hive.hbase.wal.enabled
是否开启 HBase Storage Handler。
true
hive.archive.enabled
是否启用 har 文件。
false
hive.archive.har.parentdir.settable
是否启用 har 文件的父目录可设置。
false
hive.outerjoin.supports.filters
是否启动外联接支持过滤条件。
true
hive.fetch.output.serde
对于 Fetch Task 的 SerDe 类
'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe'
hive.semantic.analyzer.hook
Hive 语义分析的 Hook,在语义分析阶段的前后被调用,用于分析和修改AST及生成的执行计划,以逗号分隔。
null
hive.cli.print.header
是否显示查询结果的列名,默认为不显示。
false
hive.cli.encoding
Hive 默认的命令行字符编码。
'UTF8'
hive.log.plan.progress
是否记录执行计划的进度。
true
hive.pull.progress.counters
是否从 Job Tracker 上拉取 counters,淘宝特有配置项。
true
hive.job.pre.hooks
每个 Job 提交前执行的 Hooks 列表,以逗号分隔,淘宝特有配置项。
"
hive.job.post.hooks
每个 Job 完成后执行的 Hooks 列表,以逗号分隔,淘宝特有配置项。
"
hive.max.progress.counters
Hive 最大的进度 couters 个数,淘宝特有配置项。
100
hive.exec.script.wrapper
Script Operator 脚本调用的封装,通常为脚本解释程序。例如,可以把该变量值的名称设置为"python",那么传递到 Script Operator 的脚本将会以"python <script command>"的命令形式进行调用,如果这个值为null或者没有设置,那么该脚本将会直接以"<script command>"的命令形式调用。
null
hive.check.fatal.errors.interval
客户端通过拉取 counters 检查严重错误的周期,以毫秒为单位,淘宝特有配置项。
5000L
hadoop记录-hive常见设置的更多相关文章
- Hadoop记录-hive merge小文件
1. Map输入合并小文件对应参数:set mapred.max.split.size=256000000; #每个Map最大输入大小set mapred.min.split.size.per.no ...
- Hadoop记录-Hive调优:让任务并行执行
set mapred.job.queue.name=pms; //设置队列set hive.exec.reducers.max=8; //设置最大的reducersset mapred.redu ...
- Hadoop记录-hive操作示范
- Hadoop记录-hdfs转载
Hadoop 存档 每个文件均按块存储,每个块的元数据存储在namenode的内存中,因此hadoop存储小文件会非常低效.因为大量的小文件会耗尽namenode中的大部分内存.但注意,存储小文件所需 ...
- Hadoop生态圈-Hive快速入门篇之HQL的基础语法
Hadoop生态圈-Hive快速入门篇之HQL的基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的重点是介绍Hive中常见的数据类型,DDL数据定义,DML数据操作 ...
- Windows10系统下Hadoop和Hive开发环境搭建填坑指南
前提 笔者目前需要搭建数据平台,发现了Windows系统下,Hadoop和Hive等组件的安装和运行存在大量的坑,而本着有坑必填的目标,笔者还是花了几个晚上的下班时候在多个互联网参考资料的帮助下完成了 ...
- 《Programming Hive》读书笔记(一)Hadoop和hive环境搭建
<Programming Hive>读书笔记(一)Hadoop和Hive环境搭建 先把主要的技术和工具学好,才干更高效地思考和工作. Chapter 1.Int ...
- Hadoop之Hive篇
想了解Hadoop整体结构及各框架角色建议飞入这篇文章,写的很好:http://www.open-open.com/lib/view/open1385685943484.html .以下文章是本人参考 ...
- hadoop 集群常见错误解决办法
hadoop 集群常见错误解决办法 hadoop 集群常见错误解决办法: (一)启动Hadoop集群时易出现的错误: 1. 错误现象:Java.NET.NoRouteToHostException ...
随机推荐
- BASE64编码的图片在网页中的显示问题的解决
BASE64位转码有两种: 一种是图片转为Base64编码,这种编码是直接可以在页面通过<img src='base64编码'/>的方式显示 Base64 在CSS中的使用 .demoIm ...
- TestLink-Windows安装教程
TestLink-Windows安装教程 QQ群交流:585499566 一.这篇文章的目的 以后工作中要使用Testlink来管理测试的流程,需要在本地或者Testlink服务器上练习使用,在个人本 ...
- liteos简介(一)
LiteOS是在2015华为网络大会上华为发布的敏捷网络3.0中的一个轻量级的物联网操作系统,LiteOS体积只有10KB级. 在Hi3559A中,liteos是用于Cortex-A53,用于处理MP ...
- win2008server R2 x64 部署.net core到IIS--ASP .NET Core HTTP Error 502.5 – Process Failure
服务器win2008server R2 x64 部署.net core到IIS 解决ASP .NET Core HTTP Error 502.5 – Process Failure 问题等 1.发布网 ...
- 网络浅析(<<网络是怎么连接的>> 总结)
概要 基本概念 网线 集线器 交换机 路由器 路由器和交换机 路由器和集线器 接入网 IP DNS 以太网 协议栈 网络连接过程 通信过程(浏览器 -> 服务器) 客户端和服务端 服务端的套接字 ...
- Jquery消息提示插件toastr使用详解
toastr是一个基于jQuery简单.漂亮的消息提示插件,使用简单.方便,可以根据设置的超时时间自动消失. 1.使用很简单,首选引入toastr的js.css文件 html <script s ...
- 03 前端篇(JS)
参考博客:http://www.cnblogs.com/yuanchenqi/articles/5980312.html JavaScript包括三部分: ECMAScript.DOM.BOM Jav ...
- P1090 合并果子 题解
那么,我们开始吧, 堆 堆是一个完全二叉树,而且是每层都有规律的二叉树 规律大概是: 小根堆:最上层数的大小最小,往下每层结点都比父亲结点大,比两个儿子结点小 大根堆:最上层数的大小最大,往下每层结点 ...
- 为什么要花钱学 Python,自学不好吗?
买了这么多课程,有哪一门是你从头到尾听完,并且能将知识点学以致用的?如果你想成为一名相对优秀的程序员,建议你读完这篇文章,如果愿意可以分享给你的朋友. 2018过去的一年,对大多数互联网人来说,201 ...
- Python的生成器send()方法 & yield_from
生成器对象是一个迭代器.但是它比迭代器对象多了一些方法,它们包括send方法,throw方法和close方法.这些方法,主要是用于外部与生成器对象的交互.本文先介绍send方法. send send方 ...