hadoop安装hive


CentOS7下默认没有安装MySQL,有MariaDB数据库
MariaDB数据库是MySQL的一个分支,主要是开源社区在维护,采用GPL授权许可,开发此分支的原因之一是:甲骨文收购了MySQL后,有将MySQL闭源风险。MariaDB目的是完全兼容MySQL,包括API和命令行。

1. 卸载MariaDB

# 查看系统上的MariaDB
[root@master hive3.1]# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
# 卸载
[root@master hive3.1]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

说明:
rpm -qa 列出所有已安装软件包
rpm -e packagename 删除软件包
rpm -e --nodeps packagename 强制删除软件和依赖包
rpm -q 包名 查询包是否安装
rpm -ivh 包名 安装软件包

2. 下载hive,mysql,mysqlconnect

http://mirrors.estointernet.in/apache/hive/

https://dev.mysql.com/downloads/mysql/5.6.html#downloads

https://dev.mysql.com/downloads/connector/j/

2.1 安装mysql

下载的mysql安装包,传到centos中,解压,会看到
MySQL-server-5.6.43-1.el7.x86_64.rpm
MySQL-client-5.6.43-1.el7.x86_64.rpm

rpm -ivh MySQL-server-5.6.43-1.el7.x86_64.rpm
rpm -ivh MySQL-server-5.6.43-1.el7.x86_64.rpm

rpm -i 需要安装的包文件
rpm -iv 需要安装的包文件(显示安装详情)
rpm -ivh 需要安装的包文件(显示安装详情及进度)

2.2 安装配置hive

把下载的文件放到/opt/hive 下
解压,把目录改为hive2.3

  1. 配置hive环境变量

vi /etc/profile

export HIVE_HOME=/opt/hive/hive2.3
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile

  1. 在conf目录下,从模板文件增加hive-site.xml和hive-env.sh文件
mv hive-default.xml.template hive-site.xml
mv hive-env.sh.template hive-env.sh
  1. 修改在$HIVE_HOME/conf下面,修改hive的配置文件hive-env.sh,内容如下:
export JAVA_HOME=/opt/java/jdk1.8
export HADOOP_HOME=/opt/hadoop/hadoop2.8
export HIVE_HOME=/opt/hive/hive2.3
export HIVE_CONF_DIR=/opt/hive/hive2.3/conf
export HIVE_AUX_JARS_PATH=/opt/hive/hive2.3/lib
  1. 修改在$HIVE_HOME/conf下面,修改hive的配置文件hive-site.xml,内容如下:
		<property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
         </property>

        <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.2.5:3306/hivedemo?createDatabaseIfNotExsit=true&amp;characterEncoding=UTF-8&amp;verifyServerCertificate=false&amp;useSSL=false</value>
        </property>

		<property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        </property>
                            
        <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>password</value>
        </property>
        
        <property>
        <name>datanucleus.schema.autoCreateAll</name>
        <value>true</value>
        </property>

        <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
        </property>

同时,
在hive 配置文件hive-site.xml 中找到${system:java.io.tmpdir},并把此都替换成具体目录,如/opt/hive/hive2.3/tmpdir

  1. 拷贝刚才下载的驱动包到$HIVE_HOME/lib目录下
  2. 对数据库用户授权
mysql> grant all on *.* to 'root'@master identified by 'password';
Query OK, 0 rows affected (0.00 sec)
  1. 初始化,启动hive
    在$HIVE_HOME/bin目录下
./schematool -initSchema -dyType mysql
# 初始化完成之后
hive

3. 掉过的坑

3.1 登录到hive数据仓库后,输入一些命令,出现如下错误

Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

解决办法:
进入$HIVIE_HOME/conf,打开hive-site.xml文件
找到如下属性

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/opt/hive/hive2.3/iotmp/${system:user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>

修改为:

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/opt/hive/hive2.3/iotmp/${user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>

问题解决!

猜你喜欢

转载自blog.csdn.net/zgf605506394/article/details/88186541