centos7 安装hive 附带idea调试运行hive程序代码

环境准备

1、hadoop集群或者伪集群 centos7安装hadoop集群
2、mysql 5 或者 8 版本
3、jdk版本 1.8.0_311
4、服务器版本:centos7
5、 hive版本:2.2.0
6、hadoop版本:2.9.2

Hive 安装

hive2.2.0

1、依次执行如下命令傻瓜式安装

[root@master ~]# mkdir -p /opt/hive
[root@master ~]# cd /opt/hive
[root@master hive]# wget http://archive.apache.org/dist/hive/hive-2.2.0/apache-hive-2.2.0-bin.tar.gz
[root@master hive]# tar -zxvf apache-hive-2.2.0-bin.tar.gz
[root@master hive]# cd apache-hive-2.2.0-bin/

2、添加环境变量

[root@master apache-hive-2.2.0-bin]# pwd
/opt/hive/apache-hive-2.2.0-bin
[root@master apache-hive-2.2.0-bin]# vim /etc/profile

在最后一行加入如下字段,HIVE_HOME 即hive安装目录

export HIVE_HOME=/opt/hive/apache-hive-2.2.0-bin
export PATH=$PATH:$HIVE_HOME/bin
export HIVE_CONF_DIR=$HIVE_HOME/conf

3、刷新环境变量

[root@master apache-hive-2.2.0-bin]# source /etc/profile

4、查看hive是否成功安装

[root@master apache-hive-2.2.0-bin]#  hive --version

配置hive

hive 的使用依赖 hadoop 集群或者伪集群,首先启动hadoop 。
安装位置各不相同,找到安装目录下sbin目录即可

1、启动hadoop集群

[root@master apache-hive-2.2.0-bin]# sh /opt/hadoop/hadoop-2.9.2/sbin/start-all.sh

2、在集群上建立目录,并赋予权限

hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod -R 777 /user/hive/warehouse
hdfs dfs -mkdir -p /tmp/hive
hdfs dfs -chmod -R 777 /tmp/hive

3、在Linux下建立tmp文件夹,并赋予权限

mkdir -p /opt/hive/apache-hive-2.2.0-bin/tmp
chmod -R 777 tmp/

4、复制一份全新 hive-site.xml 和 hive-env.sh 出来

cd /opt/hive/apache-hive-2.2.0-bin/conf/
cp hive-default.xml.template hive-site.xml
cp hive-env.sh.template hive-env.sh

5、一键替换hive-sit.xml 部分配置

  • 修改用户名,将文件中所有${system:user.name}替换为root
  • 修改临时目录,将文件中所有${system:java.io.tmpdir} 替换为 /opt/hive/apache-hive-2.2.0-bin/tmp
sed -i 's#\${system:user.name}#root#g; s#\${system:java.io.tmpdir}#/opt/hive/apache-hive-2.2.0-bin/tmp#g' /opt/hive/apache-hive-2.2.0-bin/conf/hive-site.xml

6、修改 hive-site.xml 配置文件

[root@master conf]# vim hive-site.xml

修改技巧 因为配置项很多建议使用vim 进行搜索配置项,
使用方法 :/要搜索内容
举例:
在这里插入图片描述

6.1、修改 hive.metastore.uris ,ip换成自己主机的ip,端口无需更改
 <property>
    <name>hive.metastore.uris</name>
    <value>thrift://192.168.46.22:9083</value>
  </property>
6.2、javax.jdo.option.ConnectionURL, 数据库 ip 即本机 ip ,端口默认3306
 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.46.22:3306/hive?createDatabaseIfNotExist=true</value>
  </property>
6.3、javax.jdo.option.ConnectionDriverName
  • 安装mysql5 使用 com.mysql.jdbc.Driver
  • 安装mysql8 使用 com.mysql.cj.jdbc.Driver
 <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>
6.4、javax.jdo.option.ConnectionUserName 数据库连接用户,使用root 减少权限等其他问题
 <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>
6.5、javax.jdo.option.ConnectionPassword 数据库登录密码,设置成自己的
 <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
  </property>
6.6、 hive.metastore.schema.verification 强制metastore架构版本一致性改成false
 <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
  </property>

7、下载mysql5驱动

1、下载MySQL5 驱动 将jar 包放入 /opt/hive/apache-hive-2.2.0-bin/lib 下

8、修改 hive-env.sh

vim /opt/hive/apache-hive-2.2.0-bin/conf/hive-env.sh

JAVA_HOME 修改成自己的
HADOOP_HOME 修改成自己的
HIVE_HOME 修改成自己的

export JAVA_HOME=/opt/jdk/jdk1.8.0_311
export HADOOP_HOME=/opt/hadoop/hadoop-2.9.2
export HIVE_HOME=/opt/hive/apache-hive-2.2.0-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib

9、初始化hive

cd /opt/hive/apache-hive-2.2.0-bin/bin
schematool -dbType mysql -initSchema

10、创建hive用户组,将root 添加到hive用户组

groupadd hive
usermod -G hive root

11、Hadoop core-site.xml 增加配置项

[root@master bin]# cd /opt/hadoop/hadoop-2.9.2/etc/hadoop/
[root@master hadoop]# vim core-site.xml

下面的 user 替换成 root

<property>
    <name>hadoop.proxyuser.user.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.user.groups</name>
    <value>*</value>
</property>

后台启动Hive的服务端

hive --service metastore &

后台启动hiveserver2

hiveserver2 start &

访问本地IP:10002 查看HiveServer2

http://192.168.46.22:10002/
在这里插入图片描述

idea测试项目连接

1、pom文件

<dependency>
	<groupId>org.apache.hive</groupId>
	<artifactId>hive-jdbc</artifactId>
	<version>2.1.1</version>
</dependency>

2、测试代码

public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Class.forName("org.apache.hive.jdbc.HiveDriver");
		Connection con =DriverManager.getConnection("jdbc:hive2://192.168.46.22:10000/default", "", "");
		Statement stmt = con.createStatement();
		String querySQL="SELECT * FROM student";
		ResultSet res = stmt.executeQuery(querySQL);  
		while (res.next()) {
		System.out.println(res.getInt(1)+"----"+res.getString(2));
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值