centOS下hive配置

本文档详细介绍了如何在CentOS系统中安装Hive,并使用MySQL作为其Metastore。首先,Hive被安装在Hadoop的Namenode上,接着配置环境变量。然后,安装和配置MySQL,包括设置root密码、远程访问权限以及初始化Metastore的schema。最后,确保MySQL的binlog_format为mixed,并调整Hive配置,完成Hive的启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装hive

安装在hadoop的namenode上,拷贝安装文件到linux中/opt/SoftWare/apache-hive-2.3.2-bin.tar.gz
解压:
tar –zxvf apache-hive-2.3.2-bin.tar.gz
添加到环境变量
vi /etc/profile
编辑
#hive

export HIVE_HOME=/opt/SoftWare/apache-hive-2.3.2-bin
export PATH=$PATH:$HIVE_HOME/bin

保存后使其生效:

source /etc/profile

安装mysql作为hive的Metastore

首先检查mysql是否已安装:

rpm -qa | grep -i mysql

结果:
mysql-libs-5.1.71-1.el6.x86_64
删除已安装的mysql并安装新的:

yum -y remove mysql-libs*
rm -rf /var/lib/mysql*
tar xvf MySQL-5.5.49-1.linux2.6.x86_64.rpm-bundle.tar

rpm -ivh MySQL-server-5.5.49-1.linux2.6.x86_64.rpm --force --nodeps
rpm -ivh MySQL-devel-5.5.49-1.linux2.6.x86_64.rpm --force --nodeps
rpm -ivh MySQL-client-5.5.49-1.linux2.6.x86_64.rpm --force --nodeps

启动mysql

service mysql start
首次安装时,默认密码为空,可以使用如下命令修改root密码

mysqladmin -u root  password mypassword

mypassword 为你设定的新密码
登录mysql

mysql -u root –p

rpm包安装的MySQL是不会安装/etc/my.cnf文件的,解决方法,只需要复制/usr/share/mysql目录下的my-huge.cnf 文件到/etc目录,并改名为my.cnf即可

cp /usr/share/mysql/my-huge.cnf /etc/my.cnf

mysql默认不可以远程访问,设置远程访问
–GRANT ALL PRIVILEGES ON . TO ‘root’@’%‘WITH GRANT OPTION;
上面这句远程访问不需要密码,如果需要密码使用下面这句
GRANT ALL PRIVILEGES ON . TO ‘root’@’%'IDENTIFIED BY ‘sa’ WITH GRANT OPTION;

使权限生效:
FLUSH PRIVILEGES;

设置etc/my.cnf文件,使binlog_format=mixed

vi etc/my.cnf

将注释掉的binlog_format=mixed这一行前面的注释去掉然后保存,重启mysql即可
service mysql restart

配置hive

在hdfs中新建目录/user/hive/warehouse

hdfs dfs –mkdir /tmp
hdfs dfs –mkdir /user
hdfs dfs –mkdir /user/hive
hdfs dfs –mkdir /user/hive/warehouse

hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse

将mysql的驱动jar包mysql-connector-java-5.1.7-bin.jar拷入hive的lib目录下面
进入hive的conf目录下面复制一下hive-default.xml.template名子命名为:hive-site.xml

cp hive-default.xml.template hive-site.xml

配置代码:

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</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>sa</value>
    <description>password to use against metastore database</description>
  </property>

 

  <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/opt/SoftWare/apache-hive-2.3.2-bin/tmp</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/opt/SoftWare/apache-hive-2.3.2-bin/tmp/resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>
  <property>
    <name>hive.querylog.location</name>
    <value>/opt/SoftWare/apache-hive-2.3.2 -bin/tmp</value>
    <description>Location of Hive run time structured log file</description>
  </property>
  <property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/opt/SoftWare/apache-hive-2.3.2-bin/tmp/operation_logs</value>
    <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
  </property>

修改:

<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
    <description>
      Enforce metastore schema version consistency.
      True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
            schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
            proper metastore schema migration. (Default)
      False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>
  </property>

使用schematool 初始化metastore的schema:

#schematool -initSchema -dbType mysql

schematool -dbType mysql -initSchema

运行hive

alter database hive character set latin1;
set character_set_client=latin1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值