Hive的数据库客户端界面工具DBeaver进行操作hive。
前提:
1.hadoop分布式或者伪分布已经安装好
2.hive已经安装好
3.hive元数据存放在MySQL中
4.DBeaver客户端工具
准备:
1.启动Hadoop:
sbin/start-dfs.sh
2.启动MySQL,本身就是开机自启动
service mysql start
3.启动Hive Metastore服务
hive --service metastore 或者 nohup hive --service metastore &
4.启动hiveserver2服务
hive --service hiveserver2 或者 nohup hive --service hiveserver2 --hiveconf hive.server2.thrift.port 10001 &
DBeaver进行连接:
打开DBeaver工具,点击 数据库 -- 新建连接 -- 选择Apache Hive 后,出现一下界面配置连接信息:
点击 编辑驱动设置 ,将事先下载好的hadoop-common-3.0.0.jar 和hive-jdbc-3.0.0-standalone.jar添加进去,点击一下 找到类 。
说明:
hadoop-common-3.0.0.jar是从$HAOOP_HOME/share/hadoop/common/中下载的
hive-jdbc-3.0.0-standalone.jar是从/opt/app/hive/jdbc中下载的
实际使用的时候要注意对应版本进行下载jar包
然后点击 测试链接。
这里我指定10001端口启动server2,同时hive2的启动是root启动的所以用户密码是root的
连接成功
客户端执行MapRedus报错(客户端执行查询select * 报错 执行select count(*)报如下错误)
原因:从机上运行的Container试图使用过多的内存,而被NodeManager kill掉了。
解决:加内存
在hadoop的配置文件mapred-site.xml中设置map和reduce任务的内存配置如下:(value中实际配置的内存需要根据自己机器内存大小及应用情况进行修改)
<property> <name>mapreduce.map.memory.mb</name> <value>1536</value> </property> <property> <name>mapreduce.map.java.opts</name> <value>-Xmx1024M</value> </property> <property> <name>mapreduce.reduce.memory.mb</name> <value>3072</value> </property> <property> <name>mapreduce.reduce.java.opts</name> <value>-Xmx2560M</value> </property>
关掉集群,分发配置,启动集群
再次运行,🆗
总结:没啥好总结的
简单验证一下:执行成功