0
点赞
收藏
分享

微信扫一扫

Hive与HBase集成进行数据分析

Hive与HBase集成进行数据分析_hadoop

 

Hive与HBase集成进行数据分析_java_02

 

 Hive与HBase集成进行数据分析_hadoop_03

 

 Hive与HBase集成进行数据分析_java_04

 

我们把hive的安装包上传的节点3来

Hive与HBase集成进行数据分析_hive_05

 

解压

Hive与HBase集成进行数据分析_hadoop_06

 

 Hive与HBase集成进行数据分析_hadoop_07

 

Hive与HBase集成进行数据分析_hive_08

 

现在我们还是老规矩通过notopad++来连接我们的虚拟机来配置文件,把下面这两个文件重命名一下

Hive与HBase集成进行数据分析_hadoop_09

 

 Hive与HBase集成进行数据分析_java_10

 

修改这个文件

Hive与HBase集成进行数据分析_java_11

 Hive与HBase集成进行数据分析_hadoop_12

 

Hive与HBase集成进行数据分析_hive_13

 

对hive-env.sh我们修改这里

 Hive与HBase集成进行数据分析_hadoop_14

 

Hive与HBase集成进行数据分析_java_15

 

下面我们在HDFS下创建目录,这个可以在任何一个节点下创建都可以,我这里就在节点2下创建了

Hive与HBase集成进行数据分析_hadoop_16

Hive与HBase集成进行数据分析_hadoop_17

 

给这个目录赋予权限

 Hive与HBase集成进行数据分析_hive_18

 

 配置完之后我们启动一下hive

Hive与HBase集成进行数据分析_hadoop_19

Hive与HBase集成进行数据分析_java_20

 

 

Hive与HBase集成进行数据分析_hadoop_21

Hive与HBase集成进行数据分析_hive_22

 

 把这段内容删除掉

Hive与HBase集成进行数据分析_java_23

 

 从这里开始一直到下面

Hive与HBase集成进行数据分析_hadoop_24

到最后的这里我们都把他删除掉

Hive与HBase集成进行数据分析_hive_25

 

然后也是从这里开始到下面

Hive与HBase集成进行数据分析_java_26

 

到下面也删除掉

Hive与HBase集成进行数据分析_hadoop_27

 

最后留下这些内容

Hive与HBase集成进行数据分析_hadoop_28

 

修改配置一下

Hive与HBase集成进行数据分析_hadoop_29

 

Hive与HBase集成进行数据分析_hive_30

Hive与HBase集成进行数据分析_java_31

Hive与HBase集成进行数据分析_hive_32

 

Hive与HBase集成进行数据分析_hive_33

 

 Hive与HBase集成进行数据分析_java_34

Hive与HBase集成进行数据分析_java_35

Hive与HBase集成进行数据分析_java_36

Hive与HBase集成进行数据分析_java_37

 

 

Hive与HBase集成进行数据分析_hive_38

 

Hive与HBase集成进行数据分析_hive_39

 

 

Hive与HBase集成进行数据分析_java_40

 

Hive与HBase集成进行数据分析_java_41

Hive与HBase集成进行数据分析_hadoop_42

 

创建表格

Hive与HBase集成进行数据分析_hadoop_43

Hive与HBase集成进行数据分析_hive_44

 

 我们创建一个文件

Hive与HBase集成进行数据分析_java_45

Hive与HBase集成进行数据分析_hadoop_46

 

把刚刚创建的文件数据加载到test表里面去

Hive与HBase集成进行数据分析_hadoop_47

Hive与HBase集成进行数据分析_hive_48

 

Hive与HBase集成进行数据分析_hive_49

可以看到报错了!!!

 

Hive与HBase集成进行数据分析_hive_50

Hive与HBase集成进行数据分析_hive_51

 

​​ http://bigdata-pro01.kfk.com:8088/​​

Hive与HBase集成进行数据分析_java_52

Hive与HBase集成进行数据分析_hive_53

Hive与HBase集成进行数据分析_hive_54

 成功了!

 

Hive与HBase集成进行数据分析_hive_55

可以看到并没有创建metastore数据库

现在发现配置文件出现了一个小错误

Hive与HBase集成进行数据分析_hadoop_56

 

 这个文件的名字没有修改

 Hive与HBase集成进行数据分析_java_57

 

 

 重新运行一下Hive

 Hive与HBase集成进行数据分析_java_58

 

我们重新创建一个表

Hive与HBase集成进行数据分析_hadoop_59

Hive与HBase集成进行数据分析_hadoop_60

 

 

在mysql下查看

 Hive与HBase集成进行数据分析_java_61

Hive与HBase集成进行数据分析_java_62

Hive与HBase集成进行数据分析_java_63

 

回到hive界面我们把数据导入到表dept中

Hive与HBase集成进行数据分析_hive_64

Hive与HBase集成进行数据分析_java_65

Hive与HBase集成进行数据分析_hadoop_66

 

把这段复杂过来到hive-site.xml

Hive与HBase集成进行数据分析_hive_67

 

 Hive与HBase集成进行数据分析_hadoop_68

 

修改一下配置

Hive与HBase集成进行数据分析_java_69

 

然后我们重启hive

Hive与HBase集成进行数据分析_hadoop_70

 

Hive与HBase集成进行数据分析_hive_71

 

 Hive与HBase集成进行数据分析_hadoop_72

 

在hive-site.xml下加上这么一句

Hive与HBase集成进行数据分析_hive_73

 

 

Hive与HBase集成进行数据分析_java_74

 

 Hive与HBase集成进行数据分析_hadoop_75

因为我这里用的是cdh版本的所以我就不需要导包了

 

Hive与HBase集成进行数据分析_hadoop_76

 

Hive与HBase集成进行数据分析_java_77

 可以看到报错了!!

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

 

 

 

怎么解决呢

首先通过用下面的命令,重新启动hive
./hive -hiveconf hive.root.logger=DEBUG,console 进行debug
查看到错误原因

Hive与HBase集成进行数据分析_hive_78

Hive与HBase集成进行数据分析_hive_79

调遣hbase包错误,配置文件不能加载。

将hbase目录下jar包拷贝到hadoop/lib下,(注意了我这里为了保险起见3个节点都做了这一步)

然后修改hive的配置文件,使hbase的lib包生效

Hive与HBase集成进行数据分析_java_80

 

重启一下hive,再次建表

Hive与HBase集成进行数据分析_java_81

Hive与HBase集成进行数据分析_java_82

成功!!!

 

将hbase的9个包拷贝到hive/lib目录下

 

export HBASE_HOME=/opt/modules/hbase-0.98.6-cdh5.3.0

 

export HIVE_HOME=/opt/modules/hive-0.13.1/lib

 

 

ln -s $HBASE_HOME/lib/hbase-server-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-server-0.98.6-cdh5.3.0.jar

 

 

 

ln -s $HBASE_HOME/lib/hbase-client-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-client-0.98.6-cdh5.3.0.jar

 

 

 

ln -s $HBASE_HOME/lib/hbase-protocol-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-protocol-0.98.6-cdh5.3.0.jar

 

 

 

ln -s $HBASE_HOME/lib/hbase-it-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-it-0.98.6-cdh5.3.0.jar

 

 

 

ln -s $HBASE_HOME/lib/htrace-core-2.04.jar$HIVE_HOME/lib/htrace-core-2.04.jar

 

 

 

ln -s $HBASE_HOME/lib/hbase-hadoop2-compact-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-hadoop2-compact-0.98.6-cdh5.3.0.jar

 

 

 

ln -s $HBASE_HOME/lib/hbase-hadoop-compact-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-hadoop-compact-0.98.6-cdh5.3.0.jar

 

 

 

ln -s $HBASE_HOME/lib/high-scale-lib-1.1.1.jar $HIVE_HOME/lib/high-scale-lib-1.1.1.jar

 

 

 

ln -s $HBASE_HOME/lib/hbase-common-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-common-0.98.6-cdh5.3.0.jar

 

我在这里说一下,最好还是用工具手动导过来把,直接用上面的语句会出错的

 

 Hive与HBase集成进行数据分析_java_83

结果报错了,查看日志

2018-03-09 04:49:05,535 INFO  [main]: ql.Driver (Driver.java:compile(446)) - Semantic Analysis Completed
2018-03-09 04:49:05,643 INFO [main]: ql.Driver (Driver.java:getSchema(245)) - Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:weblogs.id, type:string, comment:null), FieldSchema(name:weblogs.datatime, type:string, comment:null), FieldSchema(name:weblogs.userid, type:string, comment:null), FieldSchema(name:weblogs.searchname, type:string, comment:null), FieldSchema(name:weblogs.retorder, type:string, comment:null), FieldSchema(name:weblogs.cliorder, type:string, comment:null), FieldSchema(name:weblogs.cliurl, type:string, comment:null)], properties:null)
2018-03-09 04:49:05,643 INFO [main]: ql.Driver (Driver.java:execute(1243)) - Starting command: select * from weblogs
2018-03-09 04:49:05,659 INFO [main]: ql.Driver (SessionState.java:printInfo(556)) - OK
2018-03-09 04:49:06,260 ERROR [main]: CliDriver (SessionState.java:printError(565)) - Failed with exception java.io.IOException:java.io.IOException: java.lang.reflect.InvocationTargetException
java.io.IOException: java.io.IOException: java.lang.reflect.InvocationTargetException
at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:634)
at org.apache.hadoop.hive.ql.exec.FetchOperator.pushRow(FetchOperator.java:532)
at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:137)
at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1570)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:289)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:221)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:431)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:800)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:694)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:633)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException
at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:413)
at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:390)
at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:271)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:198)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:175)
at org.apache.hadoop.hive.hbase.HiveHBaseTableInputFormat.getSplitsInternal(HiveHBaseTableInputFormat.java:368)
at org.apache.hadoop.hive.hbase.HiveHBaseTableInputFormat.getSplits(HiveHBaseTableInputFormat.java:358)
at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:413)
at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:559)
... 15 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:411)
... 23 more
Caused by: java.lang.NoClassDefFoundError: org/cloudera/htrace/Trace
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:216)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:479)
at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:65)
at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:83)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.retrieveClusterId(HConnectionManager.java:839)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:642)
... 28 more
Caused by: java.lang.ClassNotFoundException: org.cloudera.htrace.Trace
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 34 more

 

 

重点看这里

Hive与HBase集成进行数据分析_hive_84

 

 

 这个错误的意思是

缺少 htrace-core-2.04.jar

 到hive的lib目录下查看一下

Hive与HBase集成进行数据分析_hive_85

发现这个包是有的,但是有问题,现在把这个坏的包删掉,再到Hbase的lib下把一个好的拷贝过来。

 Hive与HBase集成进行数据分析_hive_86

现在这个正常了

再select * from weblogs;

Hive与HBase集成进行数据分析_java_87

 

 可以看到数据映射过来了

 

Hive与HBase集成进行数据分析_hive_88

 

 Hive与HBase集成进行数据分析_hadoop_89

 

 

下面是补充内容

 Hive与HBase集成进行数据分析_java_90

 

 

这个时候检查mysql是否启动了,保存mysql是启动状态

先启动hiveserver2

Hive与HBase集成进行数据分析_hive_91

 

 然后再新建一个远程连接窗口

启动beeline

 Hive与HBase集成进行数据分析_hive_92

Hive与HBase集成进行数据分析_java_93

Hive与HBase集成进行数据分析_hadoop_94

 

#查看前10条数据

select * from weblogs limit 10;

Hive与HBase集成进行数据分析_hive_95

 

在hbase里面取一条数据查看一下

 Hive与HBase集成进行数据分析_java_96

 

举报

相关推荐

0 条评论