<?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>Hadoop on LeoChu Space</title>
    <link>https://leochu.work/blog/tags/hadoop/</link>
    <description>Recent content in Hadoop 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/hadoop/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>CDH基础配置及优化</title>
      <link>https://leochu.work/blog/tech/bigdata/cdh%E5%9F%BA%E7%A1%80%E9%85%8D%E7%BD%AE%E5%8F%8A%E4%BC%98%E5%8C%96/</link>
      <pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/cdh%E5%9F%BA%E7%A1%80%E9%85%8D%E7%BD%AE%E5%8F%8A%E4%BC%98%E5%8C%96/</guid>
      <description>&lt;h1 id=&#34;一hive中文注释乱码&#34;&gt;一、hive中文注释乱码&lt;/h1&gt;
&lt;h2 id=&#34;1设置-hive-元数据库字符集&#34;&gt;&lt;em&gt;1、设置 hive 元数据库字符集&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;show create database hive;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/019d0a6a-72c9-7608-ac3a-0a57f498e4fd-image.png&#34;&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;img loading=&#34;lazy&#34; src=&#34;https://leochu.work/blog/resource/019d0a6b-d35a-7499-96cd-9281218f8e88-image.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;2更改如下表字段为字符集编码为-utf8&#34;&gt;&lt;em&gt;2、更改如下表字段为字符集编码为 utf8&lt;/em&gt;&lt;/h2&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>
    <item>
      <title>CDH6.3.2集群部署</title>
      <link>https://leochu.work/blog/tech/bigdata/cdh6.3.2%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2/</link>
      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/cdh6.3.2%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2/</guid>
      <description>&lt;p&gt;使用ansible做自动化部署&lt;/p&gt;
&lt;h1 id=&#34;cdh-集群安装指南&#34;&gt;CDH 集群安装指南&lt;/h1&gt;
&lt;h2 id=&#34;环境准备&#34;&gt;环境准备&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;项目&lt;/th&gt;
          &lt;th&gt;值&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;NFS 服务器&lt;/td&gt;
          &lt;td&gt;xxx.xxx.xxx.xxx:/nfs/share&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Inventory&lt;/td&gt;
          &lt;td&gt;inventory/cdh-init.ini&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;安装步骤&#34;&gt;安装步骤&lt;/h2&gt;
&lt;h3 id=&#34;步骤-1配置-etchosts-和挂载-nfs&#34;&gt;步骤 1：配置 /etc/hosts 和挂载 NFS&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ansible-playbook cdh-hosts-nfs.yml -i inventory/cdh-init.ini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;步骤-2系统初始化&#34;&gt;步骤 2：系统初始化&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ansible-playbook cdh-init-raw.yaml -i inventory/cdh-init.ini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;验证&#34;&gt;验证&lt;/h2&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 验证 NFS 挂载&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ansible cdh_all -i inventory/cdh-init.ini -m shell -a &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ls /mnt&amp;#34;&lt;/span&gt; -b
&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;# 验证 Java&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ansible cdh_all -i inventory/cdh-init.ini -m shell -a &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;java -version&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;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 验证 SELinux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ansible cdh_all -i inventory/cdh-init.ini -m shell -a &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;sestatus&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;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 验证 haveged&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ansible cdh_all -i inventory/cdh-init.ini -m shell -a &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;systemctl status haveged&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;安装介质目录&#34;&gt;安装介质目录&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/mnt/
├── cdh/                    # CDH Parcel
├── ClouderaManager/        # CM 6.3.1
└── mysql/                  # MySQL 5.7 RPM
&lt;/code&gt;&lt;/pre&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>部署CDH踩坑总结</title>
      <link>https://leochu.work/blog/tech/bigdata/%E9%83%A8%E7%BD%B2cdh%E8%B8%A9%E5%9D%91%E6%80%BB%E7%BB%93/</link>
      <pubDate>Sat, 08 Jun 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/%E9%83%A8%E7%BD%B2cdh%E8%B8%A9%E5%9D%91%E6%80%BB%E7%BB%93/</guid>
      <description>&lt;p&gt;1.zookeeper刚启动时会报错，晾它两分钟会就好了&lt;/p&gt;
&lt;p&gt;2.更改或迁移服务时一定要切换到维护模式并停止当前服务！！！&lt;/p&gt;
&lt;p&gt;3.cdh01的hadoop组件起不来，原因是一些文件夹的权限问题，更改权限并且更改拥有者及组（参照其他服务器）&lt;/p&gt;
&lt;p&gt;4.内存不足主要因为NodeManager内存调的太高，调小即可（个人经验，5台机器可用内存和为30*4+20=160G，可同时对20G的数据做处理，感觉够用了）&lt;/p&gt;
&lt;p&gt;5.oozie报错：Failed to install Oozie ShareLib，这个问题是cdh6.2的通病，只要安装oozie就会 出现(无论是升级，还是新装。&lt;/p&gt;
&lt;p&gt;解决：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cd /opt/cloudera/parcels/CDH/lib/oozie/libtools&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ln -s ../../../jars/logredactor-2.0.7.jar logredactor-2.0.7.jar&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;执行完后重启oozie。&lt;/p&gt;
&lt;p&gt;6.oozie端口号11000冲突，改为11002&lt;/p&gt;
&lt;p&gt;7.从节点不要提前安装agent服务！！！直接在web界面安装！&lt;/p&gt;
&lt;p&gt;8.把CM和CDH装好后面就轻松多了&lt;/p&gt;
&lt;p&gt;9.==主机名不要出现下划线!==&lt;/p&gt;</description>
    </item>
    <item>
      <title>hadoop默认端口</title>
      <link>https://leochu.work/blog/tech/bigdata/hadoop%E9%BB%98%E8%AE%A4%E7%AB%AF%E5%8F%A3/</link>
      <pubDate>Sun, 10 Jul 2022 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/hadoop%E9%BB%98%E8%AE%A4%E7%AB%AF%E5%8F%A3/</guid>
      <description>&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;端口&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;9000&lt;/td&gt;
          &lt;td&gt;fs.defaultFS，如：hdfs://172.25.40.171:9000&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9001&lt;/td&gt;
          &lt;td&gt;dfs.namenode.rpc-address，DataNode会连接这个端口&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50070&lt;/td&gt;
          &lt;td&gt;dfs.namenode.http-address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50470&lt;/td&gt;
          &lt;td&gt;dfs.namenode.https-address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50100&lt;/td&gt;
          &lt;td&gt;dfs.namenode.backup.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50105&lt;/td&gt;
          &lt;td&gt;dfs.namenode.backup.http-address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50090&lt;/td&gt;
          &lt;td&gt;dfs.namenode.secondary.http-address，如：172.25.39.166:50090&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50091&lt;/td&gt;
          &lt;td&gt;dfs.namenode.secondary.https-address，如：172.25.39.166:50091&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50020&lt;/td&gt;
          &lt;td&gt;dfs.datanode.ipc.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50075&lt;/td&gt;
          &lt;td&gt;dfs.datanode.http.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50475&lt;/td&gt;
          &lt;td&gt;dfs.datanode.https.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50010&lt;/td&gt;
          &lt;td&gt;dfs.datanode.address，DataNode的数据传输端口&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8480&lt;/td&gt;
          &lt;td&gt;dfs.journalnode.rpc-address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8481&lt;/td&gt;
          &lt;td&gt;dfs.journalnode.https-address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8032&lt;/td&gt;
          &lt;td&gt;yarn.resourcemanager.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8088&lt;/td&gt;
          &lt;td&gt;yarn.resourcemanager.webapp.address，YARN的http端口&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8090&lt;/td&gt;
          &lt;td&gt;yarn.resourcemanager.webapp.https.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8030&lt;/td&gt;
          &lt;td&gt;yarn.resourcemanager.scheduler.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8031&lt;/td&gt;
          &lt;td&gt;yarn.resourcemanager.resource-tracker.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8033&lt;/td&gt;
          &lt;td&gt;yarn.resourcemanager.admin.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8042&lt;/td&gt;
          &lt;td&gt;yarn.nodemanager.webapp.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8040&lt;/td&gt;
          &lt;td&gt;yarn.nodemanager.localizer.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8188&lt;/td&gt;
          &lt;td&gt;yarn.timeline-service.webapp.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;10020&lt;/td&gt;
          &lt;td&gt;mapreduce.jobhistory.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;19888&lt;/td&gt;
          &lt;td&gt;mapreduce.jobhistory.webapp.address&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2888&lt;/td&gt;
          &lt;td&gt;ZooKeeper，如果是Leader，用来监听Follower的连接&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3888&lt;/td&gt;
          &lt;td&gt;ZooKeeper，用于Leader选举&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2181&lt;/td&gt;
          &lt;td&gt;ZooKeeper，用来监听客户端的连接&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;60010&lt;/td&gt;
          &lt;td&gt;hbase.master.info.port，HMaster的http端口&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;60000&lt;/td&gt;
          &lt;td&gt;hbase.master.port，HMaster的RPC端口&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;60030&lt;/td&gt;
          &lt;td&gt;hbase.regionserver.info.port，HRegionServer的http端口&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;60020&lt;/td&gt;
          &lt;td&gt;hbase.regionserver.port，HRegionServer的RPC端口&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8080&lt;/td&gt;
          &lt;td&gt;hbase.rest.port，HBase REST server的端口&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;10000&lt;/td&gt;
          &lt;td&gt;hive.server2.thrift.port&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9083&lt;/td&gt;
          &lt;td&gt;hive.metastore.uris&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;</description>
    </item>
    <item>
      <title>CDH组件参数调优</title>
      <link>https://leochu.work/blog/tech/bigdata/cdh%E7%BB%84%E4%BB%B6%E5%8F%82%E6%95%B0%E8%B0%83%E4%BC%98/</link>
      <pubDate>Sun, 29 May 2022 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/cdh%E7%BB%84%E4%BB%B6%E5%8F%82%E6%95%B0%E8%B0%83%E4%BC%98/</guid>
      <description>&lt;h3 id=&#34;1yarn参数调优&#34;&gt;1.YARN参数调优&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;strong&gt;检查项&lt;/strong&gt;&lt;/th&gt;
          &lt;th&gt;&lt;strong&gt;当前值&lt;/strong&gt;&lt;/th&gt;
          &lt;th&gt;&lt;strong&gt;修改值&lt;/strong&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;JobHistory Server 的 Java 堆栈大小&lt;/td&gt;
          &lt;td&gt;1GB&lt;/td&gt;
          &lt;td&gt;2GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;NodeManager 的 Java 堆栈大小&lt;/td&gt;
          &lt;td&gt;1GB&lt;/td&gt;
          &lt;td&gt;2GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ResourceManager 的 Java 堆栈大小&lt;/td&gt;
          &lt;td&gt;1GB&lt;/td&gt;
          &lt;td&gt;2GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;容器内存  yarn.nodemanager.resource.memory-mb&lt;/td&gt;
          &lt;td&gt;24GB&lt;/td&gt;
          &lt;td&gt;32GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;最小容器内存   yarn.scheduler.minimum-allocation-mb&lt;/td&gt;
          &lt;td&gt;10GB&lt;/td&gt;
          &lt;td&gt;8GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;最大容器内存  yarn.scheduler.maximum-allocation-mb&lt;/td&gt;
          &lt;td&gt;40GB&lt;/td&gt;
          &lt;td&gt;56GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Map 任务内存   mapreduce.map.memory.mb&lt;/td&gt;
          &lt;td&gt;0M&lt;/td&gt;
          &lt;td&gt;12GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Reduce 任务内存   mapreduce.reduce.memory.mb&lt;/td&gt;
          &lt;td&gt;0M&lt;/td&gt;
          &lt;td&gt;24GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Application Master容器内存  yarn.app.mapreduce.am.resource.mb&lt;/td&gt;
          &lt;td&gt;24GB&lt;/td&gt;
          &lt;td&gt;32GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Map 任务 Java 选项库  mapreduce.map.java.opts&lt;/td&gt;
          &lt;td&gt;-Djava.net.preferIPv4Stack=true&lt;/td&gt;
          &lt;td&gt;-Dmapreduce.map.java.opts=-Xmx2048m&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Reduce 任务 Java 选项库  mapreduce.reduce.java.opts&lt;/td&gt;
          &lt;td&gt;-Djava.net.preferIPv4Stack=true&lt;/td&gt;
          &lt;td&gt;-Dmapreduce.reduce.java.opts=-Xmx2048m&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;yarn.resourcemanager.scheduler.class&lt;/td&gt;
          &lt;td&gt;org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler&lt;/td&gt;
          &lt;td&gt;org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;yarn.scheduler.capacity.root.queues:&lt;/p&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-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;configuration&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;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.scheduler.capacity.root.queues&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;default&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;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.scheduler.capacity.root.capacity&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;100&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;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.scheduler.capacity.root.default.capacity&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;100&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;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;修改值：&lt;/p&gt;</description>
    </item>
    <item>
      <title>CDH角色划分</title>
      <link>https://leochu.work/blog/tech/bigdata/cdh%E8%A7%92%E8%89%B2%E5%88%92%E5%88%86/</link>
      <pubDate>Sun, 15 May 2022 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/bigdata/cdh%E8%A7%92%E8%89%B2%E5%88%92%E5%88%86/</guid>
      <description>&lt;h3 id=&#34;1-服务器配置&#34;&gt;&lt;strong&gt;1. 服务器配置&lt;/strong&gt;&lt;/h3&gt;
&lt;h4 id=&#34;主节点&#34;&gt;&lt;strong&gt;主节点：&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;hostname: m1,m2,m3&lt;/p&gt;
&lt;p&gt;vcore：48&lt;/p&gt;
&lt;p&gt;内存：128G&lt;/p&gt;
&lt;p&gt;SSD：1T（不算系统盘）&lt;/p&gt;
&lt;h4 id=&#34;工作节点&#34;&gt;&lt;strong&gt;工作节点：&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;hostname: n1,n2,n3,n4&lt;/p&gt;
&lt;p&gt;vcore : 48&lt;/p&gt;
&lt;p&gt;内存：256G&lt;/p&gt;
&lt;p&gt;SSD:1T（不算系统盘）&lt;/p&gt;
&lt;h3 id=&#34;2-节点职责描述&#34;&gt;&lt;strong&gt;2. 节点职责描述&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;m1: 控制核心；cdh核心，hadoop主节点&lt;/p&gt;
&lt;p&gt;m2: 网关入口；主节点高可用，一些组件的web ui，用户入口 ，（前期做计算任务的driver端，后期优化driver打散到各节点）&lt;/p&gt;
&lt;p&gt;m3: 后台服务；组件元数据库，任务的history服务 ，（后期做元数据HA）&lt;/p&gt;
&lt;p&gt;n1~n4: 算存一体；提供存储，计算等服务&lt;/p&gt;
&lt;h3 id=&#34;3角色分配策略&#34;&gt;&lt;strong&gt;3.角色分配策略&lt;/strong&gt;&lt;/h3&gt;
&lt;h4 id=&#34;一hdfs&#34;&gt;&lt;strong&gt;一、hdfs&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;NameNode一般在主节点上，初始化安装的时候没有高可用，所以有SecondaryNameNode的作为一个备份,NameNode它会将它拆分后进行分布式存储，其中的数据是分散在各个DataNode节点，且默认都会有3个副本，防止其中一台机器宕机使得数据缺失。balancer一般与namenode搭建在一起。&lt;/p&gt;
&lt;h4 id=&#34;二hive&#34;&gt;&lt;strong&gt;二、hive&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;hive metastore server与hiveServer2一般搭载一起上，但也可以分开，因为hive服务需要启动hiveServer2，访问sparksql需要启动metastore而hive gateway,事实上并不是真正的角色，也没有状态，但它们充当了告诉客户端配置应该放置在哪里。 添加Hive服务时，默认情况下会创建Hive网关。&lt;/p&gt;
&lt;h4 id=&#34;三cloudera-manager-server&#34;&gt;&lt;strong&gt;三、cloudera manager server&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;这个可以根据实际搭建，这个相当于是集群的监听器，在网页上出现的的图表也就是这个监听器类似的，这个可以搭建在主节点上，但若是主节点上分配的角色过多会影响其服务器的性能。&lt;/p&gt;
&lt;h4 id=&#34;四spark&#34;&gt;&lt;strong&gt;四、spark&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;这个角色可以分配这任意的机器上，按实际情况调整。spark-gateway全部部署在各个机器上，这个对于个人理解来说相当于spark、spark2机器之间的通信功能。&lt;/p&gt;
&lt;h4 id=&#34;五yarn&#34;&gt;&lt;strong&gt;五、yarn&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;jobhistory与resourcemanager进行通信，所以部署上一般在同一台机器上放在主节点上，而nodemanager分配在各个节点上&lt;/p&gt;
&lt;h4 id=&#34;六zookeeper&#34;&gt;&lt;strong&gt;六、zookeeper&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;这个若是机器足够一般是奇数的，所以部署在m节点上比较合适。&lt;strong&gt;奇数台、高可用、与管理角色共置&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;七hue&#34;&gt;&lt;strong&gt;七、hue&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;会对外提供一个web ui，以便于数据分析和数据开发做即席查询。这个服务随意部署，根据自己的机器部署情况来看。&lt;/p&gt;
&lt;h3 id=&#34;4角色划分详情表&#34;&gt;&lt;strong&gt;4.角色划分详情表&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;控制核心&lt;/td&gt;
          &lt;td&gt;网关+入口&lt;/td&gt;
          &lt;td&gt;元数据+历史服务&lt;/td&gt;
          &lt;td&gt;存算一体&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;m1&lt;/td&gt;
          &lt;td&gt;m2&lt;/td&gt;
          &lt;td&gt;m3&lt;/td&gt;
          &lt;td&gt;n1&lt;/td&gt;
          &lt;td&gt;n2&lt;/td&gt;
          &lt;td&gt;n3&lt;/td&gt;
          &lt;td&gt;n4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;cloudera management&lt;/td&gt;
          &lt;td&gt;Alert Publisher&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Event Server&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Host Monitor&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Service Monitor&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;hdfs&lt;/td&gt;
          &lt;td&gt;NameNode&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;JournalNode&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Failover Controller&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;HttpFs&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DataNode&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;yarn&lt;/td&gt;
          &lt;td&gt;ResourceManager&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;NodeManager&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;JobHistory Server&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;hive&lt;/td&gt;
          &lt;td&gt;Hive MetaStore Server&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;HiveServer2&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;HiveGateway&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;spark&lt;/td&gt;
          &lt;td&gt;Spark History Server&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Spark Gateway&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;impala&lt;/td&gt;
          &lt;td&gt;Impala StateStore&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Impala catalog Server&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Impala Daemon&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;zookeeper&lt;/td&gt;
          &lt;td&gt;zk-node&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;hue&lt;/td&gt;
          &lt;td&gt;Hue Server&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Hue Load Balancer&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;5-未来升级项&#34;&gt;5. 未来升级项&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;work节点扩展硬盘，只需将新盘挂载到新目录/hadoop/data2或/hadoop/data3，更新hdfs配置就能完成存储扩展（支持热加入）&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
