linux下安装配置hive

本机安装hive的过程记录在这里,参考文章:https://blog.csdn.net/Alen_Liu_SZ/article/details/80752273
一、 安装前准备

1 安装Hadoop

具体安装过程参考:Hadoop 2.7.6安装_伪分布式集群

2 安装MySQL

具体安装过程参考:MySQL基于二进制文件安装

3 下载Hive以及MySQL-jdbc

HIve下载地址:http://mirror.bit.edu.cn/apache/hive/stable-2/
MySQL Connector下载地址:https://dev.mysql.com/downloads/connector/j/

二、 安装配置Hive

1 解压hive

cd /root/software
tar -zxvf apache-hive-2.3.3-bin.tar.gz -C /root/hive
更改文件权限
chown -R hadoop:hadoop apache-hive-2.3.3-bin

在虚拟机上创建目录,hive-log4j.properties文件要用到
//存放hive的日志文件
mkdir /home/hadoop/hive-2.3.3/data/logs
//存放临时文件
mkdir /home/hadoop/hive-2.3.3/data/temp

在HDFS上创建目录,hive-site.xml文件要用到

Hive配置文件里要用到HDFS的一些路径,需要手动创建如下路径:
hadoop fs -mkdir -p /hive/warehouse
hadoop fs -mkdir -p /hive/logs
hadoop fs -mkdir -p /hive/temp

更改权限,否则下面会报错:
Exception in thread "main" java.lang.RuntimeException: The root scratch dir: /hive/temp on HDFS should be writable. Current permissions are: rwxr-xr-x

hadoop fs -chmod 733 /hive/*

hive进行运算时,会将中间结果和日志写入上述路径:

扫描二维码关注公众号,回复: 5651947 查看本文章

2 配置hive-site.xml

生成hive-site.xml文件:cp -r hive-default.xml.template  hive-site.xml,注意复制一份,不要新建一个同名文件。

//注意:hive-site.xml上的路径一部分是HDFS上的路径,一部分是本地路径:

[root@hdp-01 conf]# cat hive-site.xml
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hdp-01:3306/hive?createDatabaseIfNotExist=true</value>
    </property>

    <property>
       <name>javax.jdo.option.ConnectionDriverName</name>
       <value>com.mysql.jdbc.Driver</value>
    </property>

    <property>
       <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <property>
       <name>javax.jdo.option.ConnectionPassword</name>
        <value>123***</value>
    </property>

    //这是HDFS上的路径,HDFS创建的元数据目录
    <property>
        <name>hive.metastore.warehouse.dir</name>   
        <value>/user/hive/warehouse</value>
    </property>

    //HDFS创建的临时目录路径
    <property>
        <name>hive.exec.scratchdir</name>
    <value>/user/hive/temp</value>      
    </property>

    日志地址
    <property>
    <name>hive.querylog.location</name>
		<value>/root/hive/apache-hive-1.2.2-bin/data/logs</value>
    	<description>Location of Hive run time structured log file</description>
      </property>

    <property>
    <name>hive.server2.logging.operation.log.location</name>
		<value>/root/hive/apache-hive-1.2.2-bin/data/logs</value>
    <description>Top level directory where operation logs are stored if logging  functionality is enabled</description>
    </property>

    //其它临时文件地址
    <property>
    <name>hive.exec.local.scratchdir</name>
		<value>/root/hive/apache-hive-1.2.2-bin/data/temp</value>
    <description>Local scratch space for Hive jobs</description>
    </property>


    <property>
    <name>hive.downloaded.resources.dir</name>
		<value>/user/hive/temp</value>
    <description>Temporary local directory for added resources in the remote file system.        </description>
    </property>

</configuration>

3 配置hive-env.sh

末尾追加:
HADOOP_HOME=/root/apps/hadoop-2.8.5
export HIVE_CONF_DIR=/root/hive/apache-hive-1.2.2-bin/conf

4 拷贝mysql-connector-java-5.1.39.jar放入hive 的lib目录下

5 配置hive环境变量

vi /etc/profile

export HIVE_HOME=/usr/local/apache-hive-2.3.3-bin
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile

7 在/conf目录下配置log4j

// 这个路径是虚拟机上的

创建配置文件:

cp hive-exec-log4j.properties.template  hive-exec-log4j.properties
cp hive-log4j.properties.template  hive-log4j.properties

修改上面的两个配置文件:
把   property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}
改为 property.hive.log.dir =/home/hadoop/hive-2.3.3/datas/logs

8 初始化mysql数据库

schematool --dbType mysql –initSchema

mysql> select user,password,host from user;先查看用户信息

为了支持mysql远程访问首先设置当前mysql用于允许master远程机访问,并修改root用户的密码为123456:
    mysql> grant all privileges on *.* to root@'master' identified by '123456' with grant option;
    mysql> flush privileges;
    *.*代表全部数据库的全部表授权,也可以指定数据库授权,如test_db.*; 
    all privileges代表全部权限,也可以insert,update,delete,create,drop等; 
    允许root用户在spark(Linux系统的主机名,IP映射)进行远程登陆,并设置root用户的密码为root。 
    flush privileges告诉服务器重新加载授权表。
hive执行初始化命令时
    MySQL的驱动包放置到$HIVE_HOME/lib目录下 
    执行schematool -dbType mysql -initSchema进行初始化;
    Error: Duplicate key name 'PCS_STATS_IDX' (state=42000,code=1061)
    以下异常说明mysql已经启动。 应先关掉先前启动的mysql.再执行初始化schema操作。


接下来就是用sql来修改root的密码
mysql> use mysql;
mysql> update user set password=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit

9、输入:hive,启动hive
 

猜你喜欢

转载自blog.csdn.net/DH2442897094/article/details/88775785