(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&serverTimezone=GMT%2B8&allowMultiQueries=true&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&serverTimezone=GMT%2B8&allowMultiQueries=true&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)