我们把hive的安装包上传的节点3来
解压
现在我们还是老规矩通过notopad++来连接我们的虚拟机来配置文件,把下面这两个文件重命名一下
修改这个文件
对hive-env.sh我们修改这里
下面我们在HDFS下创建目录,这个可以在任何一个节点下创建都可以,我这里就在节点2下创建了
给这个目录赋予权限
配置完之后我们启动一下hive
把这段内容删除掉
从这里开始一直到下面
到最后的这里我们都把他删除掉
然后也是从这里开始到下面
到下面也删除掉
最后留下这些内容
修改配置一下
创建表格
我们创建一个文件
把刚刚创建的文件数据加载到test表里面去
可以看到报错了!!!
http://bigdata-pro01.kfk.com:8088/
成功了!
可以看到并没有创建metastore数据库
现在发现配置文件出现了一个小错误
这个文件的名字没有修改
重新运行一下Hive
我们重新创建一个表
在mysql下查看
回到hive界面我们把数据导入到表dept中
把这段复杂过来到hive-site.xml
修改一下配置
然后我们重启hive
在hive-site.xml下加上这么一句
因为我这里用的是cdh版本的所以我就不需要导包了
可以看到报错了!!
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
查看到错误原因
调遣hbase包错误,配置文件不能加载。
将hbase目录下jar包拷贝到hadoop/lib下,(注意了我这里为了保险起见3个节点都做了这一步)
然后修改hive的配置文件,使hbase的lib包生效
重启一下hive,再次建表
成功!!!
将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
我在这里说一下,最好还是用工具手动导过来把,直接用上面的语句会出错的
结果报错了,查看日志
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
重点看这里
这个错误的意思是
缺少 htrace-core-2.04.jar
到hive的lib目录下查看一下
发现这个包是有的,但是有问题,现在把这个坏的包删掉,再到Hbase的lib下把一个好的拷贝过来。
现在这个正常了
再select * from weblogs;
可以看到数据映射过来了
下面是补充内容
这个时候检查mysql是否启动了,保存mysql是启动状态
先启动hiveserver2
然后再新建一个远程连接窗口
启动beeline
#查看前10条数据
select * from weblogs limit 10;
在hbase里面取一条数据查看一下