因为Hive默认的数据库是derby,不支持同时开启两个./hive的命令终端,
而将Hive的默认数据库修改成mysql后,可以解决该问题,并且derby使用不便利,所以此处推荐同时安装mysql
链接: https://pan.baidu.com/s/1VgKaSIAOmCnT-uJplBWpHQ
提取码: ebxq
参考:https://blog.csdn.net/and52696686/article/details/107287066
参考:https://blog.csdn.net/and52696686/article/details/106836357
安装完成需要给root用户赋权:
grant all on *.* to root@'%';
flush privileges;
cd /software
tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz -C /opt
cd /opt
mv hive-1.1.0-cdh5.14.2/ hive
vi /etc/profile
添加以下内容:
export HIVE_PATH=/opt/hive
export PATH=$PATH:$HIVE_PATH/bin
使环境变量生效:
source /etc/profile
①:进入配置文件目录: cd /opt/hive/conf/
②:创建文件并添加以下内容: vi hive-site.xml
"1.0"?>
-stylesheet type="text/xsl" href="configuration.xsl"?>
hive.metastore.warehouse.dir</name>
hdfs://hadoop-1:9000/hive/warehouse</value>
管理表存储的位置,可以是linux中的目录,也可以是相对于fs.default.name有关的目录</description>
</property>
hive.metastore.local</name>
true</value>
</property>
<!-- 指定hive元数据存储的MySQL地址 -->
javax.jdo.option.ConnectionURL</name>
jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<!-- 元数据存储数据库的驱动 -->
javax.jdo.option.ConnectionDriverName</name>
com.mysql.jdbc.Driver</value>
</property>
<!-- 元数据存储数据库的用户名 -->
javax.jdo.option.ConnectionUserName</name>
root</value>
</property>
<!-- 元数据存储数据库的密码,(注:这里是mysql自己root用户的密码) -->
javax.jdo.option.ConnectionPassword</name>
ok</value>
</property>
</configuration>
直接粘贴上面代码,只需更改红框位置主机名即可
③:新建hive-env.sh文件,添加以下内容: vi hive-env.sh
export HADOOP_HOME=/opt/hadoop
export HIVE_HOME=/opt/hive
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_AUX_JARS_PATH=/opt/hive/lib
export JAVA_HOME=/opt/jdk8
export HIVE_CONF_DIR=/opt/hive/conf
④:修改hive-log4j.properties
mv hive-log4j.properties.template hive-log4j.properties
vi hive-log4j.properties
进入文件后在第20行修改hive日志目录:
hive.log.dir=/opt/hive/logs
⑤:新建配置文件需要的目录:
#新建目录/hive/warehouse
hadoop fs -mkdir -p /hive/warehouse
#赋权,然后在可以在hive中创建表
hadoop fs -chmod 777 /hive
hadoop fs -chmod 777 /hive/warehouse
⑥:将下载好的本地mysql-connector-java-5.1.48-bin.jar包拖拽到虚拟机安装hive根目录之lib目录下
⑦:给hive文件赋权:
chmod 777 /opt/hive
schematool -initSchema -dbType mysql
启动hive前需要先把hadoop相关进程打开,zookeeper(推荐打开),mysql(一定要打开,特别是用beelin连接数据库时,安全防报错)
即启动顺序:
start-all.sh → zkService.sh start → service mysql start → hive --service metastore → hive
启动hive前,还需启动元数据管理(最安全的启动方法,独占一窗口)用的时候最好一直开着,不用的时候按 ctrl+c 直接中断进程即可
hive --service metastore
.另起一窗口,输入: hive
,进入hive命令模式
输入: show tables
,显示如下:
输入exit退出hive命令行
需先启动mysql
service mysql start
需启动hiveserver2 服务,也是进程独占一窗口,用的时候窗口一直开着就好
nohup hive --service hiveserver2 &
新建窗口,启动beeline服务
beeline -u jdbc:hive2://localhost:10000