当前位置:   article > 正文

Hive学习之hive安装配置( Ubuntu20.04 ARM 64 )心得_m芯片安装hive

m芯片安装hive

电脑以及使用软件:

	MacBook pro(M1芯片,作为主机) 
	Parallels Desktop for Mac 17(虚拟机软件)
	Ubuntu 20.04(虚拟机上的操作系统)
	hadoop102、hadoop103、hadoop104(3台虚拟机当作三台服务器)
	apache-hive-3.1.2-bin.tar (安装的hive版本)
  • 1
  • 2
  • 3
  • 4
  • 5

因为hive是依托在hadoop集群上的,所以首先应该将hadoop集群搭建完成,大家可以看我之前写过的Mac上的hadoop集群搭建:

https://blog.csdn.net/ljs_0/article/details/123650978?spm=1001.2014.3001.5501

一、hive安装

	1.将apache-hive-3.1.2-bin.tar 上传至 /opt/software 下
	
	2.解压文件: tar -vxf apache-hive-3.1.2-bin.tar -C  /opt/module(解压完后可以把文件名改为hive方便后续操作)
	
	3.添加环境变量: sudo vim  /etc/profile.d/my_env.sh   (搭建hadoop集群时创建的配置文件)
  • 1
  • 2
  • 3
  • 4
  • 5
		#HIVE_HOME
		HIVE_HOME=/opt/module/hive
		PATH=$PATH:$HIVE_HOME/bin
  • 1
  • 2
  • 3
	4.初始化元数据库:bin/schematool -dbType derby -initSchema

	5.启动hive(保证集群是启动的):进入hive目录后输入  bin/hive
		
		启动可能会报错:
		Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(Z Ljava/lang/String;Ljava/lang/Object;)

		这是因为hive所依赖的guava包的版本和hadoop依赖的guava版本冲突了,解决方法是查看hive和hadoop下面的guava.jar那个版本高就把其复制到另一个下面将低版本的替换掉
		hadoop 中是在:share/hadoop/common/lib 下面
		hive 中是在:/lib 下面
	
	6.启动的时候可能会报一些警告是因为jar包冲突,想取消的话就在hive路径下的/lib中找到 log4j-slf4j-impl-2.10.0.jar 将其后缀改为 bak 即可解决
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

因为hive默认元数据库derby是不支持多用户的,所以将hive的元数据库配置到Mysql

二、hive元数据库配置Mysql

	1. 安装mysql
	
		我试了许多种将安装包直接上传然后解压安装mysql都没有成功,最后是用命令来直接安装mysql成功的,大家可以根据下面这篇文章来进行mysql安装,其作者将步骤写的很详细:
  • 1
  • 2
  • 3

https://blog.csdn.net/yorickjun/article/details/121138160

	2.拷贝mysql的jdbc驱动:进入mysql官网下载mysql-connector-java-8.xx.jar
		下载后将其拷贝至 hive/lib/ 下
	
	3.配置metastore到mysql,在 hive/conf/ 文件下新建 hive-site.xml文件 并将以下配置写入:
  • 1
  • 2
  • 3
  • 4
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- jdbc连接的URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
</property>

    <!-- jdbc连接的Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
</property>

	<!-- jdbc连接的username-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <!-- jdbc连接的password -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>之前设置的mysql的密码</value>
</property>

    <!-- Hive默认在HDFS的工作目录 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    
   <!-- Hive元数据存储的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
   
    <!-- 元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
</configuration>
  • 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
	4.进入hive目录后再次初始化hive元数据库 :schematool -initSchema -dbType mysql -verbose
		初始化如果报错:fail to load driver 则是因为第二步种的jar包有错,一定检查下载的是.jar而不是.deb
	
	5.使用元数据服务方式启动hive,在hive-site.xml文件中添加下面的信息之后启动 metastore :hive --service metastore 启动之后则将占用前端,之后的启动hive操作需要新建一个窗口进行
  • 1
  • 2
  • 3
  • 4
<!-- 指定存储元数据要连接的地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop102:9083</value>
    </property>
  • 1
  • 2
  • 3
  • 4
  • 5
	6.使用jdbc的方式访问hive,在hive-site.xml文件添加如下信息:
  • 1
<!-- 指定hiveserver2连接的host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>

    <!-- 指定hiveserver2连接的端口号 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
		 在hive路径下启动hiveserver2: bin/hive --service hiveserver2

	7.在hive路径下启动beeline客户端:bin/beeline -u jdbc:hive2://hadoop102:10000 -n atguigu
		
		在启动时可能会报错:Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000/default: 
		
		原因是hadoop不允许将实际用户直接传输到hadoop层,他是传到一个代理上,然后由代理在hadoop上执行操作,解决方法是在 hadoop-3.1.3/etc/hadoop/ 路径下的 core-site.xml 文件中配置一个代理,添加的配置信息如下:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
	<property>
        <name>hadoop.proxyuser.用户名.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.用户名.groups</name>
        <value>*</value>
    </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

至此,hive的安装就已经完成了。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号