下载 | apache-hive-3.1.2-bin.tar.gz | |||||||||||||||||||||||||||||||||
安装 | 注:只需要安装到Hadoop主节点(原因见Hive概念) 解压apache-hive-3.1.2-bin.tar.gz tar -zxf ./apache-hive-3.1.2-bin.tar.gz /usr/data2/program/hadoop/ 我解压在这个目录 | |||||||||||||||||||||||||||||||||
修改环境变量 | vi /etc/profile export HIVE_HOME=/usr/data2/program/hadoop/apache-hive-3.1.2-bin export PATH=$PATH:$HIVE_HOME/bin 保存后,重新加载环境变量 source /etc/profile | |||||||||||||||||||||||||||||||||
确认安装成功 | 执行 hive --version 看到版本,说明安装成功(环境变量配置OK) | |||||||||||||||||||||||||||||||||
配置hadoop路径 | 进入目录: cd apache-hive-3.1.2-bin/conf/ 创建配置文件 cp hive-env.sh.template hive-env.sh 修改配置文件 vi hive-env.sh HADOOP_HOME=/usr/data2/program/hadoop/hadoop-3.3.2 | |||||||||||||||||||||||||||||||||
配置元数据存储介质 | 默认是内置的derby形式
实际则会使用mysql元数据形式来存储 进入目录: cd apache-hive-3.1.2-bin/lib 下载驱动 MySQL :: Download MySQL Connector/J (Archived Versions) 解压 上传mysql驱动 进入目录: cd apache-hive-3.1.2-bin/conf/ 创建配置文件 cp hive-default.xml.template hive-site.xml 修改配置文件 vi hive-site.xml 需要指定如下变量
启动mysql 我这里是用docker安装的 docker start mysql 即可 在mysql里,创建hive库 注意,字符集要选择如上,否则后面在hive里面建表会报字符过长的错误 启动hive元数据存储服务metastore hive --service metastore 报错: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8 at [row,col,system-id]: [3215,96,"file:/usr/data2/program/hadoop/apache-hive-3.1.2-bin/conf/hive-site.xml"] hive-site.xml 3215行有问题,注释掉 报错: Unknown database 'hive' 要先创建mysql里的hive schema,再启动hive 报错: Caused by: MetaException(message:Version information not found in metastore.) 要关闭schema的校验 <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> 报错: missing : "`DBS`" in Catalog "" Schema <property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value> </property> 报错: Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D <property> <name>system:java.io.tmpdir</name> <value>/usr/data2/program/hadoop/apache-hive-3.1.2-bin/io-tmpdir</value> </property> 需要一个临时io路径,路径要自己先创建 启动元数据正常时,看到mysql的hive schema里,自动创建了一些信息 没报错,且卡住了,说明正常。 按CTRL + C停掉, 然后执行 hive --service metastore & <property> <name>hive.exec.dynamici.partition</name> <value>true</value> </property> <property> <name>hive.exec.dynamic.partition.mode</name> <value>nonstrict</value> <description> In strict mode, the user must specify at least one static partition in case the user accidentally overwrites all partitions. In nonstrict mode all partitions are allowed to be dynamic. </description> </property> 开启动态副本 | |||||||||||||||||||||||||||||||||
启动 | 0,启动hadoop 1,启动mysql docker start mysql 注:具体请自行处理,我这里是基于docker的mysql启动 2,启动元数据仓库(启动hive服务) hive --service metastore & 3,启动hive服务(可以通过远程连接hive) hive --service hiveserver2 & 注:hiveserver2 是hiveserver1的优化版,解决了并发的问题,使用hiveserver2即可 要等一点时间,大概1两分钟吧,才看到开启了端口 可见,5518进程,hiveserver2服务开启了两个端口 10000:供客户端连接,连接方法,见下面作业操作方式2 10002:供界面查看连接情况 http://192.168.0.11:10002/ 作业操作: 方式1,进入hive命令行 执行hive即可进入命令行 进入成功 方式2,使用工具连接(注,需要开启hive服务hiveserver2) 参见DBeaver工具使用 | |||||||||||||||||||||||||||||||||
重启、停用hive服务 | 使用jobs 的kill %job号,杀掉,再启动即可 | |||||||||||||||||||||||||||||||||
Hive安装与启动
最新推荐文章于 2025-03-08 20:37:55 发布