Hive整合HBASE部署流程

一、 版本号

2.1.1

二、安装目录

/mnt/hadoop/hive-2.1.1

三、 先决条件

Java环境、Hadoop环境、HBase环境(如果需要读/写HBase的数据表)正常运行

四、部署步骤

1、配置环境变量 /etc/profile

export HIVE_HOME=/mnt/hadoop/hive-2.1.1
export PATH=$PATH:$HIVE_HOME/bin

2、配置 hive-env.sh

#指定Hadoop的目录
HADOOP_HOME=/mnt/hadoop/hadoop-2.6.5

# 指定Hive的配置文件目录
export HIVE_CONF_DIR=/mnt/hadoop/hbase-1.1.1/conf

# 指定内存机制
export HADOOP_HEAPSIZE=2048
export HADOOP_CLIENT_OPTS="-XX:PermSize=256m -XX:MaxPermSize=512m -Xmx2g -Xms2g -Xmn768m -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70"

3、配置hive-log4j2.properties

# 从案例文件中拷贝生成
cp hive-log4j2.properties.template hive-log4j2.properties

# 指定Hive的日志目录
property.hive.log.dir = /mnt/hadoop/hive-2.1.1/logs

4、配置beeline-log4j2.properties

# 从案例文件中拷贝生成
cp beeline-log4j2.properties.template beeline-log4j2.properties

5、配置hive-site.xml

# 从案例文件中拷贝生成
cp hive-default.xml.template hive-site.xml

# 指定执行Hive任务的临时目录
  <property>
    <name>hive.exec.local.scratchdir</name>
    <!--<value>/mnt/hadoop/hive-2.1.1/logs</value>-->
    <value>/tmp/hadoop/hive-2.1.1/scratchdir</value>
  </property>

# 指定Hive中加载资源的临时目录
  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/tmp/hadoop/hive-2.1.1/resources/${hive.session.id}</value>
  </property>

# 指定实时查询日志所在的目录,如果该值为空,将不创建实时的查询日志
  <property>
    <name>hive.querylog.location</name>
    <value>/tmp/hadoop/hive-2.1.1/querylog</value>
  </property>

# 指定操作日志的存储目录(如果启用日志记录功能)
  <property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/mnt/hadoop/hive-2.1.1/logs/operation_logs</value>
  </property>

# 指定MySQL昨晚元数据存储的媒介,配置连接数据库的URL
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hivemetastore?useUnicode=true&amp;characterEncoding=utf-8&amp;allowMultiQueries=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>dongpinyun</value>
</property>

# 指定元数据库的用户密码
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>password</value>
  </property>

# 指定是否强制metastore的schema一致性
  <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
  </property>

# 指定是否以提交该任务的用户身份去执行(否则将以当前Hive Server进程的Linux用户来执行)
  <property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
  </property>

# 当前部署的Hive和HBase版本不匹配时,才配置此项:复制HBase的如下依赖包到HIVE_HOME/lib目录,并删除旧的依赖包)
  <property>
    <name>hive.aux.jars.path</name>
    <value>file:///mnt/hadoop/hive-2.1.1/lib/guava-14.0.1.jar,file:///mnt/hadoop/hive-2.1.1/lib/zookeeper-3.4.6.jar,file:///mnt/hadoop/hive-2.1.1/lib/htrace-core-3.1.0-incubating.jar,file:///mnt/hadoop/hive-2.1.1/lib/hbase-common-1.1.1.jar,file:///mnt/hadoop/hive-2.1.1/lib/hbase-common-1.1.1-tests.jar,file:///mnt/hadoop/hive-2.1.1/lib/hbase-client-1.1.1.jar,file:///mnt/hadoop/hive-2.1.1/lib/hbase-server-1.1.1.jar,file:///mnt/hadoop/hive-2.1.1/lib/hbase-protocol-1.1.1.jar,file:///mnt/hadoop/hive-2.1.1/lib/hbase-protocol-1.1.1.jar,file:///mnt/hadoop/hive-2.1.1/lib/hive-hbase-handler-2.1.1.jar</value>
  </property>

# 指定HBase-ZK服务的主机名
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>machineName</value>
  </property>

# 指定HBase-ZK服务的端口号
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2182</value>
  </property>

6、添加第三方依赖包

# JDBC
shell>cp mysql-connector-java-5.1.41.jar %HIVE_HOME%/lib

7、初始化元数据

shell>/mnt/hadoop/hive-2.1.1/bin/schematool -dbType mysql -initSchema

8、运行Hive元数据服务

shell>/mnt/hadoop/hive-2.1.1/bin/hive --service metastore &

9、运行Hive服务

shell>/mnt/hadoop/hive-2.1.1/bin/hiveserver2 &

10、通过beeline客服端,验证成果

shell>/mnt/hadoop/hive-2.1.1/bin/beeline

11、连接Hive数据库服务端

beeline>!connect jdbc:hive2://machineName:10000

12、输入Hive数据库服务端的用户名

Enter username for jdbc:hive2://machineName:10000:

13、输入Hive数据库服务端的用户密码

Enter password for jdbc:hive2://machineName:10000:

14、SQL操作示例:打开数据库database

0: jdbc:hive2://machineName:10000>use database;

15、SQL操作示例:创建一张映射至HBase的Hive外部表

0: jdbc:hive2://machineName:10000>create external table external_table(key string,id string,url string,param string,param_body string,method string,agent string,ip string,response_time string,create_date_time string,user_type string,user_id string,user_telephone string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:id,info:url,info:param,info:paramBody,info:method,info:agent,info:ip,info:responseTime,info:createDateTime,info:userType,info:userId,info:userTelephone") TBLPROPERTIES ("hbase.table.name"="hbaseTable"); 

15、SQL操作示例:统计外部表logRequestRecord的行数

0: jdbc:hive2://machineName:10000>select count(id) from external_table;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值