Hive的部署
部署方法一:内嵌模式
使用hadoop用户操作。
1、将hive包通过Xftp上传到服务器/home/hadoop/app目录下。
2、解压hive压缩包:
tar -zxvf apache-hive-1.2.1-bin.tar.gz
设置软连接:ln -s apache-hive-1.2.1-bin hive
3、设置hive配置文件hive-env.sh,添加上HADOOP_HOME
cd /home/hadoop/app/apache-hive-1.2.1-bin/conf
cp hive-env.sh.template hive-env.sh
vi hive-env.sh
添加如下信息(路径根据实际修改):
export HADOOP_HOME=/home/hadoop/app/hadoop

4、创建HDFS存储Hive元数据的文件目录
在HDFS中新建/tmp和/usr/hive/warehouse 两个文件目录(默认),并对同组用户增加写权限,作为Hive的存储目录(创建过程中可能已经存在tmp,则不执行第一句)。
hdfs dfs -mkdir /tmp
hdfs dfs -mkdir -p /usr/hive/warehouse
5、替换冲突的包
cd /home/hadoop/app/hadoop/share/hadoop/yarn/lib/
查看是否有jline相关jar包,如果有:
mv jline-0.9.94.jar jline-0.9.94.jar.bak
如果没有:
cd /home/hadoop/app/hive/lib
cp jline-2.12.jar /home/hadoop/app/hadoop/share/hadoop/yarn/lib
6、修改环境变量
(1)如果是在root用户下配置的环境变量,切换到root用户下。
su root输入密码
vi /etc/profile,增加如下配置:

使配置文件生效:source /etc/profile
(2)如果是在hadoop用户下配置的环境变量,修改文件:vi ~/.bashrc
增加的配置跟上图相同。
使配置文件生效:source ~/.bashrc
7、切换到hadoop用户,进入hive执行界面:
su hadoop
hive
注意:启动hive如报如下错误:

原因是spark升级到spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-*.jar已经不存在,所以hive没有办法找到这个JAR包,解决办法是修改hive/bin下的hive文件:
cd /home/hadoop/app/hive/bin(路径根据实际修改)
vi hive
找到以下内容:

将标红处修改为:sparkAssemblyPath=ls ${SPARK_HOME}/jars/*.jar
保存后重启hive,问题解决。

8、测试是否可以成功查询
show tables;

show functions;

部署方法二:本地mysql模式
1、安装mysql,参照我的上一篇《Mysql在线安装》
2、配置hive-site.xml为本地Mysql模式,将hive-site.xml上传到/home/hadoop/app/hive/conf目录下。

3、用xftp上传mysql-connector-java-5.1.32.jar到/home/hadoop/app/hive/lib目录下。
mysql-connector-java-5.1.32.jar是mysql驱动包。(需要自己去下载)
hive命令行显示当前数据库
在 hive命令行显示当前数据库两种方式。
1、可以在hive命令行执行以下语句显示当前数据库:
hive> select current_database();
2、可以设置hive属性在命令行显示当前数据库:
set hive.cli.print.current.db=true;
注: 这是当前的session窗口有效;
3、永久修改,向hive-site.xml文件添加一下配置:
<property><name>hive.cli.print.current.db</name><value>true</value></property>
到此,完成了hive的部署
hive-site.xml文件内容如下:
<configuration>
<property><name>javax.jdo.option.ConnectionDriverNamename><value>com.mysql.jdbc.Drivervalue><description>Driver class name for a JDBC metastoredescription>
property>
<property><name>javax.jdo.option.ConnectionURLname><value>jdbc:mysql://slave2:3306/hive?characterEncoding=UTF-8&createDatabaseIfNotExist=truevalue><description>JDBC connect string for a JDBC metastoredescription>
property>
<property><name>javax.jdo.option.ConnectionUserNamename><value>rootvalue><description>Username to use against metastore databasedescription>property>
<property><name>javax.jdo.option.ConnectionPasswordname><value>123456value><description>password to use against metastore databasedescription>
property>
<property><name>hive.querylog.locationname><value>/home/hadoop/app/hive/iotmpvalue><description>Location of Hive run time structured log filedescription>property>
<property><name>hive.exec.local.scratchdirname><value>/home/hadoop/app/hive/iotmpvalue><description>Local scratch space for Hive jobsdescription>property>
<property><name>hive.downloaded.resources.dirname><value>/home/hadoop/app/hive/iotmpvalue><description>Temporary local directory for added resources in the remote file system.description>
property>
configuration>
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
