大数据常见错误解决方案(转载)

2023-11-18

1、用./bin/spark-shell启动spark时遇到异常:java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries!

解决方法:add export SPARK_LOCAL_IP="127.0.0.1" to spark-env.sh

2、java Kafka producer error:ERROR kafka.utils.Utils$ - fetching topic metadata for topics [Set(words_topic)] from broker [ArrayBuffer(id:0,host: xxxxxx,port:9092)] failed

解决方法:Set 'advertised.host.name' on server.properties of Kafka broker to server's realIP(same to producer's 'metadata.broker.list' property)

3、java.net.NoRouteToHostException: No route to host

解决方法:zookeeper的IP要配对

4、Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)   java.net.UnknownHostException: linux-pic4.site:

解决方法:add your hostname to /etc/hosts: 127.0.0.1 localhost linux-pic4.site

5、org.apache.spark.SparkException: A master URL must be set in your configuration

解决方法:SparkConf sparkConf = new SparkConf().setAppName("JavaDirectKafkaWordCount").setMaster("local");

6、Failed to locate the winutils binary in the hadoop binary path

解决方法:先安装好hadoop

7、启动spark时: Failed to get database default, returning NoSuchObjectException

解决方法:1)Copy winutils.exe from here(https://github.com/steveloughran/winutils/tree/master/hadoop-2.6.0/bin) to some folder say, C:\Hadoop\bin. Set HADOOP_HOME to C:\Hadoop.2)Open admin command prompt. Run C:\Hadoop\bin\winutils.exe chmod 777 /tmp/hive

8、org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true.

解决方法:Use this constructor JavaStreamingContext(sparkContext: JavaSparkContext, batchDuration: Duration)  替代  new JavaStreamingContext(sparkConf, Durations.seconds(5));

9、Reconnect due to socket error: java.nio.channels.ClosedChannelException

解决方法:kafka服务器broker ip写对

10、java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing to execute

解决方法:tranformation最后一步产生的那个RDD必须有相应Action操作,例如massages.print()等

11、经验:spark中数据写入ElasticSearch的操作必须在action中以RDD为单位执行

12、 Problem binding to [0.0.0.0:50010] java.net.BindException: Address already in use;

解决方法:master和slave配置成同一个IP导致的,要配成不同IP

13、CALL TO LOCALHOST/127.0.0.1:9000

解决方法:host配置正确,/etc/sysconfig/network    /etc/hosts    /etc/sysconfig/network-scripts/ifcfg-eth0

13、打开namenode:50070页面,Datanode Infomation只显示一个节点

解决方法:SSH配置错误导致,主机名一定要严格匹配,重新配置ssh免密码登录

14、经验:搭建集群时要首先配置好主机名,并重启机器让配置的主机名生效

15、INFO hdfs.DFSClient: Exception in createBlockOutputStream  java.net.NoRouteToHostException: No route to host

解决方法:如果主从节点能相互ping通,那就关掉防火墙 service iptables stop

16、经验:不要随意格式化HDFS,这会带来数据版本不一致等诸多问题,格式化前要清空数据文件夹

17、namenode1: ssh: connect to host namenode1 port 22: Connection refused

解决方法:sshd被关闭或没安装导致,which sshd检查是否安装,若已经安装,则sshd restart,并ssh 本机hostname,检查是否连接成功

18、Log aggregation has not completed or is not enabled.

解决方法:在yarn-site.xml中增加相应配置,以支持日志聚合

19、failed to launch org.apache.spark.deploy.history.History Server full log in

解决方法:正确配置spark-defaults.xml,spark-en.sh中SPARK_HISTORY_OPTS属性

20、Exception in thread "main" org.apache.spark.SparkException: Yarn application has already ended! It might have been killed or unable to launch application master.

解决方法:yarn-lient模式出现的异常,暂时无解

21、hadoop的文件不能下载以及YARN中Tracking UI不能访问历史日志

解决方法:windows系统不能解析域名所致,把hosts文件hostname复制到windows的hosts中

22、经验:HDFS文件路径写法为:hdfs://master:9000/文件路径,这里的master是namenode的hostname,9000是hdfs端口号。

23、Yarn JobHistory Error: Failed redirect for container

解决方法:将 http://:19888/jobhistory/logs  配置到yarn-site.xml中,重启yarn和JobHistoryServer

24、通过hadoop UI访问hdfs文件夹时,出现提示 Permission denied: user=dr.who

解决方法:namonode节点终端执行:hdfs dfs -chmod -R 755 /

25、经验:Spark的Driver只有在Action时才会收到结果
26、经验:Spark需要全局聚合变量时应当使用累加器(Accumulator)
27、经验:Kafka以topic与consumer group划分关系,一个topic的消息会被订阅它的消费者组全部消费,如果希望某个consumer使用topic的全部消息,可将该组只设一个消费者,每个组的消费者数目不能大于topic的partition总数,否则多出的consumer将无消可费

28、java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;

解决方法:统一ES版本,尽量避免直接在spark中创建ES client

29、eturned Bad Request(400) - failed to parse;Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes; Bailing out..

解决方法:写入ES的数据格式纠正

30、java.util.concurrent.TimeoutException: Cannot receive any reply in 120 seconds

解决方法:确保所有节点之间能够免密码登录

31、集群模式下,spark无法向elasticsearch写入数据

解决方法:采用这种写入方式(带上es配置的Map参数)results.foreachRDD(javaRDD -> {JavaEsSpark.saveToEs(javaRDD, esSchema, cfg);return null;});

32、经验:所有自定义类要实现serializable接口,否则在集群中无法生效
33、经验:resources资源文件读取要在Spark Driver端进行,以局部变量方式传给闭包函数

34、通过nio读取资源文件时,java.nio.file.FileSystemNotFoundException  at com.sun.nio.zipfs.ZipFileSystemProvider.getFileSystem(ZipFileSystemProvider.java:171)

解决方法:打成jar包后URI发生变化所致,形如jar:file:/C:/path/to/my/project.jar!/my-folder,要采用以下解析方式,

final Map env = new HashMap<>();
final String[] array = uri.toString().split("!");
final FileSystem fs = FileSystems.newFileSystem(URI.create(array[0]), env);
final Path path = fs.getPath(array[1]);
35、经验:DStream流转化只产生临时流对象,如果要继续使用,需要一个引用指向该临时流对象
36、经验:提交到yarn cluster的作业不能直接print到控制台,要用log4j输出到日志文件中

37、java.io.NotSerializableException: org.apache.log4j.Logger

解决方法:序列化类中不能包含不可序列化对象,you have to prevent logger instance from default serializabtion process, either make it transient or static. Making it static final is preferred option due to many reason because if you make it transient than after deserialization logger instance will be null and any logger.debug() call will result in NullPointerException in Java because neither constructor not instance initializer block is called during deserialization. By making it static and final you ensure that its thread-safe and all instance of Customer class can share same logger instance, By the way this error is also one of the reason Why Logger should be declared static and final in Java program. 

38、log4j:WARN Unsupported encoding

解决方法:1.把UTF改成小写utf-8    2.设置编码那行有空格

39、MapperParsingException[Malformed content, must start with an object

解决方法:采用接口JavaEsSpark.saveJsonToEs,因为saveToEs只能处理对象不能处理字符串

40、 ERROR ApplicationMaster: SparkContext did not initialize after waiting for 100000 ms. Please check earlier log output for errors. Failing the application

解决方法:资源不能分配过大,或者没有把.setMaster("local[*]")去掉

41、WARN Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)

解决方法:配置文件broker编号要写对,命令中的IP写真实IP

42、 User class threw exception: org.apache.spark.SparkException: org.apache.spark.SparkException: Couldn't find leaders for Set([mywaf,7], [mywaf,1])

解决方法:正确配置kafka,并重新创建topic

43、在ES界面发现有节点shard分片不显示

解决方法:该节点磁盘容量不足,清理磁盘增加容量

 

44、The method updateStateByKey(Function2,Optional,Optional>, int) in the type JavaPairDStream is not applicable for the arguments (Function2,Optional,Optional>, int)

解决方法:Spark use com.google.common.base.Optional not jdk default package java.util.Optional

45、NativeCrc32.nativeComputeChunkedSumsByteArray

解决方法:配置eclipse的hadoop-home,bin和system32文件夹中加入64位的2.6版本的hadoop.dll

46、经验:Spark Streaming包含三种计算模式:nonstate 、stateful 、window

 

47、Yarn的RM单点故障

解决方法:通过三节点zookeeper集群和yarn-site.xml配置文件完成Yarn HA

48、经验:kafka可通过配置文件使用自带的zookeeper集群

 

49、经验:Spark一切操作归根结底是对RDD的操作

 

50、如何保证kafka消息队列的强有序

解决方法:把需要强有序的topic只设置一个partition

51、linux批量多机互信

解决方法:pub秘钥配成一个

52、org.apache.spark.SparkException: Failed to get broadcast_790_piece0 of broadcast_790

解决方法:去除spark-defaults.conf中spark.cleaner.ttl配置

53、Yarn HA环境下,通过web访问history日志被跳转到8088而无法显示

解决方法:恢复Yarn Http默认端口8088

54、but got no response. Marking as slave lost

解决方法:使用yarn client提交作业遇到这种情况,暂时无解

55、Using config: /work/poa/zookeeper-3.4.6/bin/../conf/zoo.cfg  Error contacting service. It is probably not running.

解决方法:配置文件不正确,例如hostname不匹配等

56、经验:部署Spark任务,不用拷贝整个架包,只需拷贝被修改的文件,然后在目标服务器上编译打包。

 

57、Spark setAppName doesn't appear in Hadoop running applications UI

解决方法:set it in the command line for spark-submit "--name BetterName"

58、如何监控Sprak Streaming作业是否挂掉

解决方法:通过监控Driver端口或者根据yarn指令写Linux定时脚本监控

59、kafka内外网问题

解决方法:kafka机器双网卡,配置文件server.properties中advertised.host.name不要写IP,用域名形式,外网的生产者和内网的消费者各自解析成自己所需的IP。

60、经验:kafka的log.dirs不要设置成/tmp下的目录,貌似tmp目录有文件数和磁盘容量限制

 

61、kafka搬机器后,在新的集群,topic被自动创建,且只有一台broker负载

解决方法:server.properties中加上delete.topic.enable=true和auto.create.topics.enable=false,删除旧的topic,重新创建topic,重启kafka

62、安装sbt,运行sbt命令卡在Getting org.scala-sbt sbt 0.13.6 ...

解决方法:sbt takes some time to download its jars when it is run first time,不要退出,直至sbt处理完

63、经验:ES的分片类似kafka的partition

 

64、kafka出现OOM异常

解决方法:进入kafka broker启动脚本中,在export KAFKA_HEAP_OPTS="-Xmx24G -Xms1G"调大JVM堆内存参数

65、linux服务器磁盘爆满,检查超过指定大小的文件

解决方法:find / -type f -size +10G  

66、spark-direct kafka streaming限速

解决方法:spark.streaming.kafka.maxRatePerPartition,配置每秒每个kafka分区读取速率

67、org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: Found unrecoverable error returned Not Found(404) - [EngineClosedException CurrentState[CLOSED]

解决方法:在kopf插件中对该索引先close再open即可。造成原因可能是Index创建时有shard坏掉。

68、Job aborted due to stage failure: Task not serializable:

解决方法:Serializable the class;Declare the instance only within the lambda function passed in map;Make the NotSerializable object as a static and create it once per machine;Call rdd.forEachPartition and create the NotSerializable object in there

69、Pipeline write will fail on this Pipeline because it contains a stage which does not implement Writable

解决方法:this cannot be done as of Spark 1.6,需升级spark版本

70、IDEA从git导入scala项目,通篇提示变量never used

解决方法:将src文件夹mark directory as sources root

71、Run configuration in IntelliJ result in "Cannot start compilation: the output path is not specified for module "xxx". Specify the output path in Configure Project.

解决方法:In the default intellij options, "Make" was checked as "Before Launch". Unchecking it fixed the issue.

72、UDFRegistration$$anonfun$register$26$$anonfun$apply$2 cannot be cast to scala.Function1

解决方法:聚合函数不能用UDF,而应该定义UDAF

73、SPARK SQL replacement for mysql GROUP_CONCAT aggregate function

解决方法:自定义UDAF

74、在intellij idea的maven项目中,无法New scala文件

解决方法:pom.xml加入scala-tools插件相关配置,下载并更新

75、Error:scala: Error: org.jetbrains.jps.incremental.scala.remote.ServerException

解决方法:修改pom.xml配置文件,把scala换到最新版本

76、HADOOP 磁盘满的各节点平衡

解决方法:运行指令hdfs balancer -Threshold 3 或者 运行 start-balancer.sh 脚本格式:$Hadoop_home/bin/start-balancer.sh -threshold,参数3是比例参数,表示3%,也就是平各个DataNode直接磁盘使用率偏差在3%以内

77、经验:sparkSQL UDAF中update函数的第二个参数 input: Row 对应的并非DataFrame的行,而是被inputSchema投影了的行

 

78、Error: No TypeTag available for String  sqlContext.udf.register()

解决方法:scala版本不一致,统一所有scala版本

79、How to add a constant column in a Spark DataFrame?

解决方法:The second argument for DataFrame.withColumn should be a Column so you have to use a literal:   df.withColumn('new_column', lit(10))

80、Error:scalac:Error:object VolatileDoubleRef does not have a member create

解决方法:scala版本不一致,统一开发环境和系统的scala版本

81、java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet

解决方法:统一scala和spark的scala版本

82、maven项目打包去除不要的依赖,防止目标jar容量过大

解决方法:在中加入provided标明该依赖不放进目标jar,并用maven shaded方式打包

83、maven打包scala和java的混合项目

解决方法:使用指令 mvn clean scala:compile compile package

84、sparkSQL的udf无法注册UDAF聚合函数

解决方法:把UDAF自定义类的object关键字改成class声明

85、经验:运行时删除hadoop数据目录会导致依赖HDFS的JOB失效

 

86、[IllegalArgumentException[Document contains at least one immense term in field=XXX

解决方法:在ES中创建索引时对长文本字段要分词

87、maven shade打包资源文件没有打进去

解决方法:把resources文件夹放到src/main/下面,与scala或java文件夹并排

88、经验:spark Graph根据边集合构建图,顶点集合只是指定图中哪些顶点有效

 

89、ES写query用到正则匹配时,Determinizing automaton would result in more than 10000 states.

解决方法:正则表达式的字符串太长,复杂度过高,正则匹配要精练,不要枚举式匹配

90、java.lang.StackOverflowError   at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:53)

解决方法:sql语句的where条件过长,字符串栈溢出

91、org.apache.spark.shuffle.MetadataFetchFailedException:  Missing an output location for shuffle 0

解决方法:加大executor内存,减少executor个数,加大executor并发度

92、ExecutorLostFailure (executor 3 exited caused by one of the running tasks) Reason: Container killed by YARN for exceeding memory limits. 61.0 GB of 61 GB physical memory used

解决方法:移除RDD缓存操作,增加该JOB的spark.storage.memoryFraction系数值,增加该job的spark.yarn.executor.memoryOverhead值

93、EsRejectedExecutionException[rejected execution (queue capacity 1000) on org.elasticsearch.search.action.SearchServiceTransportAction

解决方法:减少spark并发数,降低对ES的并发读取

94、经验:单个spark任务的excutor核数不宜设置过高,否则会导致其他JOB延迟

 

95、经验:数据倾斜只发生在shuffle过程,可能触发shuffle操作的算子有:distinct  groupByKey  reduceByKey  aggregateByKey  join  cogroup  repartition等

 

96、如何定位spark的数据倾斜

解决方法:在Spark Web UI看一下当前stage各个task分配的数据量以及执行时间,根据stage划分原理定位代码中shuffle类算子

97、如何解决spark数据倾斜

解决方法:1)过滤少数导致倾斜的key(仅限于抛弃的Key对作业影响很小),2)提高shuffle操作并行度(提升效果有限),3)两阶段聚合(局部聚合+全局聚合),先对相同的key加前缀变成多个key,局部shuffle后再去掉前缀,再次进行全局shuffle(仅适用于聚合类的shuffle操作,效果明显,对于join类的shuffle操作无效),4)将reduce join转为map join,将小表进行广播,对大表map操作,遍历小表数据(仅适用于大小表或RDD情况),5)使用随机前缀和扩容RDD进行join,对其中一个RDD每条数据打上n以内的随机前缀,用flatMap算子对另一个RDD进行n倍扩容并扩容后的每条数据依次打上0~n的前缀,最后将两个改造key后的RDD进行join(能大幅缓解join类型数据倾斜,需要消耗巨额内存)

98、经验:shuffle write就是在一个stage结束计算之后,为了下一个stage可以执行shuffle类的算子,而将每个task处理的数据按key进行分类,将相同key都写入同一个磁盘文件中,而每一个磁盘文件都只属于下游stage的一个task,在将数据写入磁盘之前,会先将数据写入内存缓存中,下一个stage的task有多少个,当前stage的每个task就要创建多少份磁盘文件。

 

99、java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0

解决方法:元字符记得转义

100、spark弹性资源分配

解决方法:配置spark shuffle service,打开spark.dynamicAllocation.enabled

101、经验:kafka的comsumer groupID对于spark direct streaming无效

 

102、启动hadoop yarn,发现只启动了ResourceManager,没有启动NodeManager

解决方法:yarn-site.xml配置有问题,检查并规范各项配置

103、如何查看hadoop系统日志

解决方法:Hadoop 2.x中YARN系统的服务日志包括ResourceManager日志和各个NodeManager日志,它们的日志位置如下:ResourceManager日志存放位置是Hadoop安装目录下的logs目录下的yarn-*-resourcemanager-*.log,NodeManager日志存放位置是各个NodeManager节点上hadoop安装目录下的logs目录下的yarn-*-nodemanager-*.log

104、经验:小于128M的小文件都会占据一个128M的BLOCK,合并或者删除小文件节省磁盘空间

 

105、how to remove Non DFS Used

解决方法:1)清除hadoop数据目录中用户缓存文件:cd /data/hadoop/storage/tmp/nm-local-dir/usercache;du -h;rm -rf `find  -type f -size +10M`;  2)清理Linux文件系统中的垃圾数据

106、经验:Non DFS Used指的是非HDFS的所有文件

 

107、linux profile配置文件隔离

解决方法:cd /etc/profile.d;在这里新建相应配置脚本

108、The reference to entity "autoReconnect" must end with the ';' delimiter

解决方法:把&替换成&

109、Service hiveserver not found

解决方法:Try to run bin/hive --service hiveserver2 instead of hive --service hiveserver for this version of apache hive

110、Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create spark client.)'

解决方法:不要预编译的spark,重新编译spark,并保证与hive pom中的版本一致

111、java.lang.NoSuchFieldError: SPARK_RPC_SERVER_ADDRESS  at org.apache.hive.spark.client.rpc.RpcConfiguration.(RpcConfiguration.java:45)

解决方法:hive spark版本要匹配,同时必须是没有-phive参数编译的spark

112、javax.jdo.JDOFatalInternalException: Error creating transactional connection factory

解决方法:把mysql connector加入hive的lib中

113、org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create spark client  FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark.SparkTask

解决方法:原因有多种,去hive.log查看日志进一步定位问题

114、Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream

解决方法:编译spark用了hadoop-provided参数,导致缺少hadoop相关包

115、linux 输入错误命令 按删除键显示^H

解决方法:执行指令 stty erase ^H

116、经验:通过hive源文件pom.xml查看适配的spark版本,只要打版本保持一致就行,例如spark1.6.0和1.6.2都能匹配

 

117、经验:打开Hive命令行客户端,观察输出日志是否有打印“SLF4J: Found binding in [jar:file:/work/poa/hive-2.1.0-bin/lib/spark-assembly-1.6.2-hadoop2.6.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]”来判断hive有没有绑定spark

 

118、启动yarn,发现只启动了部分Nodemanager

解决方法:未启动的节点缺少yarn相关包,要保持所有节点jar包一致

119、Error: Could not find or load main class org.apache.hive.beeline.BeeLine

解决方法:重新编译Hive,并带上参数-Phive-thriftserver

120、经验:编译spark,hive on spark就不要加-Phive参数,若需sparkSQL支持hive语法则要加-Phive参数

 

121、User class threw exception: org.apache.spark.sql.AnalysisException: path hdfs://XXXXXX already exists.;

解决方法:df.write.format("parquet").mode("append").save("path.parquet")

122、check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1

解决方法:用新版mysql-connector

123、org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate

解决方法:vim core-site.xml,hadoop.proxyuser.root.hosts,value = *,hadoop.proxyuser.root.groups,value = *,restart yarn

124、java.lang.NoSuchMethodError: org.apache.parquet.schema.Types$MessageTypeBuilder.addFields([Lorg/apache/parquet/schema/Type;)Lorg/apache/parquet/schema/Types$BaseGroupBuilder;

解决方法:版本冲突所致,统一hive和spark中parquet组件版本

125、经验:可以通过hive-site.xml修改spark.executor.instances、spark.executor.cores、spark.executor.memory等配置来优化hive on spark执行性能,不过最好配成动态资源分配。

 

126、WARN SparkContext: Dynamic Allocation and num executors both set, thus dynamic allocation disabled.

解决方法:如果要使用动态资源分配,就不要设置执行器个数

127、Invalid configuration property node.environment: is malformed (for class io.airlift.node.NodeConfig.environment)

解决方法:the node.environment property (in the node.properties file) is set but fails to match the following regular expression: [a-z0-9][_a-z0-9]*. 重新规范命名

128、com.facebook.presto.server.PrestoServerNo factory for connector hive-XXXXXX

解决方法:在hive.properties中 connector.name写错了,应该为指定的版本,以便于presto使用对应的适配器,修改为:connector.name=hive-hadoop2

129、org.apache.spark.SparkException: Task failed while writing rows  Caused by: org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: null

解决方法:ES负载过高,修复ES

130、经验:如果maven下载很慢,很可能是被天朝的GFW墙了,可以在maven安装目录的setting.conf配置文件mirrors标签下加入国内镜像抵制**党的网络封锁,例如:

 
 

        nexus-aliyun

 

        *

 

        Nexus aliyun

 

        http://maven.aliyun.com/nexus/content/groups/public

 
    

131、RROR ApplicationMaster: Uncaught exception: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

解决方法:pom.xml文件中标签下加入

META-INF/*.SF

 

META-INF/*.DSA

 

META-INF/*.RSA

 

132、scala.MatchError: Buffer(10.113.80.29, None) (of class scala.collection.convert.Wrappers$JListWrapper)

解决方法:清除ES中跟scala数据类型不兼容的脏数据

133、HDFS误删文件如何恢复解决方法:core-site文件中加入

 
 

     fs.trash.interval

 

     2880

 

     HDFS垃圾箱设置,可以恢复误删除,配置的值为分钟数,0为禁用

 
 

恢复文件执行 hdfs dfs -mv  /user/root/.Trash/Current/误删文件    /原路径

 

134、改了linux定时脚本里边部分任务顺序,导致有些任务未执行,而有些重复执行

解决方法:Linux脚本修改后实时生效,务必在脚本全部执行完再修改,以免产生副作用

135、经验:spark两个分区方法coalesce和repartition,前者窄依赖,分区后数据不均匀,后者宽依赖,引发shuffle操作,分区后数据均匀

 

136、org.apache.spark.SparkException: Task failed while writing rows   scala.MatchError: Buffer(10.113.80.29, None) (of class scala.collection.convert.Wrappers$JListWrapper)

解决方法:ES数据在sparksql类型转化时不兼容,可通过EsSpark.esJsonRDD以字符串形式取ES数据,再把rdd转换成dataframe

137、Container exited with a non-zero exit code 143  Killed by external signal

解决方法:分配的资源不够,加大内存或者调整代码,尽量避免类似JsonObject这样的大对象过度消耗内存,或者Include below properties in yarn-site.xml and restart VM,

 

   yarn.nodemanager.vmem-check-enabled

 

   false

 

   Whether virtual memory limits will be enforced for containers

 
 
 

   yarn.nodemanager.vmem-pmem-ratio

 

   4

 

   Ratio between virtual memory to physical memory when setting memory limits for containers

 
 

138、对已有jar手动生成maven依赖

解决方法:mvn install:install-file -Dfile=spark-assembly-1.6.2-hadoop2.6.0.jar -DgroupId=org.apache.repack -DartifactId=spark-assembly-1.6.2-hadoop2.6.0 -Dversion=2.6 -Dpackaging=jar

139、FAILED: SemanticException [Error 10006]: Line 1:122 Partition not found ''2016-08-01''

解决方法:hive版本太新,hive自身bug,把hive版本从2.1.0降到1.2.1

140、ParseException line 1:17 mismatched input 'hdfs' expecting StringLiteral near 'inpath' in load statement

解决方法:去掉以hdfs开头的IP端口号前缀,直接写HDFS中的绝对路径,并用单引号括起来

141、[ERROR] Terminal initialization failed; falling back to unsupported  java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected解决方案:export HADOOP_USER_CLASSPATH_FIRST=true

142、crontab中启动的shell脚本不能正常运行,但是使用手动执行没有问题

解决方法:在脚本第一行写上source /etc/profile,因为cront进程不会自动加载用户目录下的.profile文件

143、SparkListenerBus has already stopped! Dropping event SparkListenerStageCompleted

解决方法:集群资源不够,确保真实剩余内存大于spark job申请的内存

144、PrestoException: ROW comparison not supported for fields with null elements

解决方法:把 !=null 换成 is not null

145、启动presto服务器,部分节点启动不成功

解决方法:JVM所分配的内存,必须小于真实剩余内存

146、经验:presto进程一旦启动,JVM server会一直占用内存

 

147、Error injecting constructor, java.lang.IllegalArgumentException: query.max-memory-per-node set to 20GB, but only 10213706957B of useable heap available

解决方法:Presto will claim 0.40 * max heap size for the system pool, so your query.max-memory-per-node must not exceed this. You can increase the heap or decrease query.max-memory-per-node.

148、failed: Encountered too many errors talking to a worker node. The node may have crashed or be under too much load. failed java.util.concurrent.CancellationException: Task was cancelled

解决方法:such exceptions caused by timeout limits,延长等待时间,在work节点config配置中set exchange.http-client.request-timeout=50s

149、大数据ETL可视化有哪些主流方案

解决方法:可以考虑的技术栈有ELK(elasticsearch+logstash+kibana)或者HPA(hive+presto+airpal)

150、经验:presto集群没必要采用on yarn模式,因为hadoop依赖HDFS,如果部分机器磁盘很小,HADOOP会很尴尬,而presto是纯内存计算,不依赖磁盘,独立安装可以跨越多个集群,可以说有内存的地方就可以有presto

 

转载于:https://www.cnblogs.com/cstzhou/p/6437270.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据常见错误解决方案(转载) 的相关文章

  • php 解析 %e5%80%aa%e9%a3%9e,content.json

    title Linux安装Docker date 2020 11 08T14 54 29 000Z path 2020 11 08 Linux安装Docker tags name Linux Docker slug Linux Docker
  • loC和AOP使用扩展

    6 1多种方式实现依赖注入 6 1 1构造注入 6 1 2技能训练1 6 1 3使用p命名空间实现属性注入 Spring配置文件从2 0版本开始采用schema形式 使用不同的命名空间管理不同类型的配置使得配置文件更具扩展性 列如 我们曾使
  • [Python]pip查找包的历史版本

    pip查找包的历史版本 场景 在一些时候通过pip install xxx 安装第三方库的时候默认情况下安装最新版本 由于是最新版本有个稳定性就不得不考虑其中 所以部分场景会存在一些bug这就要求我们安装历史版本 对一些更新频率比较高的三方
  • Window&linux使用换行符的问题总结

    1 Window使用Git时 设置换行符格式 参见 https www jianshu com p 6ef90ce18ba2 2 vi下设置回车换行符等特殊符号 换行方式 在早期的打印机时代 开始新的一行要占用两个字符的时间 如果到了一行的
  • java.lang.UnsatisfiedLinkError

    java lang UnsatisfiedLinkError 原因 jni注册的时候匹配写错了 I B B 如下 static JNINativeMethod methods native getSps I B B void Native
  • Keras保存模型并载入模型继续训练

    我们以MNIST手写数字识别为例 import numpy as np from keras datasets import mnist from keras utils import np utils from keras models
  • PyQt5中的按钮3-QCommandLinkButton

    PyQt5中的按钮3 QCommandLinkButton QCommandLinkButton介绍 QCommandLinkButton举例 QCommandLinkButton介绍 CommandLinkButton 外观像是一个被设置
  • verilog赋多位值_关于verilog 赋值

    1 wire表示直通 即只要输入有变化 输出马上无条件地反映 reg表示一定要有触发 输出才会反映输入 2 只有 lt 表示非阻塞 给沿触发的寄存器赋值 是阻塞赋值 给电平触发的信号赋值 3 不指定就默认为1位wire类型 专门指定出wir
  • 计算机视觉论文-2021-07-19

    本专栏是计算机视觉方向论文收集积累 时间 2021年7月19日 来源 paper digest 欢迎关注原创公众号 计算机视觉联盟 回复 西瓜书手推笔记 可获取我的机器学习纯手推笔记 直达笔记地址 机器学习手推笔记 GitHub地址 1 T
  • 在struts1.1框架下,利用smartupload实现文件的上传(可以是多个文件)

    1 前端页面upload jsp 后台处理程序UplodAction java 2 struts config的配置参数如下 没有设置 ActionForm
  • JAVA的WebService规范(支持)

    SOA Service Oriented Architecture 面向服务架构是一种思想 它将应用程序的不同功能单元通过中立的契约 独立于硬件平台 操作系统和编程语言 联系起来 使得各种形式的功能单元更好的集成 目前来说 WebServi
  • windows7旗舰版 appium环境搭建

    1 安装jdk 8u171 windows x64 exe 注意配置环境变量 参考资料 https jingyan baidu com article 6dad5075d1dc40a123e36ea3 html java version 查
  • Modbus RTU协议各知识点入门 + 实例

    文章目录 1 起因 2 几个重点 2 1 一些难懂的概念 2 2 CRC的高低位 2 3 其他 3 介绍 3 1 起源 3 2 分类 4 格式 4 1 串口协议 4 2 帧格式 5 数据类型 6 功能码 7 CRC16 modbus 8 实
  • React(Hook介绍)

    为什么要用Hook 介绍Hooks之前 首先要给大家说一下React的组件创建方式 一种是类组件 一种是纯函数组件 并且React团队希望 组件不要变成复杂的容器 最好只是数据流的管道 开发者根据需要 组合管道即可 也就是说组件的最佳写法应
  • 如何在 CentOS 8 上安装 Python 3.8

    本文来自于 阿里云官方镜像站 https developer aliyun com mirror utm content g 1000307095 原文链接 https developer aliyun com article 756221
  • 报错java.lang.Long cannot be cast to java.lang.Integer解析

    用博客记录工作中出现的问题 给自己一个提醒 也给其他朋友一些借鉴 报错 java lang Long cannot be cast to java lang Integer Long 无法转化成Integer类型 这个异常 经常出现在hin
  • 正确理解Widget::Widget(QWidget *parent) :QWidget(parent)这句话

    该如何理解下面段代码的第二行QWidget parent 1 Widget Widget QWidget parent 2 QWidget parent 3 4 在讲解原因之前 先请大家看下面的一个例子 include
  • git切换分支时报错(error: pathspec ‘master‘ did not match any file(s) known to git.)的解决方法

    git切换分支时报错 切换分支 root git my code git checkout master 产生如下报错 error pathspec master did not match any file s known to git
  • 用 Python 爬取网红城市大长沙!

    这两天获取了两份关于长沙的数据 长沙景点和长沙美食 之后进行了分析 如果有朋友想去长沙或者周边城市玩 要仔细看看喔 导入库 长沙景点 数据获取 长沙景点的数据获取方法和之前那篇关于厦门的文章是一样的 只是重新跑了一遍代码 具体过程不再阐述
  • HADOOP集群搭建

    安装步骤 机器mini yum mini2 mini3 mini4 注意 下面的步骤在4台机子上都要做的操作 1先将虚拟机的网络模式选为NAT 2修改主机名 vi etc sysconfig network NETWORKING yes H

随机推荐

  • git:kex_exchange_identification:Connection closed by 52.74.223.119 port 22

    使用Rider的git进行push操作时提示 kex exchange identification Connection closed by remote host Connection closed by 52 74 223 119 p
  • AJAX 缓存处理

    关于AJAX请求服务器后缓存数据 造成没有及时刷新的问题 最近在做项目的时候 使用了ajax去请求服务器的数据 刚开始还可以 我测试一切运行正常 我不是专业的测试人员哈 所以还是有些问题没有测出来哈 后来ajax请求的数据变化了 但是页面数
  • 设计模式之命令模式

    在日常生活中 我们常常会遇到这样一些问题 需要向某些对象发送请求 但是并不知道请求的接收者是谁 也不知道被请求的操作是哪个 我们只需在程序运行时指定具体的请求接收者即可 此时 可以使用命令模式来进行设计 使得请求发送者与请求接收者消除彼此之
  • react 显示当前时间_react中monent如何获取日期?

    方法 1 使用 npm install moment save 安装moment 2 在组件中使用import语句引入moment 3 使用monent提供的方法来获取日期 例 moment format 获取当前时间 本教程操作环境 wi
  • OneFlow 中的 Softmax

    Softmax 是深度学习模型中的常见算子 PyTorch 的 Softmax 算子直接调用 cuDNN 的接口 而 OneFlow 内部针对输入数据的类别数量 采用3个 kernel 来分别处理 在多数情况下都可以获得比 cuDNN 更优
  • 【Git】(三)回退版本

    1 git reset命令 1 1 回退至上一个版本 git reset hard HEAD 1 2 将本地的状态回退到和远程的一样 git reset hard origin master 注意 谨慎使用 hard 参数 它会删除回退点之
  • redis必杀高级:安全

    题记 我们可以通过 redis 的配置文件设置密码参数 这样客户端连接到 redis 服务就需要密码验证 这样可以让你的 redis 服务更安全 例如 设置密码 查看是否设置了密码验证 127 0 0 1 6379 gt CONFIG ge
  • 【Java日志】你真的知道怎么使用Java日志API吗?

    你真的知道怎么使用Java日志API吗 一 背景 二 Java日志API错误使用示例 1 占位符的错误使用示例 2 异常日志的错误使用示例 三 推荐一个学习Java日志的项目 一 背景 在平时的开发过程中 常常看到一些编码不规范的打印日志的
  • Flask读取RTSP视频流,及其简单的一个案例

    Flask读取RTSP视频流 及其简单的一个案例 此章节包括通过是使用Flask可以实时地显示RTSP视频流 代码确实非常简单 源于Github 主要为为Nvidia Deepstream极致细节 3 Deepstream Python R
  • 华为怎么显示返回按键_华为怎么把返回那三个键调出来

    华为怎么把返回那三个键调出来 其实这个方法一点都不难 1 首先在华为nova3的桌面找到 设置 并点击进入 2 点击打开 系统 3 在系统菜单下 点击进入 系统导航 4 点击勾选 屏幕内虚拟导航栏 即可打开虚拟导航 不勾选即可直接关闭虚拟导
  • vscode配置快捷键注释模板

    文章目录 前言 一 打开配置项 1 首选项编辑配置 2 新建代码片段 3 配置注释文件名 二 新建代码注释模板 三 注释使用 前言 本篇文章可以在vscode中配置快捷键显示代码的信息注释 如作者 描述 创建时间等 一 打开配置项 1 首选
  • SD卡中FAT32文件格式快速入门(图文详细介绍)

    说明 MBR Master Boot Record 主引导记录 DBR DOS Boot Record 引导扇区 FAT File Allocation Table 文件分配表 硬件 本文SD卡为Kingston 4GB FAT32格式 簇
  • 【Python】 Pandas数据导入与导出

    数据读取 import pandas as pd data pd read csv data csv 读取数据文件 print data 数据索引与查看 x data loc x 读取表头为 x 的那一列的数据 print x y data
  • 如何自学现代计算机科学(转)

    简介 这里收集了很多学习资源 都是关于一些适合本科生学习的计算机科学 话题 Topics 这里仅仅只提供 话题 列表 而不会提供诸如知识点剖析 练习题等内容 如果你对某一个话题特别感兴趣 想深入研究一下 但又买不起文中提到的书籍 实体书 那
  • 使用docker搭建FastDFS文件系统

    使用docker搭建FastDFS文件系统 1 拉取fastdfs镜像 docker search fastdfs 这里要选择 delron fastdfs 镜像 docker pull delron fastdfs 2 启动容器 2 1
  • 车祸相关公开数据集(免费下载)

    Vehicle Collisions 纽约市机动车与人相撞 背景描述 这是 2021 年在纽约发生的人与机动车碰撞事故的数据 仅过滤掉超过 1 000 美元的受伤或死亡案件 总结了事件的日期和时间 受伤的位置以及警方对事件的描述 数据说明
  • Dubbo源码分析-Spring与Dubbo整合原理与源码分析(二)

    Spring与Dubbo整合的整体流程 基于apache dubbo 2 7 15 因为dubbo有较多的兼容以前的代码比如 DubboReference 以前就有两个版本 Reference 和 com alibaba dubbo con
  • list 分组_学习笔记系列_10_数据聚合与分组操作

    开篇导包 一 数据聚合 df groupby 详解 DataFrame 参数 by 用作分组的条件对象 mapping function label or list of labels axis 轴方向 0 or index 1 or co
  • Golang笔记:UDP基础使用与广播

    文章目录 目的 基础说明 作为服务器使用 作为客户端使用 广播 总结 目的 UDP是比较基础常用的网络通讯方式 这篇文章将介绍Go语言中UDP基础使用的一些内容 本文中使用 Packet Sender 工具进行测试 其官网地址如下 http
  • 大数据常见错误解决方案(转载)

    1 用 bin spark shell启动spark时遇到异常 java net BindException Can t assign requested address Service sparkDriver failed after 1