Hadoo-2.8.5集群安装Hive-2.3.6及安装问题处理

Hive简介

Hive是基于hadoop的一个数据仓库,可以将sql语句转化为MapReduce任务进行运行,不必要专门开发MapReduce,Hive定义了简单的类SQL,即HQL,可以用来对数据进行ETL(提取转化加载)操作。

一 . 安装前准备

Hive是基于hadoop的,所以首先要安装好hadoop集群,至于安装hadoop可以参考https://blog.csdn.net/zhi_zixing/article/details/100520916,如和选择版本,在官网上http://hive.apache.org/downloads.html有说明。

二.安装hive

1. 下载(hadoop用户没有权限就用root下载)并解压安装

ps:本来想下载hive-2.3.5,但是在官网上没有找到,只好下载了hive-2.3.6,当然,也可以下载好在传上去

cd /opt/software/
wget http://mirror.bit.edu.cn/apache/hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz
tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /opt/bigdata/
cd /opt/bigdata/
mv apache-hive-2.3.6-bin hive-2.3.6  #名字可以不改,
chown -R hadoop:hadoop hive-2.3.6/  #如果是root用户安装,则需要修改用户
2.配置环境变量,并使之生效

用root用户编辑/etc/profile

#set hive
export HIVE_HOME=/opt/bigdata/hive-2.3.6
export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH

并source使之生效

source /etc/profile
hive --version #成功之后会显示出hive的版本号
3.修改配置文件

需要修改/opt/bigdata/hive-2.3.6/conf下的配置文件,提供的都是模板文件,首先需要复制出真正的配置文件

cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties

修改hive-env.sh

#指定hadoop安装路径
HADOOP_HOME=/opt/bigdata/hadoop-2.8.5/
#指定hive的配置文件路径
export HIVE_CONF_DIR=/opt/bigdata/hive-2.3.6/conf/
#指定hive运行的类库目录
export HIVE_AUX_JARS_PATH=/opt/bigdata/hive-2.3.6/lib/

修改hive-site.xml
最主要的就是配置数据库,存储元数据,可以配置本地或远程的数据库,内嵌的一般不用,主要修改以下数据库连接参数。还有需要配置目录的需要手动创建目录,并修改属组,在hive-site.xml中" s y s t e m : j a v a . i o . t m p d i r / {system:java.io.tmpdir}/ system:java.io.tmpdir/{system:user.name}"值需要修改成本地路径目录。HDFS中的目录即使配置了会自动生成,也可以使用默认值。

<!-- 数据库参数 -->
    <property>
    	<!-- 数据库用户名 -->
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
    	<!-- 数据库用户名 -->
        <name>javax.jdo.option.ConnectionPassword</name>密码
        <value>123456</value>
    </property>
   <property>
   		<!-- 数据库访问地址,需要提前创建好msshive -->
        <name>javax.jdo.option.ConnectionURL</name>mysql
        <value>jdbc:mysql://192.168.3.187:3306/msshive?characterEncoding=utf8&amp;useSSL=false</value>
    </property>
    <property>
    	<!-- 数据库驱动 -->
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    
<!-- warehouse目录,即hive在HDFS上的存储目录,可使用默认值 -->    
	    <property>
	   		 <name>hive.metastore.warehouse.dir</name>
	    	 <value>/zixingHive/warehouse</value>
	   </property>
	  
<!-- hive运行的临时数据目录 -->
		<property>
		  <name>hive.exec.scratchdir</name>
		  <value>/zixingHive/hive</value>
		</property>
		<property>
		  <name>hive.exec.local.scratchdir</name>
		  <value>/usr/bigdata/hive/scratch</value>
		</property>
  <!-- hive日志目录 -->
	 <property>
	     <name>hive.querylog.location</name>
	  	 <value>/opt/bigdata/hive-2.3.6/logs</value>
	  </property>

hive-exec-log4j2.properties

#手动创建目录,其属组需要修改成hive的安装用户
property.hive.log.dir = /bigdataLog/hive/exec-hiveLog4j2/ 

hive-log4j2.properties

#手动创建目录,其属组需要修改成hive的安装用户
property.hive.log.dir = /bigdataLog/hive/hiveLog4j2/
4.初始化元数据
schematool -initSchema -dbType mysql

在/opt/bigdata/hive-2.3.6/lib下一定要有mysql-connector-java-5.1.47.jar,需要自己添加到/opt/bigdata/hive-2.3.6/lib/,可以用以下命令查看

ll /opt/bigdata/hive-2.3.6/lib/ | grep mysql

在这里插入图片描述
如果没有这个jar包,报错如下图
在这里插入图片描述
初始化成功会有如下图显示,在数据库中也会有许多存放元数据的表
在这里插入图片描述
在这里插入图片描述
初始化会遇到一些问题,看提示一般就可以解决掉的,如果遇到找不到主机的,可以参考博客https://blog.csdn.net/zhi_zixing/article/details/100042622,这个mysql是安装在windows10上的

5.验证
hive #进入hive命令行

在这里插入图片描述
与mysql类似
在这里插入图片描述
在进入hive命令行时一直报错
在这里插入图片描述
报错详情:Logging initialized using configuration in jar:file:/opt/bigdata/hive-2.3.6/lib/hive-common-2.3.6.jar!/hive-log4j2.properties Async: true
Exception in thread “main” java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: KaTeX parse error: Expected '}', got 'EOF' at end of input: …a.io.tmpdir%7D/%7Bsystem:user.name%7D
原因就是在hive-site.xml, hive-exec-log4j2.properties或
hive-log4j2.properties中的路径存在" s y s t e m : j a v a . i o . t m p d i r / {system:java.io.tmpdir}/ system:java.io.tmpdir/{system:user.name}",手动创建目录并配置之后就好。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值