设为首页 收藏本站
查看: 1145|回复: 0

[经验分享] hive安装配置+与hbase整合

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-19 08:46:00 | 显示全部楼层 |阅读模式
一、hive介绍
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

二、安装hive
安装前提是hadoop集群已经安装好,并且采用cdh的yum源,hadoop、hdfs、hbase等已经就绪。

1
yum -y install hive




三、配置hive

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
vim /etc/hive/conf/hive-site.xml
<property>
  <name>hive.metastore.execute.setugi</name>
  <value>true</value>
</property>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
  <description>location of default database for the warehouse</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://10.57.1.116: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>hive</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>redhat</value>
</property>



四、建立hive hdfs目录,并给相应权限。

1
2
3
sudo -u hdfs hadoop fs -mkdir -p /user/hive/warehouse
sudo -u hdfs hadoop fs -chmod -R 777 /user/hive/
sudo -u hdfs hadoop fs -chown -R hive /user/hive/



五、建立Hive集成Mysql作为元数据
1、创建hive数据库,hive登录用户,设置hive权限,设置hive数据库字符集。
1
2
3
4
5
6
shell> mysql -uroot -p
mysql> CREATE DATABASE hive;
mysql> CREATE USER 'hive' IDENTIFIED BY 'redhat';
mysql> GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%' WITH GRANT OPTION;
mysql> flush privileges;
mysql> alter database hive character set latin1;



六、把MySQL的JDBC驱动包复制到Hive的/usr/lib/hive/lib/目录下
JDBC驱动包的版本:mysql-connector-java-5.1.32-bin.jar

七、启动并验证hive

1
2
shell> Hive
hive> show tables;



如果不报错,表明基于独立元数据库的 Hive 已经安装成功了

八、hive与hbase整合
1、在hive中执行以下建表命令

1
hive> CREATE TABLE hive_hbase_mapping_table_1(key int, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") TBLPROPERTIES ("hbase.table.name" = "hbase_sdwang_table");



如果报错:

1
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/apache/hadoop/hbase/mapreduce/TableInputFormatBase



到/usr/lib/hbase/lib/下找到:

1
2
3
4
5
6
hbase-client-0.98.1-cdh5.1.0.jar
hbase-common-0.98.1-cdh5.1.0.jar
hbase-hadoop-compat-0.98.1-cdh5.1.0.jar
hbase-protocol-0.98.1-cdh5.1.0.jar
hbase-server-0.98.1-cdh5.1.0.jar
htrace-core-2.04.jar



放到/usr/lib/hive/lib/目录下,再重启hive


注意:hive_hbase_mapping_table_1为在hive的表,hbase_sdwang_table为创建在hbase的表,这两个表是相关联的,如果从hive删除了表,则hbase也删除了表。

2、从hive测试查询成功

1
2
3
4
hive> select * from hive_hbase_mapping_table_1;
OK
Time taken: 1.103 seconds
hive>



3、从hbase查看表情况,表已经建好
百度云附件:mysql-connector-java-5.1.32-bin.zip   

1
2
3
4
5
6
hbase(main):021:0> describe 'hbase_sdwang_table';
hbase(main):022:0* list
DESCRIPTION                                                                                                                                              ENABLED                                                                           
'hbase_sdwang_table', {NAME => 'cf1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'N true                                                                              
ONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                                                                             
1 row(s) in 0.0480 seconds



4、从hive删除表,则hbase表也被删除:


1
2
3
4
5
6
7
8
9
10
11
hive> drop table hive_hbase_mapping_table_1;
Moved: 'hdfs://dev-cdh1:8020/user/hive/warehouse/hive_hbase_mapping_table_1' to trash at: hdfs://dev-cdh1:8020/user/root/.Trash/Current
OK
Time taken: 1.624 seconds
hbase(main):023:0> describe 'hbase_sdwang_table';
hbase(main):024:0* list
ERROR: Unknown table hbase_sdwang_table!
Here is some help for this command:
Describe the named table. For example:
  hbase> describe 't1'
  hbase> describe 'ns1:t1'



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-40987-1-1.html 上篇帖子: 去除Hadoop-Streaming行末多余的TAB 下篇帖子: Hadoop2.6集群环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表