for my honey!
1、前言
安装hive前提是要先安装hadoop集群,并且hive只需要再hadoop的namenode节点集群里安装即可,可以不在datanode节点的机器上安装。另外还需要说明的是,虽然修改配置文件并不需要你已经把hadoop跑起来,但是本文中用到了hadoop命令,在执行这些命令前你必须确保hadoop是在正常跑着的,而且启动hive的前提也是需要hadoop在正常运行,所以建议先将其他基础环境安装好,hive安装的环境基础包括:
Hadoop-2.7.3
JDK-1.8.0_92
Spark-2.1.1-bin-hadoop2.7
2、下载hive
下载地址:http://hive.apache.org/downloads.html
点击图中的Download a release now!
按照步骤找到作一镜像,使用wget命令下载
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
3、安装HIVE
#假设hive安装文件放在/data/soft目录下
#本集群将hive安装到/data/spark目录下
#进入安装目录
cd /data/spark
#解压hive
tar -zxvf /data/soft/apache-hive-2.1.1-bin.tar.gz
#切换至root账户配置hive环境变量
vim /etc/profile
export HIVE_HOME=/data/soft/apache-hive-2.1.1
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$PATH:$HIVE_HOME/bin
#root账户下使配置文件的修改生效
source /etc/profile
4、配置hive文件
4.1、修改HIVE配置文件
#进入hive配置文件存放目录
cd /data/soft/apache-hive-2.1.1-bin/conf
#把初始化的文件 复制一份出来 并且改名
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
4.2、修改hive-env.sh
#打开hive-env.sh文件
vim hive-env.sh
#hadoop_home路径
HADOOP_HOME=/data/spark/hadoop-2.7.3
#hive配置文件存放路径
export HIVE_CONF_DIR=/data/spark/apache-hive-2.1.1-bin/conf
#hive相关jar存放路径
export HIVE_AUX_JARS_PATH=/data/spark/apache-hive-2.1.1-bin/lib
4.3、在hdfs中创建文件并授权
#hive中存储的数据和产生的临时文件需要存储在hdfs中,因此需要再hdfs中创建相应文件
#存放hive中具体数据目录
hadoop fs -mkdir /data/hive/warehouse
#存放hive运行产生的临时文件
hadoop fs -mkdir /data/hive/tmp
#存放hive日志文件
hadoop fs -mkdir /data/hive/log
#修改文件权限
hadoop fs -chmod -R 777 /data/hive/warehouse
hadoop fs -chmod -R 777 /data/hive/tmp
hadoop fs -chmod -R 777 /data/hive/log
4.4、修改hive-site.xml文件
#设置hive数据存储目录、临时目录、日志存放目录
<property>
<name>hive.exec.scratchdir</name>
<value>hdfs://master:9000/data/hive/temp</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://master:9000/data/hive/warehouse</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>hdfs://master:9000/data/hive/log</value>
</property>
<!—该配置是关闭hive元数据版本认证,否则会在启动spark程序时报错-->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
注:1、在配置hdfs文件路径时必须填写完整的hdfs绝对路径,如hdfs://master:9000/data/hive/temp
master:9000为集群namenode所在节点的IP和端口号
2、以上配置需要再hive-site.xml文件中找到需要配置的参数,
并修改其默认值。如果只是复制以上配置到hive-site.xml
文件会在运行时被默认值覆盖而无法运行
4.5、 修改hive-site.xml文件中mysql连接库配置
#由于本集群采用mysql存储hive元数据信息,因此需要配置mysql连接信息
<!—配置mysql IP 端口以及放元数据的库名称-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://000.000.000.000:3036/hive?createDatabaseIfNotExist=true</value>
</property>
<!—配置mysql启动器名称 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!—配置连接mysql用户名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>******</value>
</property>
<!—配置连接mysql用户名登录密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>********</value>
</property>
注:1、同样以上配置信息需要找到hive-site.xml文件中相应的配置属性,并修改为相应的值
2、连接mysql的用户名必须拥有很高的操作mysql的权限否则初始化时会提示权限不足
4.6、修改hive-site.xml临时文件目录
1、在本地创建一文件
mkdir $HIVE_HOME/temp
2、在配置文件 hive-site.xml 里面
把{system:java.io.tmpdir}改成$HIVE_HOME/tmp/
把{system:user.name}改成{user.name}
4.7、配置JDBC驱动包
1、下载jdbc驱动包
地址https://dev.mysql.com/downloads/connector/j/5.1.html
2、 解压后将jdbc-connector-java.jar文件拷贝到 $HIVE_HOME/lib文件夹下
5、HIVE运行
1、 初始化hive元数据
$HIVE_HOME/bin/schematool -dbType mysql –initSchema
2、 后台运行hiveserver2服务
$HIVE_HOME/bin/hive --service hiveserver2&
3、 启动beeline
beeline
4、 连接hive
!connect jdbc:hive2://master:10000/default