<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>排错 on LeoChu Space</title>
    <link>https://leochu.work/blog/tags/%E6%8E%92%E9%94%99/</link>
    <description>Recent content in 排错 on LeoChu Space</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Thu, 26 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://leochu.work/blog/tags/%E6%8E%92%E9%94%99/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>HDFS更改数据目录导致NameNode无法启动</title>
      <link>https://leochu.work/blog/tech/bigdata/hdfs%E6%9B%B4%E6%94%B9%E6%95%B0%E6%8D%AE%E7%9B%AE%E5%BD%95%E5%AF%BC%E8%87%B4namenode%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8/</link>
      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/hdfs%E6%9B%B4%E6%94%B9%E6%95%B0%E6%8D%AE%E7%9B%AE%E5%BD%95%E5%AF%BC%E8%87%B4namenode%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8/</guid>
      <description>&lt;h1 id=&#34;20260326-hdfs更改数据目录导致namenode无法启动&#34;&gt;20260326 HDFS更改数据目录导致NameNode无法启动&lt;/h1&gt;
&lt;h2 id=&#34;问题描述&#34;&gt;问题描述：&lt;/h2&gt;
&lt;p&gt;由于一开始硬盘还未挂载目录，安装cdh时，配置hdfs相关数据目录就用了默认的系统盘下的目录，如下&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/data/dfs/nn /data/dfs/jn /data/dfs/dn&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;后面数据盘挂载在/hadoop/data1/下，固将hdfs的数据目录改为&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/hadoop/data1/dfs/nn /hadoop/data1/dfs/jn /hadoop/data1/dfs/dn&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;重新启动hdfs，报错，分为三类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;nameNode 无法格式化&lt;/li&gt;
&lt;li&gt;丢失块信息100%&lt;/li&gt;
&lt;li&gt;Cloudera Manager 无法检测 HDFS 健康状态&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;解决&#34;&gt;解决：&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;停掉hdfs所有服务&lt;/li&gt;
&lt;li&gt;清空&lt;code&gt;/hadoop/data1/dfs/nn /hadoop/data1/dfs/jn /hadoop/data1/dfs/dn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;启动dataNode，failoverController 等服务（除NameNode，journalNode外）&lt;/li&gt;
&lt;li&gt;对activity NameNode执行format操作&lt;img loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/019d28d7-9af8-7238-a7f4-dd472d172e28-image.png&#34;&gt;&lt;/li&gt;
&lt;li&gt;启动所有journalNode&lt;/li&gt;
&lt;li&gt;启动activity NameNode&lt;/li&gt;
&lt;li&gt;对Standby NameNode执行Bootstrap Standby操作&lt;img loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/019d28dc-56f9-7688-875c-c416075ef63c-image.png&#34;&gt;&lt;/li&gt;
&lt;li&gt;启动Standby NameNode&lt;/li&gt;
&lt;li&gt;ssh客户端以hdfs用户执行&lt;code&gt;hdfs dfs -chmod -R 777 /data/tmp&lt;/code&gt; 等命令,完成以下目录创建及赋权,后续通过ranger做权限收口&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[hdfs@cdhmaster02 ~]$ hdfs dfs -ls Found 3 items
drwxrwxrwt   - hdfs supergroup          0 2026-03-26 12:31 /data
drwxrwxrwt   - hdfs supergroup          0 2026-03-26 17:25 /tmp
drwxr-xr-x   - hdfs supergroup          0 2026-03-26 17:24 /user
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;注意事项&#34;&gt;注意事项：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;操作顺序不可颠倒，否则可能导致 NameNode 或 JournalNode 数据不一致&lt;/li&gt;
&lt;li&gt;不能对 Standby NameNode 执行 format，否则会破坏 HA 集群&lt;/li&gt;
&lt;li&gt;**(重要)**清空目录操作仅限于尚未存储业务数据的集群或测试环境&lt;/li&gt;
&lt;li&gt;如果要迁移已有数据的数据目录，则需要&lt;code&gt;rsync -avh /data/dfs/nn/ /hadoop/data1/dfs/nn/&lt;/code&gt;类似命令&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;原因解释&#34;&gt;原因解释：&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;NameNode 无法格式化&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;HDFS 的 HA 模式下，Active NameNode 的元数据（fsimage + edits）必须与 Quorum Journal Nodes 保持一致。&lt;/li&gt;
&lt;li&gt;修改 HDFS 存储目录后，如果 JournalNode 目录仍保留旧数据或未初始化，NameNode 在检查 quorum 时会发现元数据不匹配，因此无法格式化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键点&lt;/strong&gt;：只允许对 Active NameNode 格式化，Standby NameNode 或 JournalNode 不能直接 format，否则会破坏 HA 的一致性机制。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;丢失块信息 100%&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;DataNode 存储目录修改后，旧数据无法被 NameNode 正确识别，因为 NameNode 的 fsimage 中没有对应块信息。&lt;/li&gt;
&lt;li&gt;NameNode 启动时会扫描 DataNode 上报的块，如果目录未初始化或数据不匹配，则所有块都被标记为丢失，从而导致 CM 显示 100% missing blocks。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键点&lt;/strong&gt;：HDFS 的块映射严格依赖 NameNode 的元数据，DataNode 目录未同步会造成“逻辑丢失”，即使物理数据存在。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloudera Manager 无法检测 HDFS&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;CM Canary 测试依赖基本的 HDFS I/O 操作（创建、写入、读取、删除文件）。&lt;/li&gt;
&lt;li&gt;当 NameNode 在安全模式或丢失块状态下，读写请求无法完成，Canary 测试失败，导致 CM 显示健康异常。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键点&lt;/strong&gt;：CM 健康检测反映的是 NameNode 和 DataNode 的可用性与一致性，而非磁盘本身状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;操作顺序要求严格&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Active NameNode 必须先格式化并启动，使元数据初始化完成。&lt;/li&gt;
&lt;li&gt;JournalNode 启动后才能形成 Quorum，保证 HA 的 edit log 复制。&lt;/li&gt;
&lt;li&gt;Standby NameNode 只能通过 &lt;strong&gt;Bootstrap Standby&lt;/strong&gt; 从 Active NameNode 同步元数据，否则会破坏 HA 的一致性，导致集群无法启动。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键点&lt;/strong&gt;：HDFS HA 的核心机制是 edit log 的 quorum 写入与 NameNode 状态同步，顺序错误会导致集群不可用。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
    </item>
    <item>
      <title>spark参数num-executors未生效</title>
      <link>https://leochu.work/blog/tech/bigdata/spark%E5%8F%82%E6%95%B0num-executors%E6%9C%AA%E7%94%9F%E6%95%88/</link>
      <pubDate>Sat, 23 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/spark%E5%8F%82%E6%95%B0num-executors%E6%9C%AA%E7%94%9F%E6%95%88/</guid>
      <description>&lt;h3 id=&#34;问题&#34;&gt;问题：&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;spark-submit --master yarn --conf spark.default.parallelism&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--deploy-mode cluster --driver-memory 4G --executor-memory 4G &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--num-executors &lt;span style=&#34;color:#ae81ff&#34;&gt;40&lt;/span&gt; --executor-cores &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--conf spark.yarn.executor.memoryOverhead&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;5g &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--class com.lz.hbase.CompanyInfo /tmp/test_langzi/original-spark_hbase01-1.0-SNAPSHOT.jar
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上提交参数中的&amp;ndash;num-executors 40没有生效，executors 大于40并且占满yarn资源，导致后来的yarn任务阻塞&lt;/p&gt;
&lt;h3 id=&#34;原因&#34;&gt;原因：&lt;/h3&gt;
&lt;p&gt;官方参数解释&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ndash;num-executors NUM
Number of executors to launch (Default: 2).
If dynamic allocation is enabled, the initial number of executors will be at least NUM.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;当开启动态分配时，num-executors成为了最小executors 数，而cdh中spark默认开启dynamic allocation，所以当yarn队列资源空闲时，真正的excutor数会大于设置的num-executors&lt;/p&gt;
&lt;h3 id=&#34;解决方案&#34;&gt;解决方案：&lt;/h3&gt;
&lt;p&gt;提交参数添加&lt;code&gt;--conf spark.dynamicAllocation.maxExecutors=40&lt;/code&gt; 限制最大excutor数&lt;/p&gt;
&lt;h3 id=&#34;附spark提交任务模板&#34;&gt;附：spark提交任务模板&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;spark-submit --master yarn --conf spark.default.parallelism&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--conf spark.dynamicAllocation.maxExecutors&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;40&lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--deploy-mode cluster --driver-memory 4G --executor-memory 4G &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--num-executors &lt;span style=&#34;color:#ae81ff&#34;&gt;40&lt;/span&gt; --executor-cores &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--conf spark.yarn.executor.memoryOverhead&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;4G &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--class com.lz.hbase.CompanyInfo /tmp/test_langzi/original-spark_hbase01-1.0-SNAPSHOT.jar
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>kafka集群运行节点运行不成功</title>
      <link>https://leochu.work/blog/tech/bigdata/kafka%E9%9B%86%E7%BE%A4%E8%BF%90%E8%A1%8C%E8%8A%82%E7%82%B9%E8%BF%90%E8%A1%8C%E4%B8%8D%E6%88%90%E5%8A%9F/</link>
      <pubDate>Sat, 26 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/kafka%E9%9B%86%E7%BE%A4%E8%BF%90%E8%A1%8C%E8%8A%82%E7%82%B9%E8%BF%90%E8%A1%8C%E4%B8%8D%E6%88%90%E5%8A%9F/</guid>
      <description>&lt;h3 id=&#34;1现象&#34;&gt;1.现象&lt;/h3&gt;
&lt;p&gt;由于zookeeper挂掉，造成kafka出现：There are 60 offline partitions。
&lt;img alt=&#34;Pasted image 20230327102327.png&#34; loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/Pasted%20image%2020230327102327.png&#34;&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;http://pmd.71360.com/download/attachments/12159442/image2021-11-25_11-12-28.png?version=1&amp;modificationDate=1637809890000&amp;api=v2&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;2造成的原因&#34;&gt;2.造成的原因&lt;/h3&gt;
&lt;p&gt;经过排查发现，由于kafka之前Topic在zookeeper中的数据还在，再重新建立会产生冲突导致失败。&lt;/p&gt;
&lt;h3 id=&#34;3解决方案&#34;&gt;3.解决方案&lt;/h3&gt;
&lt;p&gt;进入Zookeeper中将之前的脏数据删掉再重启kafka。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#1.进入zookeeper&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sh /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/zookeeper/bin/zkCli.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#2.删除掉脏数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;deleteall /brokers/topics
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>hiveOnSpak客户端RemoteSparkDriver超时</title>
      <link>https://leochu.work/blog/tech/bigdata/hiveonspark%E5%AE%A2%E6%88%B7%E7%AB%AFremotesparkdriver%E8%B6%85%E6%97%B6/</link>
      <pubDate>Sat, 12 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/hiveonspark%E5%AE%A2%E6%88%B7%E7%AB%AFremotesparkdriver%E8%B6%85%E6%97%B6/</guid>
      <description>&lt;h2 id=&#34;1现象&#34;&gt;1.现象&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;Pasted image 20230327113600.png&#34; loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/Pasted%20image%2020230327113600.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;2原因&#34;&gt;2.原因&lt;/h2&gt;
&lt;p&gt;集群资源使用率过高时可能会导致Hive On Spark查询失败-查询超时。&lt;/p&gt;
&lt;p&gt;从hive on spark的架构看出超时的位置：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Pasted image 20230327113614.png&#34; loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/Pasted%20image%2020230327113614.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;3解决&#34;&gt;3.解决&lt;/h2&gt;
&lt;p&gt;修改以下参数，重启集群&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;### 其他可设置的参考参数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 在Hive client和远程Spark driver通信过程中，随机生成密码的比特数。最好设置成8的倍数。　&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.spark.client.secret.bits
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 远程Spark drive用于处理RPC事件所用的最大线程数，默认是8。　&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.spark.client.rpc.threads
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Hive client和远程Spark driver通信最大的消息大小（单位：byte）,默认是50MB。　&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.spark.client.rpc.max.size
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 远程Spark driver的通道日志级别，必须是DEBUG, ERROR, INFO, TRACE, WARN中的一个。　&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.spark.client.channel.log.level
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 用于身份验证的SASL机制的名称。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.spark.client.rpc.sasl.mechanisms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#生产集群设置的相应参数：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.spark.client.future.timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;360s &lt;span style=&#34;color:#75715e&#34;&gt;# Hive client请求Spark driver的超时时间，如果没有指定时间单位，默认就是秒。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.metastore.client.socket.timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;360s &lt;span style=&#34;color:#75715e&#34;&gt;# 客户端socket超时时间，默认20秒。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.spark.client.connect.timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;360000ms &lt;span style=&#34;color:#75715e&#34;&gt;# Spark driver连接Hive client的超时时间，如果没有指定时间单位，默认就是毫秒。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.spark.client.server.connect.timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;360000ms &lt;span style=&#34;color:#75715e&#34;&gt;# Hive client和远程Spark driver握手时的超时时间，这个会在两边都检查的，如果没有指定时间单位，默认就是毫秒。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hive.spark.job.monitor.timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;180s &lt;span style=&#34;color:#75715e&#34;&gt;# Job监控获取Spark作业状态的超时时间，如果没有指定时间单位，默认就是秒。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>hdfs文件未关闭</title>
      <link>https://leochu.work/blog/tech/bigdata/hdfs%E6%96%87%E4%BB%B6%E6%9C%AA%E5%85%B3%E9%97%AD/</link>
      <pubDate>Sat, 28 Sep 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/hdfs%E6%96%87%E4%BB%B6%E6%9C%AA%E5%85%B3%E9%97%AD/</guid>
      <description>&lt;h3 id=&#34;问题描述&#34;&gt;问题描述：&lt;/h3&gt;
&lt;p&gt;使用hive load hdfs文件时报错：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-apl&#34; data-lang=&#34;apl&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;FAILED: Execution Error&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; return code &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; from org&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;apache&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;hadoop&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;hive&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;ql&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;exec&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;spark&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;SparkTask&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt; Spark job failed due to task failures: Cannot obtain block length for LocatedBlock&lt;span style=&#34;color:#66d9ef&#34;&gt;{&lt;/span&gt;BP&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1984322900&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;192.168.102.3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1594185446267&lt;/span&gt;:blk_1180034904_106295094&lt;span style=&#34;color:#e6db74&#34;&gt;;&lt;/span&gt; getBlockSize()&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4179&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;;&lt;/span&gt; corrupt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;false&lt;span style=&#34;color:#e6db74&#34;&gt;;&lt;/span&gt; offset&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;;&lt;/span&gt; locs&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;[&lt;/span&gt;DatanodeInfoWithStorage&lt;span style=&#34;color:#e6db74&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;192.168.102.11&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;9866&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cb5a2e07&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;20e9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;45&lt;/span&gt;fd&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;869&lt;/span&gt;b&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;d8b4ad170a4&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DISK&lt;span style=&#34;color:#e6db74&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; DatanodeInfoWithStorage&lt;span style=&#34;color:#e6db74&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;192.168.102.9&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;9866&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;74706&lt;/span&gt;bce&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;bb23&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;aaf&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;a6eb&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;ceaa9bdbf38c&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DISK&lt;span style=&#34;color:#e6db74&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; DatanodeInfoWithStorage&lt;span style=&#34;color:#e6db74&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;192.168.102.5&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;9866&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;57&lt;/span&gt;f122fb&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;b6ca&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;437&lt;/span&gt;c&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;a52e&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;f81efdd239c&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DISK&lt;span style=&#34;color:#e6db74&#34;&gt;]]&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;22&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;02&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;23&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;31&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;17&lt;/span&gt; ERROR ql&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;Driver: FAILED: Execution Error&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; return code &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; from org&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;apache&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;hadoop&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;hive&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;ql&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;exec&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;spark&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt;SparkTask&lt;span style=&#34;color:#a6e22e&#34;&gt;.&lt;/span&gt; Spark job failed due to task failures: Cannot obtain block length for LocatedBlock&lt;span style=&#34;color:#66d9ef&#34;&gt;{&lt;/span&gt;BP&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1984322900&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;192.168.102.3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1594185446267&lt;/span&gt;:blk_1180034904_106295094&lt;span style=&#34;color:#e6db74&#34;&gt;;&lt;/span&gt; getBlockSize()&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4179&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;;&lt;/span&gt; corrupt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;false&lt;span style=&#34;color:#e6db74&#34;&gt;;&lt;/span&gt; offset&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;;&lt;/span&gt; locs&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;[&lt;/span&gt;DatanodeInfoWithStorage&lt;span style=&#34;color:#e6db74&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;192.168.102.11&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;9866&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cb5a2e07&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;20e9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;45&lt;/span&gt;fd&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;869&lt;/span&gt;b&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;d8b4ad170a4&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DISK&lt;span style=&#34;color:#e6db74&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; DatanodeInfoWithStorage&lt;span style=&#34;color:#e6db74&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;192.168.102.9&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;9866&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;74706&lt;/span&gt;bce&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;bb23&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;aaf&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;a6eb&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;ceaa9bdbf38c&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DISK&lt;span style=&#34;color:#e6db74&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; DatanodeInfoWithStorage&lt;span style=&#34;color:#e6db74&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;192.168.102.5&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;9866&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;57&lt;/span&gt;f122fb&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;b6ca&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;437&lt;/span&gt;c&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;a52e&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;f81efdd239c&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt;DISK&lt;span style=&#34;color:#e6db74&#34;&gt;]]&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;分析问题&#34;&gt;分析问题：&lt;/h3&gt;
&lt;p&gt;可得知hdfs文件块出现异常，Cannot obtain block length for LocatedBlock，无法获取块文件长度信息&lt;/p&gt;
&lt;p&gt;猜测是因为昨日yarn重启导致hdfs文件未关闭写状态&lt;/p&gt;
&lt;h3 id=&#34;解决问题&#34;&gt;解决问题：&lt;/h3&gt;
&lt;p&gt;对hive load hdfs文件的地址执行检查命令&lt;/p&gt;</description>
    </item>
    <item>
      <title>hdfs文件块异常</title>
      <link>https://leochu.work/blog/tech/bigdata/hdfs%E6%96%87%E4%BB%B6%E5%9D%97%E5%BC%82%E5%B8%B8/</link>
      <pubDate>Sat, 14 Sep 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/hdfs%E6%96%87%E4%BB%B6%E5%9D%97%E5%BC%82%E5%B8%B8/</guid>
      <description>&lt;h3 id=&#34;问题描述&#34;&gt;问题描述：&lt;/h3&gt;
&lt;p&gt;使用hive load hdfs文件时报错：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;FAILED: Execution Error, &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; code 3 from org.&lt;span style=&#34;color:#a6e22e&#34;&gt;apache&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;hadoop&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;hive&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;ql&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;exec&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;spark&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;SparkTask&lt;/span&gt;. Spark job failed due to task failures: Cannot obtain block length &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; LocatedBlock{BP&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;1984322900&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;192.&lt;span style=&#34;color:#a6e22e&#34;&gt;168&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;102&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;1594185446267:blk1180034904106295094; getBlockSize()&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;4179; corrupt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;; offset&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;0; locs&lt;span style=&#34;color:#f92672&#34;&gt;=[&lt;/span&gt;DatanodeInfoWithStorage&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;192.&lt;span style=&#34;color:#a6e22e&#34;&gt;168&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;102&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;11&lt;/span&gt;:9866,DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cb5a2e07&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;20e9&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;45fd&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;869b&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;5d8b4ad170a4,DISK&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;, DatanodeInfoWithStorage&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;192.&lt;span style=&#34;color:#a6e22e&#34;&gt;168&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;102&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;9&lt;/span&gt;:9866,DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;74706bce&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;bb23&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;4aaf&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;a6eb&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;ceaa9bdbf38c,DISK&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;, DatanodeInfoWithStorage&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;192.&lt;span style=&#34;color:#a6e22e&#34;&gt;168&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;102&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;5&lt;/span&gt;:9866,DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;57f122fb&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;b6ca&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;437c&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;a52e&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;5f81efdd239c,DISK&lt;span style=&#34;color:#f92672&#34;&gt;]]&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 22&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;02&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;23 16:31:17 ERROR ql.&lt;span style=&#34;color:#a6e22e&#34;&gt;Driver&lt;/span&gt;: FAILED: Execution Error, &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; code 3 from org.&lt;span style=&#34;color:#a6e22e&#34;&gt;apache&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;hadoop&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;hive&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;ql&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;exec&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;spark&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;SparkTask&lt;/span&gt;. Spark job failed due to task failures: Cannot obtain block length &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; LocatedBlock{BP&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;1984322900&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;192.&lt;span style=&#34;color:#a6e22e&#34;&gt;168&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;102&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;1594185446267:blk1180034904106295094; getBlockSize()&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;4179; corrupt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;; offset&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;0; locs&lt;span style=&#34;color:#f92672&#34;&gt;=[&lt;/span&gt;DatanodeInfoWithStorage&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;192.&lt;span style=&#34;color:#a6e22e&#34;&gt;168&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;102&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;11&lt;/span&gt;:9866,DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cb5a2e07&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;20e9&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;45fd&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;869b&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;5d8b4ad170a4,DISK&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;, DatanodeInfoWithStorage&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;192.&lt;span style=&#34;color:#a6e22e&#34;&gt;168&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;102&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;9&lt;/span&gt;:9866,DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;74706bce&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;bb23&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;4aaf&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;a6eb&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;ceaa9bdbf38c,DISK&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;, DatanodeInfoWithStorage&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;192.&lt;span style=&#34;color:#a6e22e&#34;&gt;168&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;102&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;5&lt;/span&gt;:9866,DS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;57f122fb&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;b6ca&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;437c&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;a52e&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;5f81efdd239c,DISK&lt;span style=&#34;color:#f92672&#34;&gt;]]&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;/h3&gt;
&lt;h3 id=&#34;分析问题&#34;&gt;分析问题：&lt;/h3&gt;
&lt;p&gt;可得知hdfs文件块出现异常，Cannot obtain block length for LocatedBlock，无法获取块文件长度信息&lt;/p&gt;
&lt;p&gt;因为昨日CDH重启导致hdfs文件未关闭写状态&lt;/p&gt;
&lt;h3 id=&#34;解决问题&#34;&gt;解决问题：&lt;/h3&gt;
&lt;p&gt;对hive load hdfs文件的地址执行检查命令&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flume内存溢出卡死</title>
      <link>https://leochu.work/blog/tech/bigdata/flume%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA%E5%8D%A1%E6%AD%BB/</link>
      <pubDate>Sat, 31 Aug 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/flume%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA%E5%8D%A1%E6%AD%BB/</guid>
      <description>&lt;h3 id=&#34;问题agent启动后跑到一半报错卡死&#34;&gt;问题：agent启动后跑到一半报错卡死&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;Pasted image 20230327115742.png&#34; loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/Pasted%20image%2020230327115742.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;解决修改flume_ng启动脚本中jvm参数&#34;&gt;解决：修改flume_ng启动脚本中jvm参数：&lt;/h3&gt;
&lt;p&gt;vi /opt/cloudera/parcels/CDH/lib/flume-ng/bin/flume-ng&lt;/p&gt;
&lt;p&gt;把 &lt;em&gt;JAVA_OPTS=&amp;quot;-Xmx20m&lt;/em&gt;&amp;quot; 改为 &lt;em&gt;JAVA_OPTS=&amp;quot;-Xmx2048m&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Pasted image 20230327115750.png&#34; loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/Pasted%20image%2020230327115750.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;重启agent顺畅running&#34;&gt;重启agent，顺畅running&lt;/h3&gt;</description>
    </item>
    <item>
      <title>flume不关闭临时文件</title>
      <link>https://leochu.work/blog/tech/bigdata/flume%E4%B8%8D%E5%85%B3%E9%97%AD%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6/</link>
      <pubDate>Sat, 17 Aug 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/flume%E4%B8%8D%E5%85%B3%E9%97%AD%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6/</guid>
      <description>&lt;h4 id=&#34;问题描述flume采集到hdfs上的文件一直不关闭有tmp后缀hive读不到&#34;&gt;问题描述：flume采集到hdfs上的文件一直不关闭，有tmp后缀，hive读不到&lt;/h4&gt;
&lt;h4 id=&#34;原配置&#34;&gt;原配置：&lt;/h4&gt;
&lt;p&gt; # 当前文件写入达到该值时间后触发滚动创建新文件，单位：秒，设置为24小时防止产生小文件&lt;br&gt;
 ex_trade_agent.sinks.k1.hdfs.rollInterval = 86400&lt;br&gt;
 # 当前文件写入达到该大小后触发滚动创建新文件，单位：字节，设置为128M&lt;br&gt;
 ex_trade_agent.sinks.k1.hdfs.rollSize = 134217700&lt;br&gt;
 # 向 HDFS 写入内容时每次批量操作的 Event 数量&lt;br&gt;
 ex_trade_agent.sinks.k1.hdfs.batchSize = 2000&lt;br&gt;
 # 不根据 Event 数量来分割文件&lt;br&gt;
 ex_trade_agent.sinks.k1.hdfs.rollCount = 0&lt;/p&gt;
&lt;p&gt;可以看到只按照128m和24小时来判断是否写新文件，如果两者都不满足那就不关闭临时文件&lt;/p&gt;
&lt;h4 id=&#34;解决方案&#34;&gt;解决方案：&lt;/h4&gt;
&lt;p&gt; # 当前文件写入达到该值时间后触发滚动创建新文件，单位：秒，设置为4小时防止产生小文件&lt;br&gt;
 ex_trade_agent.sinks.k1.hdfs.rollInterval = 14400&lt;br&gt;
 # 当非活动文件超过4小时，关闭该文件&lt;br&gt;
 ex_trade_agent.sinks.k1.hdfs.idleTimeout = 14400&lt;/p&gt;</description>
    </item>
    <item>
      <title>flink虚拟内存不足</title>
      <link>https://leochu.work/blog/tech/bigdata/flink%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3/</link>
      <pubDate>Sat, 03 Aug 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/flink%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3/</guid>
      <description>&lt;h2 id=&#34;1现象&#34;&gt;1.现象&lt;/h2&gt;
&lt;p&gt;flink任务提交任务虚拟内存不足导致的失败&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Container &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;pid&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;3007,containerID&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;container_1599018748796_0004_01_000004&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; is  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;running 342252032B beyond the &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;VIRTUAL&amp;#39;&lt;/span&gt; memory limit. Current usage: 416.0 MB  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;of &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; GB physical memory used; 2.4 GB of 2.1 GB virtual memory used.  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Killing container.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;2原因&#34;&gt;2.原因&lt;/h2&gt;
&lt;p&gt;因为yarn强制检查虚拟内存是否符合配置导致的，当我们的服务器或者虚拟机的内存达不到配置要求，可能就会报这个错误 。&lt;/p&gt;
&lt;h2 id=&#34;3解决&#34;&gt;3.解决&lt;/h2&gt;
&lt;p&gt;修改检查虚拟内存的属性为false&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;yarn.nodemanager.vmem-check-enabled&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;false&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>ES映射hive数据类型date无法解析</title>
      <link>https://leochu.work/blog/tech/bigdata/es%E6%98%A0%E5%B0%84hive%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8Bdate%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90/</link>
      <pubDate>Sat, 06 Jul 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/es%E6%98%A0%E5%B0%84hive%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8Bdate%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90/</guid>
      <description>&lt;h3 id=&#34;在es中数据类型为date&#34;&gt;在es中数据类型为date：&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;addTime&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;format&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;yyyy-MM-dd HH:mm:ss&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;date&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;在hive建映射表&#34;&gt;在hive建映射表&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;EXTERNAL&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TABLE&lt;/span&gt; hive_es.cty_test1(
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;addTime date
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STORED &lt;span style=&#34;color:#66d9ef&#34;&gt;BY&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;org.elasticsearch.hadoop.hive.EsStorageHandler&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TBLPROPERTIES(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.resource&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;cty_test/cty_test&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.nodes&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;172.16.98.113,172.16.98.149,172.16.98.150,172.16.98.151,172.16.98.152&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.port&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;9200&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.mapping.names&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;addTime:addTime&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.date.format&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;yyyy-MM-dd HH:mm:ss&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.index.auto.create&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;false&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;查询报错&#34;&gt;查询报错：&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;Pasted image 20230327120417.png&#34; loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/Pasted%20image%2020230327120417.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;更改hive表数据类型为string&#34;&gt;更改hive表数据类型为string&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;EXTERNAL&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TABLE&lt;/span&gt; hive_es.cty_test5(
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;addTime string
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STORED &lt;span style=&#34;color:#66d9ef&#34;&gt;BY&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;org.elasticsearch.hadoop.hive.EsStorageHandler&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TBLPROPERTIES(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.resource&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;cty_test/cty_test&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.nodes&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;172.16.98.113,172.16.98.149,172.16.98.150,172.16.98.151,172.16.98.152&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.port&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;9200&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.mapping.names&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;addTime:addTime&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.date.format&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;yyyy-MM-dd HH:mm:ss&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;es.index.auto.create&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;false&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;查询继续报错&#34;&gt;查询继续报错：&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;Pasted image 20230327120434.png&#34; loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/Pasted%20image%2020230327120434.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;查阅资料&#34;&gt;查阅资料：&lt;/h3&gt;
&lt;p&gt;elasticsearch-hadoop中用于将ES中的日期转换为Hive中的日期格式的类为org.elasticsearch.hadoop.hive.HiveValueReader，通过查看该类的源码，其实现的用户日期转换的方法为：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@Override&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;protected&lt;/span&gt; Object &lt;span style=&#34;color:#a6e22e&#34;&gt;parseDate&lt;/span&gt;(String value, &lt;span style=&#34;color:#66d9ef&#34;&gt;boolean&lt;/span&gt; richDate) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; (richDate &lt;span style=&#34;color:#f92672&#34;&gt;?&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; TimestampWritable(&lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; Timestamp(DatatypeConverter.&lt;span style=&#34;color:#a6e22e&#34;&gt;parseDateTime&lt;/span&gt;(value).&lt;span style=&#34;color:#a6e22e&#34;&gt;getTimeInMillis&lt;/span&gt;())) : parseString(value));
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以看到它是通过javax.xml.bind.DatatypeConverter.parseDateTime(String)方法将对应的日期字符串转换为日期的，该方法不支持的日期字符串格式为“yyyy-MM-dd HH:mm:ss”的字符串，它支持的日期字符串的格式为“yyyy-MM-ddTHH:mm:ss”这样的。&lt;/p&gt;
&lt;h3 id=&#34;解决方案&#34;&gt;解决方案：&lt;/h3&gt;
&lt;p&gt;在建表时设置参数&amp;rsquo;es.mapping.date.rich&amp;rsquo;=&amp;lsquo;false&amp;rsquo;，然后hive字段类型设为string。&lt;/p&gt;
&lt;h3 id=&#34;官方解释&#34;&gt;官方解释：&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Whether to create a rich Date like object for Date fields in Elasticsearch or returned them as primitives (String or long). By default this is true. The actual object type is based on the library used; noteable exception being Map/Reduce which provides no built-in Date object and as such LongWritable and Text are returned regardless of this setting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>dolphin踩坑</title>
      <link>https://leochu.work/blog/tech/bigdata/dolphinscheduler%E8%B8%A9%E5%9D%91/</link>
      <pubDate>Sat, 22 Jun 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/dolphinscheduler%E8%B8%A9%E5%9D%91/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;一个sql节点只能写一条sql且结尾不能写分号&lt;/li&gt;
&lt;li&gt;使用sql节点时由于dolohin写了hive的预编译，某些时候变量不能正确传入，比如 location ‘xxxxx${变量名}’,在预编译过程中会直接变成 location ‘xxxxx?’
**解决方案：**把sql节点替换成shell节点用hive -e &amp;lsquo;&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;.. location ‘xxxxx${变量名}’来实现变量传参&lt;/li&gt;
&lt;li&gt;节点开启非严格模式，从节点偶尔会失效
**解决方案：**每个需要动态分区的sql都加上设置非严格模式的前置sql&lt;/li&gt;
&lt;li&gt;sql节点无法使用hive永久注册的udf
**解决方案：**在dolphin资源中心上传udf并创建（会注册成临时udf）&lt;/li&gt;
&lt;li&gt;sql节点使用 REPLACE函数会有bug，导致任务流无法保存
**解决方案：**使用REGEXP_REPLACE函数&lt;/li&gt;
&lt;li&gt;sql节点添加扩展jar包，无法使用本地路径
**解决方案：**需要先上传jar到hdfs，然后加上hdfs://nameservice1/前缀&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Hive 字段中文注释乱码</title>
      <link>https://leochu.work/blog/tech/bigdata/hive%E5%AD%97%E6%AE%B5%E4%B8%AD%E6%96%87%E6%B3%A8%E9%87%8A%E4%B9%B1%E7%A0%81%E4%BF%AE%E5%A4%8D/</link>
      <pubDate>Sun, 07 Aug 2022 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/hive%E5%AD%97%E6%AE%B5%E4%B8%AD%E6%96%87%E6%B3%A8%E9%87%8A%E4%B9%B1%E7%A0%81%E4%BF%AE%E5%A4%8D/</guid>
      <description>&lt;p&gt;Hive 字段中文乱码，如执行 show create table xxx 时，表级别注释、字段级别注释发现有乱码现象（都是？？？？）， 一般都是由 hive 元数据库的配置不当造成的。 &lt;/p&gt;
&lt;p&gt;此时可按如下步骤进行配置调整：&lt;/p&gt;
&lt;p&gt;登录 hive 的元数据库 mysql 中：&lt;/p&gt;
&lt;p&gt;&lt;em&gt;1、设置 hive 元数据库字符集&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;show create database hive;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;查看为 utf8，需变更为 latin1&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;_alter database hive character set latin1; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;2、更改如下表字段为字符集编码为 utf8&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;①修改表字段注解和表注解&lt;br&gt;
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8&lt;br&gt;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8&lt;br&gt;
② 修改分区字段注解：&lt;br&gt;
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;&lt;br&gt;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;&lt;br&gt;
③修改索引注解：&lt;br&gt;
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
