spark和impala的应用场景区别大吗 1C

以前的spark因为基于hive,所以在未来有一定的局限性,现在新的spark分为两个部分,sparksql和sparkstreaming,在sql部分感觉和impala有很大的重合,那么这两个在这方面的优缺点有大神能说说吗

2个回答

fullsense
Cd_Empty 似懂非懂,还是不太明白
4 年多之前 回复

我impala用的比较多,这里面有我记录的各种笔记:http://blog.csdn.net/column/details/impala-action.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spark jdbc连接impala报错Method not supported
各位好 我的spark是2.1.0,用的hive-jdbc 2.1.0,现在写入impala的时候报以下错: java.sql.SQLException: Method not supported at org.apache.hive.jdbc.HivePreparedStatement.addBatch(HivePreparedStatement.java:75) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.savePartition(JdbcUtils.scala:589) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:670) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:670) at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$29.apply(RDD.scala:925) at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$29.apply(RDD.scala:925) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1944) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1944) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) at org.apache.spark.scheduler.Task.run(Task.scala:99) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:322) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Driver stacktrace: at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1435) at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1423) at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1422) at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1422) at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:802) at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:802) at scala.Option.foreach(Option.scala:257) at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:802) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1650) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1605) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1594) at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48) at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:628) at org.apache.spark.SparkContext.runJob(SparkContext.scala:1918) at org.apache.spark.SparkContext.runJob(SparkContext.scala:1931) at org.apache.spark.SparkContext.runJob(SparkContext.scala:1944) at org.apache.spark.SparkContext.runJob(SparkContext.scala:1958) at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1.apply(RDD.scala:925) at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1.apply(RDD.scala:923) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112) at org.apache.spark.rdd.RDD.withScope(RDD.scala:362) at org.apache.spark.rdd.RDD.foreachPartition(RDD.scala:923) at org.apache.spark.sql.Dataset$$anonfun$foreachPartition$1.apply$mcV$sp(Dataset.scala:2305) at org.apache.spark.sql.Dataset$$anonfun$foreachPartition$1.apply(Dataset.scala:2305) at org.apache.spark.sql.Dataset$$anonfun$foreachPartition$1.apply(Dataset.scala:2305) at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:57) at org.apache.spark.sql.Dataset.withNewExecutionId(Dataset.scala:2765) at org.apache.spark.sql.Dataset.foreachPartition(Dataset.scala:2304) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.saveTable(JdbcUtils.scala:670) at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:77) at org.apache.spark.sql.execution.datasources.DataSource.write(DataSource.scala:518) at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:215) at org.apache.spark.sql.DataFrameWriter.jdbc(DataFrameWriter.scala:446) at com.aoyou.data.CustomerVisitProduct$.saveToHive(CustomerVisitProduct.scala:281) at com.aoyou.data.CustomerVisitProduct$.main(CustomerVisitProduct.scala:221) at com.aoyou.data.CustomerVisitProduct.main(CustomerVisitProduct.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:738) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) Caused by: java.sql.SQLException: Method not supported at org.apache.hive.jdbc.HivePreparedStatement.addBatch(HivePreparedStatement.java:75) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.savePartition(JdbcUtils.scala:589) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:670) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:670) at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$29.apply(RDD.scala:925) at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$29.apply(RDD.scala:925) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1944) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1944) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) at org.apache.spark.scheduler.Task.run(Task.scala:99) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:322) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 以下是代码实现 val sparkConf = new SparkConf().setAppName("save").set("spark.sql.crossJoin.enabled", "true"); val sparkSession = SparkSession .builder() .enableHiveSupport() .getOrCreate(); val dataframe = sparkSession.createDataFrame(rddSchema, new Row().getClass()) val property = new Properties(); property.put("user", "xxxxx") property.put("password", "xxxxx") dataframe.write.mode(SaveMode.Append).option("driver", "org.apache.hive.jdbc.HiveDriver").jdbc("jdbc:hive2://xxxx:21050/rawdata;auth=noSasl", "tablename", property) 请问这是怎么回事啊?感觉是驱动版本问题
impala invalidate metadate的作用
invalidate metadata具体有什么作用,是刷新元数据吗,有没有大神给我解释下
关于IMPALA与配置了HA的namenode的问题
impala中,我们必须更改hdfs-site.xml中namenode的地址为指定的active的服务器。 如果namenode HA发生了主备切换, 会不会影响IMPALA的使用? 有什么好的解决方案? 请大神赐教 ,不胜感激
impala shell脚本不执行
写了一个用impala表,小文件合并的脚本,每天定时执行。但是定时执行是,会运行但是,其中的两个impala sql不会运行,他会打开impala-shell 但不会执行接下来的sql语句,如果手动执行的话没有问题。 求解决!
Impala使用UDF的时候输入的文本都变问号
同一个UDF在hive下是正常的,但是在impala下,文本都变成了???? ![图片说明](https://img-ask.csdn.net/upload/201911/28/1574912595_60967.png) ![图片说明](https://img-ask.csdn.net/upload/201911/28/1574912606_10531.png) 我又写了一个直接打印输入的byte,结果发现impala在进入UDF函数的时候,就已经都变成了??? ![图片说明](https://img-ask.csdn.net/upload/201911/28/1574912617_55788.png) 但是在impala里面正常的查询中文是可以正常显示的 ![图片说明](https://img-ask.csdn.net/upload/201911/28/1574921356_66114.png) 网上也没搜到类似的问题,不知哪位大神遇到过这个问题,求解决方案 环境: CentOS 7.3 Hive 1.2 Impala 2.12 Java JDK 1.8 Python 2.7.5
impala shell选择impalad的机制
impala shell会选择一个impalad进程作为协调者,这个协调进程负责调度其他的 impalad进程,查询搜索结果。最后通过这个协调进程将结果返回给impala shell。 那么impala shell是如何选择这个协调者的呢?
impala中locate()函数
mpala中定位字符串,如select locate('a','abcdefa',2) ,返回 7,但是如果为 select locate('a','a窗前明月光a,疑似地上霜a',3) ,即字符串中带中文,则后面的数值无论是2或者3都返回一样的值,怎么办?求大神解答。
Impala 无法集群化只能单节点
各位大神,小弟刚刚接触Impala,hadoop,mysql,Hive部署完全正确,也能在上运行负载,但是却无法启动Impala集群,每个机器的impala都是正常,网页也可以看到,但是运行时候,无法做到分布式的集群结构
求助!使用Kettle从impala中取数慢
CDH6.2 第一套环境:4C,64G 有3台 第二套环境:4C,256G有5台 使用kettle配置两个数据源,分别从impala中取数(两套环境的数据量一样)。 单独把sql在Impala上执行,两套环境的执行时间几乎一样(相差几秒) 但是使用Kettle抽取时间3台机子的抽取时间为20秒。 5台机子的抽取时间是45秒。
Cloudera Impala & Facebook Presto & Hive
Hive将SQL语言映射为MapReduce进而实现查询,但往往相应较慢,在实时性上有欠缺。而Cloudera公司的Impala和Facebook提出的Presto同样支持SQL语言,但都没有使用MapReduce框架,查询的实时性很好。 我想请问一下Impala和Presto工作的具体原理是什么?
【大数据】请问impala怎么用命令行连接?提示找不到命令
这样,我在集群上向连接impala试试,然后输入 impala-shell 命令找不到,我看了没有配置在profile里面,但是linux机器上有impala的文件目录,请问这个命令在那个文件夹下存放这? 主要是不敢乱点,怕炸,求告之目录以及运行文件,就像hive的beeline一样
impala基础问题,运算1+1
为了测试是否能连上impala,想写个sql测试下是否能返回结果,但问题来了,impala的加法怎么写,是像mysql直接select 1+1就行了,还是类似oracle一定要from要写成select 1+1 from dual 这样,impala有没特殊表的,我就想算1+1 应该怎么写
apache hadoop-2.5.0上安装impala的问题
在安装impala上遇到了一个问题 因为本人目前使用的系统是centos6.5,搭建了hadoop-2.5.0(非cdh,无cm)的集群,部署了hive-1.2.1以及mysql,但是不知道怎么把impala部署在apache hadoop上,也不能重新换用cdh hadoop,想问一下有没有可以在hadoop-2.5.0上安装相应版本impala的资料和方法?
Impala 不能同步hive元数据
我在hive中建立表,再到impala-shell中却找不到该表,只有强制执行invalidate metadata命令后,才能在impala-shell中查找到该表 。impala的statestored,catalogd进程状态都好的。查看日志未发现异常。麻烦大家帮忙看看,谁遇到过类似的问题。 版本:impala2.2 cdh,hive1.1 cdh
使用Impala的SQL语句,迁移数据至新表报错
$ impala-shell -i slaver2 -f realdata_raw_to_parq.hql Starting Impala Shell without Kerberos authentication Connected to slaver2:21000 Server version: impalad version 2.5.0-cdh5.7.2 RELEASE (build 1140f8289dc0d2b1517bcf70454bb4575eb8cc70) Query: invalidate metadata changqing.t_wtdata_realdata_raw Fetched 0 row(s) in 0.06s Query: insert overwrite table changqing.t_wtdata_realdata partition(acqdate) select *, to_date(DateAcqTime) from changqing.t_wtdata_realdata_raw WARNINGS: Memory limit exceeded Error converting column: 12 TO DOUBLE (Data is: null) Error converting column: 13 TO DOUBLE (Data is: null) Error converting column: 27 TO DOUBLE (Data is: null) Error converting column: 51 TO DOUBLE (Data is: null) Error converting column: 52 TO DOUBLE (Data is: null) Error converting column: 53 TO DOUBLE (Data is: null) Error converting column: 54 TO DOUBLE (Data is: null) Error converting column: 60 TO DOUBLE (Data is: null) Error converting column: 61 TO DOUBLE (Data is: null) Error converting column: 62 TO DOUBLE (Data is: null) Error converting column: 63 TO DOUBLE (Data is: null) Error converting column: 64 TO DOUBLE (Data is: null) Error converting column: 65 TO DOUBLE (Data is: null) Error converting column: 66 TO DOUBLE (Data is: null) Error converting column: 67 TO DOUBLE (Data is: null) Error converting column: 68 TO DOUBLE (Data is: null) Error converting column: 69 TO DOUBLE (Data is: null) Error converting column: 70 TO DOUBLE (Data is: null) Error converting column: 71 TO DOUBLE (Data is: null) Error converting column: 72 TO DOUBLE (Data is: null) Error converting column: 73 TO DOUBLE (Data is: null) Error converting column: 74 TO DOUBLE (Data is: null) Error converting column: 75 TO DOUBLE (Data is: null) Error converting column: 76 TO DOUBLE (Data is: null) Error converting column: 77 TO DOUBLE (Data is: null) Error converting column: 78 TO DOUBLE (Data is: null) Error converting column: 79 TO DOUBLE (Data is: null) Error converting column: 80 TO DOUBLE (Data is: null) file: hdfs://master.hadoop.com:8020/user/hive/warehouse/changqing.db/t_wtdata_realdata_raw/part-m-00003_copy_3 record: 10,2015-02-01 00:00:00.0,10,-7,-6,409,408,408,0,0,0,50.03,null,null,0.726,2.52,2.98,2.77,-1.44,303.6,0.09,89.0,6,32.6,27.0,27.8,18.4,null,23.4,20.9,30.2,32.6,27.7,5.6,151.0,315.5,-0.4,7.0,3.0,9.9,-9.0E-4,0.0051,0.0,-44.5,1,1,233712,100.0,100.0,100.0,3,null,null,null,null,-0.3,11.0,89.0,89.0,89.0,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,0.0 Error converting column: 12 TO DOUBLE (Data is: null) Error converting column: 13 TO DOUBLE (Data is: null) Error converting column: 27 TO DOUBLE (Data is: null) Error converting column: 51 TO DOUBLE (Data is: null) Error converting column: 52 TO DOUBLE (Data is: null) Error converting column: 53 TO DOUBLE (Data is: null) Error converting column: 54 TO DOUBLE (Data is: null) Error converting column: 60 TO DOUBLE (Data is: null) Error converting column: 61 TO DOUBLE (Data is: null) Error converting column: 62 TO DOUBLE (Data is: null) Error converting column: 63 TO DOUBLE (Data is: null) Error converting column: 64 TO DOUBLE (Data is: null) Error converting column: 65 TO DOUBLE (Data is: null) Error converting column: 66 TO DOUBLE (Data is: null) Error converting column: 67 TO DOUBLE (Data is: null) Error converting column: 68 TO DOUBLE (Data is: null) Error converting column: 69 TO DOUBLE (Data is: null) Error converting column: 70 TO DOUBLE (Data is: null) Error converting column: 71 TO DOUBLE (Data is: null) Error converting column: 72 TO DOUBLE (Data is: null) Error converting column: 73 TO DOUBLE (Data is: null) Error converting column: 74 TO DOUBLE (Data is: null) Error converting column: 75 TO DOUBLE (Data is: null) Error converting column: 76 TO DOUBLE (Data is: null) Error converting column: 77 TO DOUBLE (Data is: null) Error converting column: 78 TO DOUBLE (Data is: null) Error converting column: 79 TO DOUBLE (Data is: null) Error converting column: 80 TO DOUBLE (Data is: null) Could not execute command: insert overwrite table changqing.t_wtdata_realdata partition(acqdate) select *, to_date(DateAcqTime) from changqing.t_wtdata_realdata_raw
python链接impala出错
这是什么原因呀!ip没有错 Traceback (most recent call last): File "mid_tables.py", line 17, in <module> cursor= conn.cursor() File "/usr/lib/python2.6/site-packages/impala/hiveserver2.py", line 125, in cursor session = self.service.open_session(user, configuration) File "/usr/lib/python2.6/site-packages/impala/hiveserver2.py", line 995, in open_session resp = self._rpc('OpenSession', req) File "/usr/lib/python2.6/site-packages/impala/hiveserver2.py", line 923, in _rpc response = self._execute(func_name, request) File "/usr/lib/python2.6/site-packages/impala/hiveserver2.py", line 940, in _execute return func(request) File "/usr/lib/python2.6/site-packages/impala/_thrift_gen/TCLIService/TCLIService.py", line 175, in OpenSession return self.recv_OpenSession() File "/usr/lib/python2.6/site-packages/impala/_thrift_gen/TCLIService/TCLIService.py", line 193, in recv_OpenSession result.read(self._iprot) File "/usr/lib/python2.6/site-packages/impala/_thrift_gen/TCLIService/TCLIService.py", line 1109, in read fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) AttributeError: 'TBufferedTransport' object has no attribute 'trans' ![图片说明](https://img-ask.csdn.net/upload/201704/26/1493177392_630187.png)
jdbc 操作impala insert 中文乱码
jdbc 操作impala insert 中文乱码 如何解决 求大神指点
IMPALA 如何实现一行转多行?
IMPALA 如何实现一行转多行? 或者有没有类似以下Oracle的connect by 用法? Oracle的写法如下: ``` WITH AA AS ( SELECT 'FRUIT' COL1,'APPLE,PEAR,BANANA,STRAWBERRY' COL2 FROM DUAL ) SELECT aa.col1,aa.col2 ,regexp_substr(aa.col2,'[^,]+',1,level) str ,level FROM aa connect by level <= length(aa.col2)-length(replace(aa.col2,',',''))+1 ; ``` 输出结果: ![图片说明](https://img-ask.csdn.net/upload/201911/12/1573524426_430233.png)
impala catalog起不来 报错如下
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. E0511 11:33:51.635500 13048 catalog.cc:66] java.lang.IllegalStateException: java.lang.NumberFormatException: For input string: "0s" at com.cloudera.impala.catalog.MetaStoreClientPool$MetaStoreClient.<init>(MetaStoreClientPool.java:59) at com.cloudera.impala.catalog.MetaStoreClientPool$MetaStoreClient.<init>(MetaStoreClientPool.java:49) at com.cloudera.impala.catalog.MetaStoreClientPool.addClients(MetaStoreClientPool.java:116) at com.cloudera.impala.catalog.Catalog.<init>(Catalog.java:89) at com.cloudera.impala.catalog.CatalogServiceCatalog.<init>(CatalogServiceCatalog.java:102) at com.cloudera.impala.service.JniCatalog.<init>(JniCatalog.java:78) Caused by: java.lang.NumberFormatException: For input string: "0s" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Long.parseLong(Long.java:441) at java.lang.Long.parseLong(Long.java:483) at org.apache.hadoop.conf.Configuration.getLong(Configuration.java:1113) at org.apache.hadoop.hive.conf.HiveConf.getLongVar(HiveConf.java:913) at org.apache.hadoop.hive.conf.HiveConf.getLongVar(HiveConf.java:926) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:351) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.<init>(HiveMetaStore.java:289) at org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:56) at org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:61) at org.apache.hadoop.hive.metastore.HiveMetaStore.newHMSHandler(HiveMetaStore.java:4014) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:120) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:103) at com.cloudera.impala.catalog.MetaStoreClientPool$MetaStoreClient.<init>(MetaStoreClientPool.java:56) ... 5 more
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问