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

1

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,增加如下配置:
2
使配置文件生效:source /etc/profile
(2)如果是在hadoop用户下配置的环境变量,修改文件:vi ~/.bashrc
增加的配置跟上图相同。
使配置文件生效:source ~/.bashrc

7、切换到hadoop用户,进入hive执行界面:

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

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

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

show tables;
6
show functions;
7

部署方法二:本地mysql模式

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

6

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>


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部