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
- 配置hive环境变量
vi /etc/profile
export HIVE_HOME=/opt/hive/hive2.3
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
- 在conf目录下,从模板文件增加hive-site.xml和hive-env.sh文件
mv hive-default.xml.template hive-site.xml
mv hive-env.sh.template hive-env.sh
- 修改在$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
- 修改在$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&characterEncoding=UTF-8&verifyServerCertificate=false&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
- 拷贝刚才下载的驱动包到$HIVE_HOME/lib目录下
- 对数据库用户授权
mysql> grant all on *.* to 'root'@master identified by 'password';
Query OK, 0 rows affected (0.00 sec)
- 初始化,启动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>
问题解决!