赞
踩
centos版本:7
hive版本:2.3.7
hadoop版本:2.10.1
mysql版本:5.7.35
java版本:1.8.0_231
链接: link.
hive的bin包、mysql的驱动包、hadoop版本包、java包,mysql我使用的是yum下载所以就没有包提供了。
首先讲hive的包拉到虚拟机里比如我的包在如下位置:
然后我们使用如下命令:tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /opt/MySoft/MySoftWare
将包安装到指定目录
然后我们改个名,使用如下命令:mv apache-hive-2.3.7-bin.tar.gz hive-2.3.7
改完名之后我们到/etc/profile.d 里面创建一个文件vim hive.sh,写这个文件是为了方便后续使用,相当于windows的环境变量的设置
文件内容:
使用:source /etc/profile更新配置或者单更新hive.sh也可以
然后用hive --version看看是否有如下信息,有的话代表完成了hive环境变量的配置。
更新完文件之后设置hive的配置文件
进入到$HIVE_HOME/conf目录下($HIVE_HOME是我们刚刚配置的hive的路径)
可以看到这几个文件:
我们首先配置hive-site.xml文件,这里文件一开始是没有的,我们要用以下命令通过模版创建出来 cp hive-default.xml.template hive-default.xml
以及 cp hive-env.sh.template hive-env.sh
我们先写hive-env.sh文件
配置如下:
加入如上四条就可以了
再配置hive-site.xml文件
我这里用的是nodepad++根据name查找然后再进行修改的,大家也可以尝试
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--数据库连接URL--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.37.9:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value> </property> <!--数据库连接驱动--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.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> <!--以下这三个配置我也不知道是干嘛的--> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <!-- 这是hiveserver2的配置--> <!--远程连接的端口号,默认为10000--> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <!--远程连接的主机名或ip地址,建议写主机名--> <property> <name>hive.server2.thrift.bind.host</name> <value>192.168.37.9</value> </property> <!--以下两个用户的配置要在hadoop的core-site.xml也配置,后续会说明--> <!--远程连接的用户--> <property> <name>hive.server2.thrift.client.user</name> <value>root</value> <description>Username to use against thrift client. default is 'anonymous'</description> </property> <!--远程连接的密码--> <property> <name>hive.server2.thrift.client.password</name> <value>123456</value> <description>Password to use against thrift client. default is 'anonymous'</description> </property> </configuration>
还有一个日志问题,在$HIVE_HOME下创建一个tmp文件夹,并给他权限 chmod -R 777 $HIVE_HOME/tmp 再在这个tmp下新建一个文件夹再赋予权限 chmod -R 777 $HIVE_HOME/tmp/root 然后要将hive-site.xml的${system:java.io.tmpdir}替换成hive的路径/tmp 例如:/opt/MySoft/MySoftWare/hive-2.3.7/tmp 再将${system:user.name} 替换成root 回到$HIVE_HOME/conf 复制hive-log4j2.properties.template 为hive-log4j2.properties cp hive-log4j2.properties.template hive-log4j2.properties 进入将${system:java.io.tmpdir} 也更改成hive的路径/conf 还有${system:user.name} 替换成root 以上就完成了对hive进行的配置,接下来要将mysql的驱动包丢到$HIVE_HOME/lib下面,这样子才能完成元数据库的初始化。 移动好mysql的驱动包之后运行如下命令:schematool -dbType mysql -initSchema 如果执行不了可能是hive的环境变量不对,可以看看之前的配置。 这时出现如下信息就是成功了!
然后就可以输入hive看看hive是不是成功了。如果是像我这样就是成功了:
hive成功之后,我们要配置一下hadoop下面的配置文件core-site.xml,添加如下配置让beeline可以成功连接hiveserver2:
<!--以下四个配置是为了让我的主机能够有访问hadoop的权限--> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.blueautumn.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.blueautumn.groups</name> <value>*</value> </property> <!--以下的配置是为了让hadoop知道有这样一个用户--> <property> <name>hive.server2.thrift.client.user</name> <value>root</value> <description>Username to use against thrift client. default is 'anonymous'</description> </property> <property> <name>hive.server2.thrift.client.password</name> <value>123456</value> <description>Password to use against thrift client. default is 'anonymous'</description> </property>
配置完之后我们重启hadoop服务器,然后输入以下命令来启动metastore服务
hive --service metastore &
像我这样卡在这里是正常的,因为启动的是一个服务,也可以输入别的可以后台启动,有需要的话可以自行搜索。
接下来就复制一个会话,输入以下命令启动hiveserver2
hive --service hiveserver2 & 或者 hiveserver2 &
像我这样卡住也是正常的。
然后用jps可以看到现在有两个Runjar存在
一个是metastore服务一个是hiveserver2服务
现在就可以进行beeline连接hiveserver2了
输入命令:beeline -u jdbc:hive2://192.168.37.9:10000 -n root -p 123456
获取先输入beeline 进入到beeline的命令行之后再输入:
!connect jdbc:hive2://192.168.37.9:1000 -n root -p 123456
之前参考过的地方:
链接: https://blog.csdn.net/leanaoo/article/details/83351240.
链接: https://blog.csdn.net/weixin_34356138/article/details/92424900.
第一次做博客,希望有问题大家可以指出~~~~
以上是我这两天搭建环境的时候整理出来的,因为我自己卡住了很久,所以我想把这个分享出来,这样有人需要的话也可以很快上手,谢谢大家~~~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。