hive搭建

本文详细介绍了在Hadoop环境下配置Hive的过程,包括切换MySQL作为元数据数据库,解决Hive与Hadoop依赖冲突,以及启动Hive时遇到的安全权限问题。在解决权限问题时,需要在Hadoop的配置文件中设置`hadoop.proxyuser`属性以允许特定用户进行伪装。此外,还提到了Hive启动和连接Hiveserver2时可能遇到的错误及其解决方案。
摘要由CSDN通过智能技术生成

step:
1.准备好hadoop环境
2.准备MySQL环境 (因为hive的元数据数据库是derby 不能多用户操作(在不同目录底下启动hive derby将在该目录底下创建数据库文件但不同目录数据不互通)  所以切换MySQL作为元数据数据库 )
3.创建源数据库metastore
4.安装hive并配置hive的安装环境 (解决架包冲突mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak)
5.将mysql的jdbc驱动加入hive的lib目录底下
6.在hive的目录conf底下新建文件hive-site.xml
7.初始化

error:
    1.Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
reason: 
    1.HIVE和HADOOP内置的jar包版本(guava-19.0.jar )不一致导致
    - /usr/local/hive/lib/                 (hive架包目录)
    - /usr/local/hadoop/share/hadoop/common/lib/    (Hadoop架包目录)
solve:  1.高版本覆盖低版本


start hive
1.bin/hive
2.开启元数据服务(前台) 再去连接
3.开启元数据服务再开启hiveserver2 通过jdbc的形式连接   
    error:
       Could not open client transport with JDBC Uri: jdbc:hive2://127.0.0.1:10000/test: 
       Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException
       (org.apache.hadoop.security.authorize.AuthorizationException): User: tanzhengqiang is not allowed to impersonate hive (state=08S01,code=0)
    reason:
        hadoop引入了一个安全伪装机制,使得hadoop 不允许上层系统直接将实际用户传递到hadoop层,而是将实际用户传递给一个超级代理,由此代理在hadoop上执行操作,避免任意客户端随意操作hadoop
    solve:
       在etc/hadoop/core-site.xml文件中修改为如下方式即可解决:
      <property>
         <name>hadoop.proxyuser.tanzhengqiang.hosts</name>
         <value>*</value>
     </property>
     <property>
         <name>hadoop.proxyuser.tanzhengqiang.groups</name>
         <value>*</value>
     </property>
 

搭建Hive需要一定的技术储备和资源。以下是一些基本的步骤: 1. 安装Java和HadoopHive是基于Hadoop和Java的,因此您需要先安装Java和Hadoop。确保您的Hadoop集群已正确配置并且运行正常。 2. 下载和安装Hive:您可以从Hive官方网站或Apache官方网站下载Hive二进制文件,然后解压缩并安装Hive。 3. 配置Hive:在Hive安装目录下,您需要编辑`hive-site.xml`文件来配置Hive的参数,例如Hadoop的路径、JDBC驱动程序等。 4. 启动Hive服务:在命令行中运行`hive`命令来启动Hive服务。在启动Hive之前,您需要确保Hadoop集群已经启动。 5. 创建Hive表:您可以使用HiveQL语言创建表,类似于SQL语言。例如,创建一个名为`employee`的表,其中包含`id`、`name`和`age`三列,可以使用以下命令: ```sql CREATE TABLE employee ( id INT, name STRING, age INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE; ``` 6. 加载数据:您可以使用`LOAD DATA`命令将数据加载到Hive表中。例如,将一个名为`employee_data.txt`的文件加载到`employee`表中,可以使用以下命令: ```sql LOAD DATA LOCAL INPATH '/path/to/employee_data.txt' OVERWRITE INTO TABLE employee; ``` 7. 查询数据:使用HiveQL语言,您可以查询Hive表中的数据。例如,查询所有年龄大于30岁的员工,可以使用以下命令: ```sql SELECT * FROM employee WHERE age > 30; ``` 请注意,这只是一个简要的概述,搭建Hive需要更详细的步骤和技术细节。如果您没有足够的技术储备,可以寻求专业人士的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值