文档章节

CentOS 6.9 中 搭建 Hive

北漂的我
 北漂的我
发布于 2018/01/16 10:52
字数 1034
阅读 34
收藏 3

1. 解压 hive 安装包

sudo tar -zxvf apache-hive-2.1.1-bin.tar.gz

2. 安装 mysql 

sudo yum install mysql-server

3. 安装 mysql-connector

sudo yum install mysql-connector-java

4. 建立 mysql-connector 链接

ln -s /usr/share/java/mysql-connector-java.jar /opt/apache-hive-2.1.1-bin/lib/mysql-connector-java.jar

5. 启动 mysql

sudo service mysqld start

   验证 mysql 服务 是否启动成功

ps aux | grep mysql

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

# 使用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 环境变量

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
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访问时要写入你指定的这个
<?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

# 启动 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 的两种访问方式

# 第一种访问方式
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 

/opt/hadoop-2.7.4/sbin/start-dfs.sh

2. 启动 yarn

/opt/hadoop-2.7.4/sbin/start-yarn.sh

3. 启动 historyserver

/opt/hadoop-2.7.4/sbin/mr-jobhistory-daemon.sh start historyserver

4. 启动 mysql 

sudo service mysqld start

5. 启动 hive 的 metastore 和 hiveserver2

# 启动 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 &

备注: yarn 配置 https://my.oschina.net/u/1411151/blog/1609057

© 著作权归作者所有

北漂的我

北漂的我

粉丝 13
博文 99
码字总数 22852
作品 0
昌平
程序员
私信 提问
大数据微职位学习心得

写了几年代码,看到这些年大数据,AI闹得火热火热,也想系统学习下大数据方面的东西,给自己充电一下。其实随着IT技术的发展,我们行业(地理信息)也已经开始拥抱大数据了。越来越多的带有位置...

mengxin3310
2018/01/09
0
0
在CentOS6.9中 搭建 Flume

之前的基本环境准备我就不再说了, 请参照我之前的搭建hadoop的文章 在CentOS 6.9中搭建Hadoop 配置 flume 环境变量 然后 记得 source ~/.bash_profile 根据需求,配置不同的 source/channel...

自东土大唐而来
2017/11/22
8
0
【干货】离线安装Cloudera Manager 5和CDH5(最新版5.13.0)详细过程

—— 原文发布于本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),欢迎关注。 Cloudera是Hadoop生态系统中,规模最大、知名度最高的公司。Cloudera对Hadoop进行了封装,简化安装过...

雪饼
2018/01/10
3.2K
0
Centos 6.9 配置 Presto

解压缩 presto-server-0.166.tar.gz 2. 在 presto-server-0.166 目录下创建 etc 目录 3. 在 etc 目录下创建 catalog 目录 4. 在 catalog 目录下创建文件 hive.properties ,文件内容如下 5....

自东土大唐而来
2018/03/05
39
0
CentOS 6.9自建开源镜像站

1、 演示环境: 备注:同步的上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。国内的很多开源镜像站都不支持rsync,这里以清华大学开源软件镜像站为例。 2、 安装前准备: (1)服...

Marion0728
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

左边竖条的实现方法

下面这个图形,只使用一个标签,可以有多少种实现方式: 假设我们的单标签是一个 div : 1 < div > div> 定义如下通用CSS: 1 2 3 4 5 6 div{ position : relative ; width : 200px ; height ...

前端老手
29分钟前
2
0
java利用ECHARTS.JS在前台显示图表

步骤1: (1)在java后台,使用MSQL分组函数,列出所有线在对应的点的值, (2)组成的Map如图所示: 注意: key为0的value表示X轴需要的数据;key为其他的值表示图表线条的名字,value为x轴的点对应的y...

文文1
32分钟前
6
0
解题博客

https://blog.csdn.net/hk2291976/article/category/9265848

素雷
57分钟前
4
0
linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件

下文中提及的inuxdeployqt patchelf appimagetool工具及示例下载地址: 链接: https://pan.baidu.com/s/1BGm_btMIe75uW9hOC09Xlg 提取码: 7ayh 需要创建目录及文件 xxx.AppDir xxx.AppDir/Ap...

shzwork
今天
5
0
javascript-ASCII码混合四位随机验证码

// 产生一个随机字符库:数字大写小写的数量是对应的 function randomStr(){ // 产生库 var strData = ""; for(var i=0;i<4;i++){ var num = random(0,9); var az = String.fromCharCode(ra......

ACKo
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部