hive安装

(1):先启动hadoop,zookeeper(本地模式)
随便选择一台虚拟机(node7-4)

(2):将hive的包传到虚拟机上;
# 当前目录:
/data/hive
# 解压压缩包
tar -xzvf apache-hive-3.1.2-bin.tar.gz
# 修改名字,把版本号去掉
mv apache-hive-3.1.2-bin/ apache-hive

(3):配置文件
cd /data/hive/apache-hive
conf/hive-env.sh.template复制为conf/hive-env.sh
cp conf/hive-env/sh/template conf/hive-env.sh
第49行增加:HADOOP_HOME=/data/hadoop/hadoop

(4):Jar包冲突(guava)
cd /data/hive/apache-hive/lib
将目录中的guava-19.0.jar更改成guava-27.0-jre.jar
bin/hive(进入客户端)

(5):初始化
rm -rf derby.log metastore_db/
bin/schematool -dbType derby -initSchema
bin/hive(进入客户端)

(6):查看库(本地模式结束)
show databases ;(查看库)

(7):查看网页
node7-1:9870
/tmp/hive/root(下面有两个文件)
(这两个文件是hive默认生成的文件)

(8):创建库hive-demo(单用户模式)

telnet(检查一个服务器的端口有没有开放)
(例:telnet 192.168.56.1 3306)
yum -y install telnet

(9):配置文件
配置文件:复制conf/hive-default.xml.template到hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- hive数据仓库存储的位置;
    hadoop中hdfs的位置
   -->
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/data/hive/data/</value>
  </property>
  <!-- 本地单用户启动 -->
  <property>
    <name>hive.metastore.local</name>
    <value>true</value>
  </property>
  <!--
    hive中数据库相关的逻辑信息存储到mysql中
    hive:文件(hive相关的文件);存储到hdfs中
    hive:逻辑的概念:存储到了数据库中

    jdbc相关的信息
   -->
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.56.1/hive-demo?useSSL=false&amp;serverTimezone=GMT%2B8&amp;allowMultiQueries=true&amp;allowPublicKeyRetrieval=true</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
  </property>
</configuration>

(10):初始化
rm -rf derby.log metastore_db/

cd /data/hive/apache-hive/lib
mysql-connector-java-8.0.20.jar(增加jar包)
(帮助文档-压缩包java中有jar包)
去数据库刷新表(hive会自动创建74个表)

bin/schematool -dbType mysql -initSchema
bin/hive(进入客户端)

bin/hive --service metastore(启动hive客户端)

(11):守护进程命令
nohup bin/hive --service metastore &
vim nohup.out(守护进程的命令日志)

ps aux |gerp 15348(进程号)

(12):创建数据库(mydata)(单用户结束)
create database mydata ;
dbs中放的是库
tbls中放的是表

(13):分发(多用户模式)
node7-4当作服务器端
node7-2 node7-3当作客户端
cd /data/hive
scp -r apache-hive/ node7-2:`pwd`(分发到7-2)
scp -r apache-hive/ node7-2:`pwd`(分发到7-3)

(14):配置
cd /data/hive/apache-hive/conf(增加hive-site.xml)
node7-4中增加配置:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- hive数据仓库存储的位置;
    hadoop中hdfs的位置
   -->
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/data/hive/data/</value>
  </property>
  <!-- 本地单用户启动 -->
  <property>
    <name>hive.metastore.local</name>
    <value>true</value>
  </property>
  <!--
    hive中数据库相关的逻辑信息存储到mysql中
    hive:文件(hive相关的文件);存储到hdfs中
    hive:逻辑的概念:存储到了数据库中

    jdbc相关的信息
   -->
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.56.1/hive-demo?useSSL=false&amp;serverTimezone=GMT%2B8&amp;allowMultiQueries=true&amp;allowPublicKeyRetrieval=true</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
  </property>
  <!-- HiveServer2 Web UI
    0.0.0.0任何客户端都可以链接
   -->
  <property>
    <name>hive.server2.webui.host</name>
    <value>0.0.0.0</value>
  </property>
  <!-- 监听的端口号 -->
  <property>
    <name>hive.server2.webui.port</name>
    <value>10001</value>
  </property>
</configuration>

node7-2 nodi7-3中增加配置:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!--  数据仓库的存储目录:hdfs上的 -->
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/data/hive/data/warehouse</value>
  </property>
  <!-- metastore:不是;false  -->
  <property>
    <name>hive.metastore.local</name>
    <value>false</value>
  </property>
  <!-- 服务器的IP
    thrift:===http===-https;
    客户端与服务器交互的协议;
   -->
  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://node7-4:9083</value>
  </property>
</configuration>

(15):启动客户端和服务端
node7-4中
cd /data/hive/apache-hive
nohup bin/hive --service metastore &
tail -f nohup.out
node7-2 node7-3中
cd /data/hive/apache-hive
bin/hive

(16):Web页面访问

bin/hive --service hiveserver2 --hiveconf hive.server2.thrift.prom=10000 &

nohup bin/hiveserver2 &(启动服务器)
node7-4:10001(访问Web)

原文地址:https://www.cnblogs.com/comw/p/14499593.html