1、解压hive到hadoop的source目录下
2、配置环境变量
export HIVE_HOME=/usr/local/hadoop/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
export PATH=$PATH:$HIVE_HOME/bin
1)更改用户权限。在终端中输入如下命令:
sudo chown -R hadoop:hadoop hive
2)进入hive的conf目录
复制hive-default.xml.template文件两次,将文件名分别更改为,hive-default.xml和hive-site.xml,hive-default.xml为hive默认配置文件,不需要修改,hive-site.xml为用户自定义配置文件,在启动hive时用户自定义修改的部分会覆盖默认配置。
3)在hive的目录下,新建warehouse、tmp、log文件夹。
此时修改hive-site.xml中的对应路径。
hive.metastore.warehouse.dir
修改为warehouse文件夹路径(例如:/usr/local/hadoop/hive/warehouse)
location of default database for the warehouse
hive.querylog.location
修改为log文件夹的路径(例如:/usr/local/hadoop/hive/log)
Location of Hive run time structured log file
hive.downloaded.resources.dir
修改为tmp文件夹的地址(例如:/usr/local/hadoop/hive/tmp
Temporary local directory for added resources in the remote file system.
4)进入hive的conf目录
复制hive-env.sh.template更改名字为hive-env.sh
修改hive-env.sh的内容。
将export HADOOP_HEAPSIZE=1024前面的‘#’去掉,当然可以根据自己的环境对这个默认的1024进行优化;
将export HADOOP_HOME前面的‘#’号去掉,并让它指向所安装hadoop的目录,例如:/usr/local/hadoop
export HIVE_CONF_DIR、export HIVE_AUX_JARS_PATH同理,配置相应路径。
将export HIVE_CONF_DIR=/usr/local/hadoop/hive/conf,并且把‘#’号去掉;
将export HIVE_AUX_JARS_PATH=/usr/local/hadoop/hive/lib,并且把‘#’号去掉。
4、初始化元数据库
本例中将初始化元数据为远程mysql(同时替换内置derby元数据库为mysql)
未初始化数据库会报如下错误:
Exception in thread “main” java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType …) to create the schema.
运行./schematool -initSchema -dbType ...命令初始化元数据
-dbType后跟的相关参可选:derby|mysql|postgres|oracle
derby数据库为hive的内置数据库,不需要修改配置文件,如果使用mysql,需要修改配置文件:
1)新建mysql数据库hivedb,并建立用户hivedb,设置密码
2)修改hive-site.xml中原本为derby的配置项
修改内容如下:
javax.jdo.option.ConnectionURL
jdbc:mysql://远程mysql服务器IP地址:3306/hivedb
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
hivedb(mysql用户名)
javax.jdo.option.ConnectionPassword
hivedb(mysql用户密码)
3)因为上面配置了com.mysql.jdbc.Driver,所以需要引入mysql-connector-java-5.1.27.jar,将jar包放入hive目录下的lib文件夹中。
4)在进入hive目录下的bin目录,运行命令:./schematool -initSchema -dbType mysql
运行成功,结果如下:
5)然后输入hive,启动hive,出现输入框即启动成功。
6)进一步验证:
1)在Hive上建立数据表
hive> CREATE TABLE test(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
2)在hive输入框中输入 show tables 命令,查看是否显示表test。
3)从 MySQL 数据库上查看元数据信息,从mysql的终端输入命令
select * fromtbls
查看是否显示表test的相关信息,显示,即建表成功。
5、启动报错:
Logging initialized using configuration in jar:file:/usr/local/hadoop/hive/lib/hive-common-2.1.0.jar!/hive-log4j2.properties Async: true
Exception in thread "main" java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxr-xr-x
权限问题,解决方案:
输入命令:hadoop fs -chmod -R 777 /tmp/hive