赞
踩
Hive是基于Hadoop的一个数据仓库工具,Hive处理的数据存储在HDFS上,分析数据底层默认实现是MapReduce,执行的程序运行在Yarn,所以安装Hive之前需要搭建好Hadoop集群。
默认存储元数据的数据库为Derby,为了避免使用默认的Derby数据库(有并发访问和性能的问题),通常还需要将元数据库配置为MySQL。
将下载好的Hive放入虚拟机,解压到 /opt 目录下:tar -zxvf apache-hive-2.3.7-bin.tar.gz
重命名:mv apache-hive-2.3.7-bin hive-2.3.7
修改 /etc/profile,配置Hive环境变量:export HIVE_HOME=/opt/hive-2.3.7,export PATH=$PATH:$HIVE_HOME/bin,source /etc/profile
将 /opt/hive-2.3.7/conf 目录下的 hive-env.sh.template 修改为 hive-env.sh:mv hive-env.sh.template hive-env.sh
配置HADOOP_HOME,HIVE_CONF_DIR,HIVE_AUX_JARS_PATH
开启HDFS和Yarn:start-dfs.sh,start-yarn.sh
在HDFS上创建数据仓库目录并修改权限:hdfs dfs -mkdir -p /hive/warehouse,hdfs dfs -chmod -R 777 /hive/warehouse
在HDFS上创建临时目录并修改权限:hdfs dfs -mkdir -p /tmp/hive,hdfs dfs -chmod -R 777 /tmp/hive
在本地Hive安装目录下创建一个tmp目录,tmp内有两个目录:mkdir -p tmp/resources,mkdir -p tmp/hive/root
在 /opt/hive-2.3.7/conf 目录下创建一个 hive-site.xml:touch conf/hive-site.xml
配置 hive-site.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--Default数据仓库原始位置是在hdfs上:/user/hive/warehouse路径下--> <property> <name>hive.metastore.warehouse.dir</name> <value>/hive/warehouse</value> <!--先在HDFS创建目录--> <description>location of default database for the warehouse</description> </property> <!--Hive用来存储不同阶段的MapReduce的执行计划的目录,同时也存储中间输出结果--> <property> <name>hive.exec.scratchdir</name> <value>/tmp/hive</value> <!--先在HDFS创建目录--> </property> <property> <name>hive.scratch.dir.permission</name> <value>777</value> <description>The permission for the user specific scratch directories that get created.</description> </property> <!--当Hive运行在本地模式时配置--> <property> <name>hive.exec.local.scratchdir</name> <value>/opt/hive-2.3.7/tmp/hive/root</value> <!--先在本地创建目录--> <description>Local scratch space for Hive jobs</description> </property> <!--远程资源下载的临时目录--> <property> <name>hive.downloaded.resources.dir</name> <value>/opt/hive-2.3.7/tmp/resources</value> <!--先在本地创建目录--> <description>Temporary local directory for added resources in the remote file system.</description> </property> <!--配置Metastore到MySql--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/metastore?createDatabaseIfNotExist=true&useSSL=false</value> <!--XML需要转义,&转义为&--> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> <description>password to use against metastore database</description> </property> <!--查询后显示当前数据库,以及查询表的头信息配置--> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> </configuration>
在本地Hive安装目录下创建一个log目录(当Hive运行时,相应的日志文档存储的地方):mkdir log
将conf文件夹下 hive-log4j.properties.template 改名为 hive-log4j.properties:mv hive-log4j2.properties.template hive-log4j2.properties
修改 hive-log4j.properties 中 hive.log.dir 路径
下载 mysql-connector-java,解压,将里面的jar包复制到 $HIVE_HOME/lib 目录下 https://dev.mysql.com/downloads/connector/j/
登录MySQL,对用户授权:use mysql,grant all on *.* to ‘root’@’%’ identified by ‘123456’;,flush privileges
使用 $HIVE_HOME/bin 下的 schematool 初始化数据库:/opt/hive-2.3.7/bin/schematool -dbType mysql -initSchema。初始化之后会多出一个metastore数据库,可登录MySQL查看
启动 HDFS:start-dfs.sh,启动Hive:hive
设置本地模式(仅对当前有效,重新登录要重新设置): set hive.exec.mode.local.auto=true;
到这里,Hive就成功配置了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。