Apache CarbonData 1.5.0编译及安装

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、编译环境描述

  • OpenStack创建五个虚拟机,其中1个主节点(hostname为bigdatamaster),4个从节点(hostname分别为,bigdataslave1、bigdataslave2、bigdataslave3、bigdataslave4)

  • OS:CentOS 7.2_1511

  • JDK:Oracle JDK 1.8_191

  • Maven:3.5.2

  • Hadoop:Apache Hadoop 2.7.2

  • Hive:0.13.1

  • Scala:2.11.8

  • Spark:2.3.2

  • CarbonData:1.5.0

二、编译过程

1.选择源码

在CarbonData的归档地址(http://archive.apache.org/dist/carbondata/1.5.0/或者https://dist.apache.org/repos/dist/release/carbondata/)下载源码:

[root@bigdatamaster Desktop]# wget https://dist.apache.org/repos/dist/release/carbondata/1.5.0/apache-carbondata-1.5.0-source-release.zip
...
[root@bigdatamaster Desktop]# ls
apache-carbondata-1.5.0-source-release.zip
[root@bigdatamaster Desktop]# unzip apache-carbondata-1.5.0-source-release.zip
[root@bigdatamaster Desktop]# ls
apache-carbondata-1.5.0-source-release.zip  carbondata-parent-1.5.0
[root@bigdatamaster carbondata-parent-1.5.0]# ls
assembly  build   conf  datamap       dev   examples  hadoop       LICENSE          NOTICE   processing  store      tools
bin       common  core  DEPENDENCIES  docs  format    integration  licenses-binary  pom.xml  README.md   streaming

注:如果底层的hadoop系统版本为2.7.2,scala版本为2.11.8,spark版本为2.2.1,则不需要通过源码编译。由于本文所处的底层系统hadoop版本为2.7.1,scala版本为,spark版本为2.3.2,因此需要下载源码重新编译。

2.编译源码

[root@bigdatamaster carbondata-parent-1.5.0]# mvn -DskipTests -Pspark-2.3 -Dspark.version=2.3.2 -Dhadoop.version=2.7.1 clean package...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Apache CarbonData :: Parent ........................ SUCCESS [  8.404 s]
[INFO] Apache CarbonData :: Common ........................ SUCCESS [ 15.636 s]
[INFO] Apache CarbonData :: Core .......................... SUCCESS [01:00 min]
[INFO] Apache CarbonData :: Processing .................... SUCCESS [ 27.459 s]
[INFO] Apache CarbonData :: Hadoop ........................ SUCCESS [ 13.402 s]
[INFO] Apache CarbonData :: Streaming ..................... SUCCESS [03:11 min]
[INFO] Apache CarbonData :: Store SDK ..................... SUCCESS [ 37.462 s]
[INFO] Apache CarbonData :: Spark Datasource .............. SUCCESS [01:31 min]
[INFO] Apache CarbonData :: Spark Common .................. SUCCESS [01:32 min]
[INFO] Apache CarbonData :: Search ........................ SUCCESS [ 34.174 s]
[INFO] Apache CarbonData :: Lucene Index DataMap .......... SUCCESS [01:35 min]
[INFO] Apache CarbonData :: Bloom Index DataMap ........... SUCCESS [ 13.619 s]
[INFO] Apache CarbonData :: Spark2 ........................ SUCCESS [02:35 min]
[INFO] Apache CarbonData :: Spark Common Test ............. SUCCESS [01:09 min]
[INFO] Apache CarbonData :: DataMap Examples .............. SUCCESS [  3.621 s]
[INFO] Apache CarbonData :: Assembly ...................... SUCCESS [ 15.694 s]
[INFO] Apache CarbonData :: CLI ........................... SUCCESS [ 24.015 s]
[INFO] Apache CarbonData :: Hive .......................... SUCCESS [ 32.317 s]
[INFO] Apache CarbonData :: presto ........................ SUCCESS [01:06 min]
[INFO] Apache CarbonData :: Spark2 Examples ............... SUCCESS [ 52.898 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18:22 min
[INFO] Finished at: 2019-04-20T21:36:16+08:00
[INFO] Final Memory: 201M/1411M
[INFO] ------------------------------------------------------------------------...

查看pom.xml文件发现scala编译的版本默认就是2.11.8,因此在此处编译时不需要再添加“-Pscala-2.1 -Dscala.version=2.11.8”指定scala版本

编译好后,可以在assembly目录的target目录下发现指定hadoop版本和spark版本编译好的carbon文件,如下图所示:

三、安装过程

1.按照官方文档https://carbondata.apache.org/quick-start-guide.html的步骤,在Spark集群下安装和配置CarbonData(文档:Installing and Configuring CarbonData on Standalone Spark Cluster这一部分)

前提条件:

  • Hadoop的HDFS和YARN均正常运行(已安装Hadoop-2.7.1集群并正常运行)

  • Spark正常运行(已安装Spark-2.3.2集群并正常运行)

  • CarbonData用户必须有HDFS的访问权限(root账户运行)

1)在spark安装目录下创建carbonlib目录:

[root@bigdatamaster ~]# cd $SPARK_HOME
[root@bigdatamaster spark-2.3.2]# ls
bin   data      jars        LICENSE   NOTICE  R          RELEASE  sparkdata
conf  examples  kubernetes  licenses  python  README.md  sbin     yarn
[root@bigdatamaster spark-2.3.2]# mkdir carbonlib
[root@bigdatamaster spark-2.3.2]# ls
bin        conf  examples  kubernetes  licenses  python  README.md  sbin       yarn
carbonlib  data  jars      LICENSE     NOTICE    R       RELEASE    sparkdata

2)将步骤2中编译好的apache-carbondata-1.5.0-bin-spark2.3.2-hadoop2.7.1.jar拷贝至carbonlib目录下

[root@bigdatamaster spark-2.3.2]# cp ~/Desktop/carbondata-parent-1.5.0/assembly/target/scala-2.11/apache-carbondata-1.5.0-bin-spark2.3.2-hadoop2.7.1.jar ./carbonlib/
[root@bigdatamaster spark-2.3.2]# ls carbonlib/
apache-carbondata-1.5.0-bin-spark2.3.2-hadoop2.7.1.jar

3)编辑spark安装目录下conf目录下的spark-env.sh文件,将carbonlib添加至spark环境变量中

[root@bigdatamaster spark-2.3.2]# vim conf/spark-env.sh
(在文件末尾添加如下一行)
export SPARK_CLASSPATH=$SPARK_CLASSPATH:${SPARK_HOME}/carbonlib/*

4)将carbon.properties.template文件拷贝至spark安装目录的conf目录下,并命名为carbon.properties

[root@bigdatamaster carbondata-parent-1.5.0]# ls
assembly  common  datamap       docs      hadoop       licenses-binary  processing  streaming
bin       conf    DEPENDENCIES  examples  integration  NOTICE           README.md   target
build     core    dev           format    LICENSE      pom.xml          store       tools
[root@bigdatamaster carbondata-parent-1.5.0]# ls conf/
carbon.properties.template  dataload.properties.template[root@bigdatamaster carbondata-parent-1.5.0]# cp conf/carbon.properties.template $SPARK_HOME/conf/carbon.properties
[root@bigdatamaster carbondata-parent-1.5.0]# ls $SPARK_HOME/conf
carbon.properties           metrics.properties.template   spark-env.sh
docker.properties.template  slaves                        spark-env.sh.template
fairscheduler.xml.template  slaves.template
log4j.properties.template   spark-defaults.conf.template

5)配置carbon.properties

[root@bigdatamaster spark-2.3.2]# vim conf/carbon.properties
(添加如下几行)
carbon.storelocation=hdfs://bigdatamaster:9000/carbon/Store
carbon.ddl.base.hdfs.url=hdfs://bigdatamaster:9000/carbon/Data
carbon.badRecords.location=hdfs://bigdatamaster:9000/carbon/BadRecords
carbon.lock.type=HDFSLOCK

四个配置的含义请见官网https://carbondata.apache.org/configuration-parameters.html

6)配置spark安装目录下conf目录下的spark-default.conf文件

[root@bigdatamaster spark-2.3.2]# cd conf/
[root@bigdatamaster conf]# ls
carbon.properties           metrics.properties.template   spark-env.sh
docker.properties.template  slaves                        spark-env.sh.template
fairscheduler.xml.template  slaves.template
log4j.properties.template   spark-defaults.conf.template
[root@bigdatamaster conf]# cp spark-defaults.conf.template spark-defaults.conf
[root@bigdatamaster conf]# ls
carbon.properties           metrics.properties.template  spark-defaults.conf.template
docker.properties.template  slaves                       spark-env.sh
fairscheduler.xml.template  slaves.template              spark-env.sh.template
log4j.properties.template   spark-defaults.conf[root@bigdatamaster conf]# vim spark-defaults.conf
(添加如下2行)
spark.executor.extraJavaOptions -Dcarbon.properties.filepath=/root/data/spark-2.3.2/conf/carbon.properties
spark.driver.extraJavaOptions   -Dcarbon.properties.filepath=/root/data/spark-2.3.2/conf/carbon.properties

7)将hive-site.xml添加至spark安装目录的conf目录下

[root@bigdatamaster spark-2.3.2]# cp ~/data/hive-0.13.1/conf/hive-site.xml conf/

注:此步骤不做,则在下面测试创建表时会报如下错误

scala> carbon.sql("CREATE TABLE IF NOT EXISTS test_table(id string, name string, city string, age Int) STORED BY 'carbondata'")
2019-04-21 14:10:47 WARN  ObjectStore:6666 - Version information not found in metastore. hive.metastore.schema.verification is not enabled so recording the schema version 1.2.0
2019-04-21 14:10:47 WARN  ObjectStore:568 - Failed to get database default, returning NoSuchObjectException
2019-04-21 14:10:50 WARN  ObjectStore:568 - Failed to get database global_temp, returning NoSuchObjectException
2019-04-21 14:10:52 AUDIT CarbonCreateTableCommand:207 - [bigdatamaster][root][Thread-1]Creating Table with Database name [default] and Table name [test_table]
2019-04-21 14:10:53 WARN  HiveExternalCatalog:66 - Couldn't find corresponding Hive SerDe for data source provider org.apache.spark.sql.CarbonSource. Persisting data source table `default`.`test_table` into Hive metastore in Spark SQL specific format, which is NOT compatible with Hive.
2019-04-21 14:10:54 AUDIT CarbonCreateTableCommand:207 - [bigdatamaster][root][Thread-1]Table created with Database name [default] and Table name [test_table]
res0: org.apache.spark.sql.DataFrame = []

8)在Spark其他节点上重复步骤1)~步骤6)

此处我直接通过scp命令传输。步骤1)~步骤6)涉及spark安装目录下的以下目录和文件:

  • carbonlib($SPARK_HOME/carbonlib)

  • spark-env.sh($SPARK_HOME/conf/spark-env.sh)

  • spark-defaults.conf($SPARK_HOME/conf/spark-defaults.conf)

  • carbon.properties($SPARK_HOME/conf/carbon.properties)

直接将一个目录和三个配置文件通过scp远程传输至spark集群其他节点相应位置即可:

[root@bigdatamaster spark-2.3.2]# scp -r carbonlib root@bigdataslave1:~/data/spark-2.3.2/  
[root@bigdatamaster spark-2.3.2]# scp -r carbonlib root@bigdataslave2:~/data/spark-2.3.2/  
[root@bigdatamaster spark-2.3.2]# scp -r carbonlib root@bigdataslave3:~/data/spark-2.3.2/   
[root@bigdatamaster spark-2.3.2]# scp -r carbonlib root@bigdataslave4:~/data/spark-2.3.2/[root@bigdatamaster spark-2.3.2]# scp conf/spark-env.sh root@bigdataslave1:~/data/spark-2.3.2/conf/  
[root@bigdatamaster spark-2.3.2]# scp conf/spark-env.sh root@bigdataslave2:~/data/spark-2.3.2/conf/  
[root@bigdatamaster spark-2.3.2]# scp conf/spark-env.sh root@bigdataslave3:~/data/spark-2.3.2/conf/  
[root@bigdatamaster spark-2.3.2]# scp conf/spark-env.sh root@bigdataslave4:~/data/spark-2.3.2/conf/[root@bigdatamaster spark-2.3.2]# scp conf/spark-defaults.conf root@bigdataslave1:~/data/spark-2.3.2/conf/
[root@bigdatamaster spark-2.3.2]# scp conf/spark-defaults.conf root@bigdataslave2:~/data/spark-2.3.2/conf/
[root@bigdatamaster spark-2.3.2]# scp conf/spark-defaults.conf root@bigdataslave3:~/data/spark-2.3.2/conf/
[root@bigdatamaster spark-2.3.2]# scp conf/spark-defaults.conf root@bigdataslave4:~/data/spark-2.3.2/conf/[root@bigdatamaster spark-2.3.2]# scp conf/carbon.properties root@bigdataslave1:~/data/spark-2.3.2/conf/ 
[root@bigdatamaster spark-2.3.2]# scp conf/carbon.properties root@bigdataslave2:~/data/spark-2.3.2/conf/
[root@bigdatamaster spark-2.3.2]# scp conf/carbon.properties root@bigdataslave3:~/data/spark-2.3.2/conf/
[root@bigdatamaster spark-2.3.2]# scp conf/carbon.properties root@bigdataslave4:~/data/spark-2.3.2/conf/

 

四、测试

1)创建测试数据,并上传至HDFS(注:下面测试数据集测试步骤选自文献9,在此感谢作者)

[root@bigdatamaster Desktop]# vim carbonTestData.csv
(添加如下4行)
id,name,city,age
1,david,shenzhen,31
2,eason,shenzhen,27
3,jarry,wuhan,35[root@bigdatamaster Desktop]# hadoop dfs -put carbonTestData.csv /
[root@bigdatamaster Desktop]# hadoop dfs -ls /
Found 6 items
-rw-r--r--   2 root supergroup         78 2019-04-21 14:06 /carbonTestData.csv
drwxr-xr-x   - root supergroup          0 2019-04-04 14:55 /hadoopdata
drwxr-xr-x   - root supergroup          0 2019-03-06 16:16 /hbase
drwxr-xr-x   - root supergroup          0 2019-03-06 16:04 /root
drwxrwxr-x   - root supergroup          0 2019-03-06 17:01 /tmp
drwxr-xr-x   - root supergroup          0 2019-03-06 16:27 /user

2)在bigdatamaster的terminal输入以下目录启动spark shell

spark-shell \
--master spark://bigdatamaster:7077 \
--jars /root/data/spark-2.3.2/carbonlib/apache-carbondata-1.5.0-bin-spark2.3.2-hadoop2.7.1.jar \
--total-executor-cores 2 \
--executor-memory 2G

 

[root@bigdatamaster ~]# spark-shell \
> --master spark://bigdatamaster:7077 \
> --jars /root/data/spark-2.3.2/carbonlib/apache-carbondata-1.5.0-bin-spark2.3.2-hadoop2.7.1.jar \
> --total-executor-cores 2 \
> --executor-memory 2G
2019-04-21 14:08:56 WARN  NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://bigdatamaster:4040
Spark context available as 'sc' (master = spark://bigdatamaster:7077, app id = app-20190421140908-0002).
Spark session available as 'spark'.
Welcome to____              __/ __/__  ___ _____/ /___\ \/ _ \/ _ `/ __/  '_//___/ .__/\_,_/_/ /_/\_\   version 2.3.2/_/Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_191)
Type in expressions to have them evaluated.
Type :help for more information.scala> import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.SparkSessionscala> import org.apache.spark.sql.CarbonSession._
import org.apache.spark.sql.CarbonSession._scala> val carbon = SparkSession.builder().config(sc.getConf).getOrCreateCarbonSession("hdfs://bigdatamaster:9000/carbon/Store")2019-04-21 14:10:07 WARN  SparkContext:66 - Using an existing SparkContext; some configuration may not take effect.
2019-04-21 14:10:07 WARN  CarbonProperties:168 - main The enable unsafe sort value "null" is invalid. Using the default value "true
2019-04-21 14:10:07 WARN  CarbonProperties:168 - main The enable off heap sort value "null" is invalid. Using the default value "true
2019-04-21 14:10:07 WARN  CarbonProperties:168 - main The custom block distribution value "null" is invalid. Using the default value "false
2019-04-21 14:10:07 WARN  CarbonProperties:168 - main The enable vector reader value "null" is invalid. Using the default value "true
2019-04-21 14:10:07 WARN  CarbonProperties:168 - main The carbon task distribution value "null" is invalid. Using the default value "block
2019-04-21 14:10:07 WARN  CarbonProperties:168 - main The enable auto handoff value "null" is invalid. Using the default value "true
2019-04-21 14:10:07 WARN  CarbonProperties:168 - main The specified value for property carbon.sort.storage.inmemory.size.inmbis invalid.
2019-04-21 14:10:07 WARN  CarbonProperties:168 - main The specified value for property 512is invalid.
2019-04-21 14:10:07 WARN  CarbonProperties:168 - main The specified value for property carbon.sort.storage.inmemory.size.inmbis invalid. Taking the default value.512
carbon: org.apache.spark.sql.SparkSession = org.apache.spark.sql.CarbonSession@53e166ad(构建表模式)
scala> carbon.sql("CREATE TABLE IF NOT EXISTS test_table(id string, name string, city string, age Int) STORED BY 'carbondata'")2019-04-21 14:12:34 AUDIT CarbonCreateTableCommand:207 - [bigdatamaster][root][Thread-1]Creating Table with Database name [default] and Table name [test_table]
res1: org.apache.spark.sql.DataFrame = [](上传数据)
scala> carbon.sql("LOAD DATA INPATH 'hdfs://bigdatamaster:9000/carbonTestData.csv' INTO TABLE test_table")2019-04-21 14:21:12 WARN  DeleteLoadFolders:168 - main Files are not found in segment hdfs://bigdatamaster:9000/carbon/Store/default/test_table/Fact/Part0/Segment_0 it seems, files are already being deleted
2019-04-21 14:21:12 AUDIT CarbonDataRDDFactory$:207 - [bigdatamaster][root][Thread-1]Data load request has been received for table default.test_table
2019-04-21 14:21:18 AUDIT CarbonDataRDDFactory$:207 - [bigdatamaster][root][Thread-1]Data load is successful for default.test_table
2019-04-21 14:21:18 AUDIT MergeIndexEventListener:207 - [bigdatamaster][root][Thread-1]Load post status event-listener called for merge index
res4: org.apache.spark.sql.DataFrame = [](查看表数据)
scala> carbon.sql("SELECT * FROM test_table").show()
+---+-----+--------+---+                                                        
| id| name|    city|age|
+---+-----+--------+---+
|  1|david|shenzhen| 31|
|  2|eason|shenzhen| 27|
|  3|jarry|   wuhan| 35|
+---+-----+--------+---+scala> carbon.sql("SELECT city, avg(age), sum(age) FROM test_table GROUP BY city").show()
+--------+--------+--------+                                                    
|    city|avg(age)|sum(age)|
+--------+--------+--------+
|   wuhan|    35.0|      35|
|shenzhen|    29.0|      58|
+--------+--------+--------+

 

五、参考文献

  1. CarbonData使用示例(Java):https://blog.csdn.net/u013181284/article/details/77574094

  2. CarbonData编译、安装和集成Spark 2.2:https://blog.csdn.net/wuzhilon88/article/details/78864735

  3. Spark2.1.0 + CarbonData1.0.0集群模式部署及使用入门:https://blog.csdn.net/coridc/article/details/61915801

  4. Apache CarbonData :一种为更加快速数据分析而生的新Hadoop文件版式:https://blog.csdn.net/u011239443/article/details/52015680

  5. 【思维导图】Parquet Orc CarbonData 三种列式存储格式对比:https://blog.csdn.net/lxhandlbb/article/details/80754252

  6. carbondata 安装文档:https://blog.csdn.net/u013181284/article/details/73331170

  7. Apache CarbonData学习资料汇总:https://blog.csdn.net/xubo245/article/details/84336960

  8. Apache CarbonData中文文档:https://www.iteblog.com/archives/tag/carbondata/

  9. Apache CarbonData 1.0.0 编译部署 on Mac OS:https://ask.hellobi.com/blog/marsj/6164

 

六、附录

贴几张mvn编译源码过程中的图片,真养眼。。

 

转载于:https://my.oschina.net/xhhuang/blog/3039958

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Filter介绍

Filter 可认为是 Servlet的一种 “ 加强版 ”,它主要用于对用户请求进行预处理, 也可以对HttpServletResponse 进行后处理,是个典型的处理链。Filter 也可对用户请求生成响应,这一 点与Servlet 相同, 但实际上很少会使…

python --- 二分查找算法

二分查找法:在我的理解中这个查找方法为什么会叫二分呢,我认为是将要查询的一个列表分成了两份,然后在利用某个值来进行比较,在一个不断循环的过程中来找出我们要找的某一个值。 废话不多说,先上代码: 1 de…

Java暑假作业

一.《大护法》观影有感 ... 从预告开始就期待着这部影片,在看过一遍后又忍不住二刷,影片观看至第二遍后,对于全片的脉络也更清晰了一点,虽然打着暴力美学的旗子,但《大护法》偏偏更文艺一些。文艺片是没有对错的&a…

使用EasyNetQ组件操作RabbitMQ消息队列服务

RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,是实现消息队列应用的一个中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,…

TensorFlow 1.12.2 发布,修复 GIF 构造安全漏洞

开发四年只会写业务代码,分布式高并发都不会还做程序员? TensorFlow 1.12.2 发布了,此处本修复了一个潜在的安全漏洞: 精心设计的 GIF 图像可以在解码过程中产生空指针解引用更新说明: https://github.com/tensorflo…

对象变为指定格式的数组

拿到的对象的格式(一个对象里面都好多属性) 想要转换成的数据格式(一个数组里面有好多个对象,每个对象有一个id和name的属性) 如何处理的 selectionChange(val) { // 列表选择var dynamicTags1 [];var arr[]for(var i…

mysql学习(2)索引的本质

2019独角兽企业重金招聘Python工程师标准>>> 问题:SQL查询慢怎么办? 优化手段,加索引。 索引是帮助MYSQL高效的获取数据的排好序的数据结构。 问题:索引结构为什么使用Btree而不使用二叉树,红黑树或者HASH结…

CSS3:CSS3 文本效果

ylbtech-CSS3:CSS3 文本效果1.返回顶部 1、CSS3 文本效果 CSS3 文本效果 CSS3中包含几个新的文本特征。 在本章中您将了解以下文本属性: text-shadowbox-shadowtext-overflowword-wrapword-break浏览器支持 属性 text-shadow4.010.03.54.09.5box-sha…

洛谷 P2296 寻找道路

题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通。 2 .在满足…

Feature Preprocessing on Kaggle

刚入手data science, 想着自己玩一玩kaggle,玩了新手Titanic和House Price的 项目, 觉得基本的baseline还是可以写出来,但是具体到一些细节,以至于到能拿到的出手的成绩还是需要理论分析的。 本文旨在介绍kaggle比赛到各种原理与技巧&#xf…

如果您遇到文件或数据库问题,如何重置Joomla

2019独角兽企业重金招聘Python工程师标准>>> 如果您遇到Joomla站点的问题,那么重新安装其核心文件和数据库可能是最佳解决方案。 了解问题 这种方法无法解决您的所有问题。但它主要适用于由Joomla核心引起的问题。 运行Joomla核心更新后,这些…

Genymotion模拟器拖入文件报An error occured while deploying the file的错误

今天需要用到资源文件,需要将资源文件拖拽到sd卡中,但老是出现这个问题: 资源文件拖不进去genymotion。查看了sd的DownLoad目录,确实没有成功拖拽进去。 遇到这种问题的,我按下面的思路排查问题: Genymotio…

激光炸弹(BZOJ1218)

激光炸弹&#xff08;BZOJ1218&#xff09; 一种新型的激光炸弹&#xff0c;可以摧毁一个边长为R的正方形内的所有的目标。现在地图上有n(N<10000)个目标&#xff0c;用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置&#xff0c;每个目标都有一个价值。激光炸弹的投放是…

用servlet设计OA管理系统时遇到问题

如果不加单引号会使得除变量和int类型的值不能传递 转发和重定向的区别 转发需要填写完整路径&#xff0c;重定向只需要写相对路径。原因是重定向是一次请求之内已经定位到了服务器端&#xff0c;转发则需要两次请求每次都需要完整的路径。 Request和response在解决中文乱码时的…

[Usaco2010 Mar]gather 奶牛大集会

1827: [Usaco2010 Mar]gather 奶牛大集会 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1129 Solved: 525 [Submit][Status][Discuss]Description Bessie正在计划一年一度的奶牛大集会&#xff0c;来自全国各地的奶牛将来参加这一次集会。当然&#xff0c;她会选择最方便的…

1-1、作用域深入和面向对象

课时1&#xff1a;预解释 JS中的数据类型 number、string、 boolean、null、undefined JS中引用数据类型 object: {}、[]、/^$/、Date Function var num12; var obj{name:白鸟齐鸣,age:10}; function fn(){ console.log(勿忘初心方得始终&#xff01;) }console.log(fn);//把整…

JWT协议学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻译 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token&#xff08;JWT&#xff09;是…

验证Oracle收集统计信息参数granularity数据分析的力度

最近在学习Oracle的统计信息这一块&#xff0c;收集统计信息的方法如下&#xff1a; DBMS_STATS.GATHER_TABLE_STATS (ownname VARCHAR2, ---所有者名字tabname VARCHAR2, ---表名partname VARCHAR2 DEFAULT NULL, ---要分析的分区名estimate_percent NUMBER DEFAULT NULL, …

Python之NumPy(axis=0 与axis=1)区分

Python之NumPy&#xff08;axis0 与axis1&#xff09;区分 转载于:https://www.cnblogs.com/greatljg/p/10802392.html

20165320 第九周学习总结

主要内容&#xff1a; 1.URL类 URL类是java.net包中的一个重要的类&#xff0c;使用URL创建对象的应用程序称为客户端程序。URL 的构造方法&#xff1a;try { URL url new URL ("http://www.google.com"); } catch (MalformedURLException e) {System.out.println(&…