前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS 6.9 中 搭建 Hive

CentOS 6.9 中 搭建 Hive

作者头像
北漂的我
发布2019-05-28 20:02:52
5860
发布2019-05-28 20:02:52
举报
文章被收录于专栏:北漂的我北漂的我

1. 解压 hive 安装包

代码语言:javascript
复制
sudo tar -zxvf apache-hive-2.1.1-bin.tar.gz

2. 安装 mysql

代码语言:javascript
复制
sudo yum install mysql-server

3. 安装 mysql-connector

代码语言:javascript
复制
sudo yum install mysql-connector-java

4. 建立 mysql-connector 链接

代码语言:javascript
复制
ln -s /usr/share/java/mysql-connector-java.jar /opt/apache-hive-2.1.1-bin/lib/mysql-connector-java.jar

5. 启动 mysql

代码语言:javascript
复制
sudo service mysqld start

验证 mysql 服务 是否启动成功

代码语言:javascript
复制
ps aux | grep mysql

6. 修改 mysql 数据库的 root 用户的密码

代码语言:javascript
复制
# 使用mysql的root用户登录,root用户的初始密码为空字符串
[bigdata@bigdata ~]$ mysql -u root
# 使用mysql数据库
mysql> use mysql
# 修改root用户的密码为newPassword
mysql> update user set password = password('root') where user = 'newPassword';
# 刷新权限使新密码立即生效
mysql> flush privileges;
# 设置允许root用户通过任意机器访问mysql
mysql> grant all privileges on *.* to 'root'@'%' identified by 'newPassword' with grant option;
# 刷新权限
mysql> flush privileges;

7. 配置 Hive 环境变量

代码语言:javascript
复制
export HIVE_HOME=/opt/apache-hive-2.1.1-bin
# 在下面这行末尾添加 :$HIVE_HOME/bin
export PATH=$HOME/bin:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$FLUME_HOME/bin:$HIVE_HOME/bin
代码语言:javascript
复制
source ~/.bash_profile

8. 配置 /opt/apache-hive-2.1.1-bin/conf/hive-site.xml

  • hive.metastore.uris中的 bigdata 含义为 metastore 所在的机器
  • javax.jdo.option.ConnectionURL中的 bigdata 为 mysql 安装机器的 hostname
  • javax.jdo.option.ConnectionUserName 和 javax.jdo.option.ConnectionPassword 分别为mysql 的访问用户和密码,可通过以下命令验证是否有效(期中bigdata为javax.jdo.option.ConnectionURL中配置的地址,xxx为mysql用户名):mysql –h bigdata-u xxx –p
  • fs.defaultFS 为HDFS的 namenode 启动的机器地址
  • beeline.hs2.connection.user 和 beeline.hs2.connection.password 是beeline方式访问的用户名和密码,可任意指定,但在beeline访问时要写入你指定的这个
代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
       Licensed under the Apache License, Version 2.0 (the "License");
         you may not use this file except in compliance with the License.
           You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
          limitations under the License. See accompanying LICENSE file.
          -->

<!-- Put site-specific property overrides in this file. -->
<configuration>
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://bigdata:9083</value>
    </property>
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://bigdata/metastore?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>root</value>
    </property>
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/warehouse</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bigdata:9000</value>
    </property>
    <property>
        <name>datanucleus.autoCreateSchema</name>
        <value>true</value>
    </property>
    <property>
        <name>datanucleus.autoStartMechanism</name> 
        <value>SchemaTable</value>
    </property>
    <property>
        <name>datanucleus.schema.autoCreateTables</name>
        <value>true</value>
    </property>

    <property>
        <name>beeline.hs2.connection.user</name>
        <value>bigdata</value>
        </property>
     <property>
        <name>beeline.hs2.connection.password</name>
        <value>bigdata</value>
     </property>
</configuration>

9. 启动 metestore,启动 hive server

代码语言:javascript
复制
# 启动 metastore
nohup hive --service metastore >> /opt/apache-hive-2.1.1-bin/metastore.log 2>&1 &
# 启动 hive server
nohup hive --service hiveserver2 >> /opt/apache-hive-2.1.1-bin/hiveserver.log 2>&1 &
# 查看hive metastore 和 hiveserver2 是否启动成功
ps aux | grep hive

10. Hive 的两种访问方式

代码语言:javascript
复制
# 第一种访问方式
hive
# 第二种访问方式
# 其中 bigdata 和 bigdata 分别是在 hive-site.xml 配置文件中由 beeline.hs2.connection.user 和 beeline.hs2.connection.password 设置的。
beeline
!connect jdbc:hive2://bigdata:10000/default bigdata bigdata

注1:如果要使用beeline或JDBC连接hive时,遇到报错:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: xxx is not allowed to impersonate xxx ,需在hadoop的配置文件core-site.xml中加入以下配置(其中红色标志的“bigdata”提出你设置的beeline.hs2.connection.user),并重启hiveserver2: <property> <name>hadoop.proxyuser.bigdata.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.bigdata.hosts</name> <value>*</value> </property> 注2:如果在删除数据库的时候出现 Table 'metastore.TXN_COMPONENTS' doesn't exist错误,说明Mysql中的metaStore数据库没有初始化成功,需要停止metastore/hiveserver2之后,删除mysql中的metastore数据库,然后使用下面的命令去重新初始化metastore: schematool -dbType mysql -initSchema 注3:启动Beeline的时候,如果出现ls: cannot access /home/bigdata/apache-hive-2.1.0-bin/lib/hive-jdbc-*-standalone.jar: No such file or directory错误,执行下面的命令消除错误: cp jdbc/hive-jdbc-2.1.0-standalone.jar lib/ 当然,如果不执行该命令,也没有关系,不影响实际命令的执行。

启动 HIVE 过程总结:

1. 启动 hdfs

代码语言:javascript
复制
/opt/hadoop-2.7.4/sbin/start-dfs.sh

2. 启动 yarn

代码语言:javascript
复制
/opt/hadoop-2.7.4/sbin/start-yarn.sh

3. 启动 historyserver

代码语言:javascript
复制
/opt/hadoop-2.7.4/sbin/mr-jobhistory-daemon.sh start historyserver

4. 启动 mysql

代码语言:javascript
复制
sudo service mysqld start

5. 启动 hive 的 metastore 和 hiveserver2

代码语言:javascript
复制
# 启动 metastore
nohup hive --service metastore >> /opt/apache-hive-2.1.1-bin/metastore.log 2>&1 &
# 启动 hive server
nohup hive --service hiveserver2 >> /opt/apache-hive-2.1.1-bin/hiveserver.log 2>&1 &
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档