TT Bigdata TT Bigdata
首页
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • Ambari 安装

  • 组件安装

    • 安装指导
    • 魔改分享
    • 最小化安装(简单)

    • 进阶安装技巧(需开启Kerberos)

    • 高可用安装(有难度)

      • Zookeeper
      • Hadoop-Namenode
      • Yarn-ResourceManager
      • Hive
        • 基于 Ambari 安装 Hive 高可用
          • 方案一:安装时直接选择高可用
          • 方案二:安装后通过添加服务实现高可用
          • 1. 等待服务启动并遇到报错
          • 2. 解决方案:重启服务
          • 方案二的配置流程
          • 1. 回到首页,选择节点并添加服务
          • 2. 安装 Metastore 服务
          • 3. 安装 HiveServer2 服务
          • 4. 重启 Hive 组件
        • 配置 HDFS 高可用
          • 1. 修改 HDFS 配置
          • 2. 重启所有组件
        • 验证高可用配置
      • Hbase
      • Kafka
      • DolphinScheduler
      • Redis
      • Doris
      • Celeborn
      • Ozone
      • Ranger
  • Kerberos 旧版专题

  • Ranger 旧版专题

  • 旧版部署
  • 组件安装
  • 高可用安装(有难度)
JaneTTR
2023-03-02
目录
基于 Ambari 安装 Hive 高可用
方案一:安装时直接选择高可用
方案二:安装后通过添加服务实现高可用
1. 等待服务启动并遇到报错
2. 解决方案:重启服务
方案二的配置流程
1. 回到首页,选择节点并添加服务
2. 安装 Metastore 服务
3. 安装 HiveServer2 服务
4. 重启 Hive 组件
配置 HDFS 高可用
1. 修改 HDFS 配置
2. 重启所有组件
验证高可用配置

Hive

# 基于 Ambari 安装 Hive 高可用

# 方案一:安装时直接选择高可用

在 Hive 的安装过程中,第一种方案是直接在安装时选择高可用配置。此方案非常适合于从一开始就设置高可用模式。

提示

注: 对于这种配置方式,具体的安装流程不再赘述,请参考本站其他文章了解更多关于 Hive 安装的详细内容。

选择高可用安装模式

# 方案二:安装后通过添加服务实现高可用

如果你选择了安装简版的 Hive,而后又需要配置高可用,可以按照以下步骤进行:

# 1. 等待服务启动并遇到报错

由于 Ambari 在默认安装过程中没有初始化多节点的 Hive schema,可能会在启动时遇到错误。

启动报错

错误信息:

0: jdbc:mysql://hadoop1/hive> CREATE TABLE IF NOT EXISTS `COLUMNS_V2` ( `CD_ID`  
bigint(20) NOT NULL, `COMMENT` varchar(256) CHARACTER SET latin1 COLLATE latin1_ 
bin DEFAULT NULL, `COLUMN_NAME` varchar(767) CHARACTER SET latin1 COLLATE latin1 
_bin NOT NULL, `TYPE_NAME` MEDIUMTEXT DEFAULT NULL, `INTEGER_IDX` int(11) NOT NU 
LL, PRIMARY KEY (`CD_ID`,`COLUMN_NAME`), KEY `COLUMNS_V2_N49` (`CD_ID`), CONSTRA 
INT `COLUMNS_V2_FK1` FOREIGN KEY (`CD_ID`) REFERENCES `CDS` (`CD_ID`) ) ENGINE=I 
nnoDB DEFAULT CHARSET=latin1
No rows affected (0.01 seconds)
0: jdbc:mysql://hadoop1/hive> /*!40101 SET character_set_client = @saved_cs_clie 
nt */
No rows affected (0.001 seconds)
0: jdbc:mysql://hadoop1/hive> /*!40101 SET @saved_cs_client     = @@character_se 
t_client */
No rows affected (0.001 seconds)
0: jdbc:mysql://hadoop1/hive> /*!40101 SET character_set_client = utf8 */
No rows affected (0 seconds)
0: jdbc:mysql://hadoop1/hive> CREATE TABLE IF NOT EXISTS `DATABASE_PARAMS` ( `DB 
_ID` bigint(20) NOT NULL, `PARAM_KEY` varchar(180) CHARACTER SET latin1 COLLATE  
latin1_bin NOT NULL, `PARAM_VALUE` varchar(4000) CHARACTER SET latin1 COLLATE la 
tin1_bin DEFAULT NULL, PRIMARY KEY (`DB_ID`,`PARAM_KEY`), KEY `DATABASE_PARAMS_N 
49` (`DB_ID`), CONSTRAINT `DATABASE_PARAMS_FK1` FOREIGN KEY (`DB_ID`) REFERENCES 
 `DBS` (`DB_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1
No rows affected (0.01 seconds)
0: jdbc:mysql://hadoop1/hive> /*!40101 SET character_set_client = @saved_cs_clie 
nt */
No rows affected (0 seconds)
0: jdbc:mysql://hadoop1/hive> CREATE TABLE `CTLGS` ( `CTLG_ID` BIGINT PRIMARY KE 
Y, `NAME` VARCHAR(256), `DESC` VARCHAR(4000), `LOCATION_URI` VARCHAR(4000) NOT N 
ULL, UNIQUE KEY `UNIQUE_CATALOG` (`NAME`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 
Error: Table 'CTLGS' already exists (state=42S01,code=1050)
Closing: 0: jdbc:mysql://hadoop1/hive
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:594)
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:567)
	at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1517)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
Caused by: java.io.IOException: Schema script failed, errorcode 2
	at org.apache.hive.beeline.HiveSchemaTool.runBeeLine(HiveSchemaTool.java:1226)
	at org.apache.hive.beeline.HiveSchemaTool.runBeeLine(HiveSchemaTool.java:1204)
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:590)
	... 8 more
*** schemaTool failed ***
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

# 2. 解决方案:重启服务

为了解决该问题,你需要重启所有 Hive 组件。可以通过回到首页并选择 重启服务 来完成。

重启服务

# 方案二的配置流程

# 1. 回到首页,选择节点并添加服务

点击 Hosts,选择一个没有安装过 HiveServer2 和 Metastore 的节点,在本例中,我们选择了 hadoop1 节点。

选择节点

# 2. 安装 Metastore 服务

在该节点上点击 ADD,然后选择 Metastore 服务进行安装。

选择Metastore服务

# 3. 安装 HiveServer2 服务

接着,选择 HiveServer2 并进行安装。

安装进度

# 4. 重启 Hive 组件

安装完毕后,回到首页并重启所有 Hive 组件。

重启Hive服务

# 配置 HDFS 高可用

在配置 Hive 高可用时,还需要稍微调整 HDFS 的一些配置,确保访问权限和数据安全。

# 1. 修改 HDFS 配置

点击 HDFS > Configs,然后在 Custom core-site 中找到 hadoop.proxyuser.hive.hosts,将其值修改为 *,允许 Hive 访问 HDFS。

修改HDFS配置

# 2. 重启所有组件

最后,点击 Stop All,然后等待所有组件重新启动。

停止所有组件

# 验证高可用配置

完成所有配置和重启后,Hive 的高可用环境应该已经准备好。验证时,我们可以观察到以下现象:

  • Metastore 和 HiveServer2 将不再报错。
  • 不再有连接不上端口的问题。
  • 所有 Hive 组件正常运行。

验证效果

#Hive#Ambari#集群部署#高可用
Yarn-ResourceManager
Hbase

← Yarn-ResourceManager Hbase→

最近更新
01
当前版本 2026/08
08-29
02
把 Ambari Server HA 稳稳地跑起来
08-17
03
从一次启用操作追到主备就绪
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式