【Hive】Linux(Centos6.5)环境下Hive的安装和配置MySQL

Hive的安装和配置

Hadoop的安装和配置可见:Hadoop集群搭建-完全分布式

Mysql安装

# 先卸载系统自带
rpm -qa | grep mysql | xargs -e --nodeps
# (如果是centos7需要卸载mariadb相关组件)
rpm -qa | grep mariadb | xargs -e --nodeps
# 分别安装mysql服务和客户端
rpm -ivh Mysql-server.rpm
rpm -ivh Mysql-client.rpm
# 将mysql连接java的jar包放到lib目录下
cp mysql-connector-java.jar hive/lib
# 启动服务
service mysql start
# 查看状态
service mysql status
# 获取root默认密码
cat /root/.mysql_secret
# 进入客户端
mysql -uroot -p

Mysql配置

-- 修改密码
set password=password('123456');
-- 修改使任意主机可访问
use mysql;
select user,host,password from user;
update user set host='%' where host='localhost';
delete from user where host='127.0.0.1';
delete from user where host='(主机名)';
delete from user where host='::1';
-- 修改完成后在mysql中刷新
flush privileges;
-- 或者在终端重启mysql服务
service mysql restart;

hive-site.xml配置

<configuration>    
	<property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://node1:3306/hivedb?createDatabaseIfNotExist=true</value>
        <description>
          JDBC connect string for a JDBC metastore.
          To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
          For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
        </description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
       <name>javax.jdo.option.ConnectionUserName</name>
       <value>root</value>
       <description>Username to use against metastore database</description>
    </property>

    <property>
       <name>javax.jdo.option.ConnectionPassword</name>
       <value>123456</value>
       <description>password to use against metastore database</description>
    </property>
    
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
        <description>配置自动显示表头</description>
    </property>
    
     <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
        <description>配置显示当前数据库</description>
    </property>
    
</configuration>

配置Hive日志存放位置

# 重命名以下文件
mv hive-log4j.properties.template hive-log4j.properties
# 编辑
vim hive-log4j.properties
# 修改如下的参数
hive.log.dir=/opt/module/hive/logs

配置本次启动时的配置(仅对本次启动的hive有效)

配置优先级: 参数声明(set) > 命令行参数(-hiveconf) > 配置文件(hive-site.xml)

# 启动时添加参数配置: -hiveconf param=value
bin/hive -hiveconf mapreduce.reduce.tasks=10
# 或在启动后使用SET关键字配置
set mapreduce.reduce.tasks=10;
# 查看参数设置
set mapreduce.reduce.tasks;

启动

# 先启动hadoop
start-dfs.sh
start-yarn.sh
# 进入Hive客户端
bin/hive
# 不进入Hive客户端,直接执行sql语句
bin/hive -e "show databases;"
# 不进入Hive客户端,执行指定脚本中的sql语句
bin/hive -f /opt/datas/hive.sql

一些问题

  1. 启动时报错:Found class jline.Terminal, but interface was expected

    解决方案:用hive/lib下的jline替换掉hadoop的jline

    rm -f /opt/module/hadoop-2.6.0/share/hadoop/yarn/lib/jline-0.9.94.jar
    cp /opt/module/hive/lib/jline-2.12.jar /opt/module/hadoop-2.6.0/share/hadoop/yarn/lib/
    

猜你喜欢

转载自blog.csdn.net/u014532291/article/details/104929612
今日推荐