下载
cdh5.3.6 密码:bqgj
【cdh】
链接: https://pan.baidu.com/s/1ASwsAS2eRrV7WpymuQS3-w 密码: bqgj
配置
在虚拟机的 /opt 下创建 cdh5.3.6 文件夹,并将hive-0.13.1-cdh5.3.6上传到 /opt/cdh5.3.6 下,然后进入 /hive-0.13.1-cdh5.3.6/conf下,更改配置。
需要hadoop支持,查看 Linux虚拟机安装hadoop-2.5.0-cdh5.3.6
需要Mysql支持,查看 Linux虚拟机安装Mysql5.7
1.hive-env.sh.template
将template去除,注意Hadoop安装路径,Hive的conf路径
//更新前
# Set HADOOP_HOME to point to a specific hadoop install directory
# HADOOP_HOME=${bin}/../../hadoop
# Hive Configuration Directory can be controlled by:
# export HIVE_CONF_DIR=
//更新后
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/opt/cdh5.3.6/hadoop-2.5.0-cdh5.3.6
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/cdh5.3.6/hive-0.1 3.1-cdh5.3.6/conf
2.hive-log4j.properties.template
将template去除
//更新前
hive.log.dir=${java.io.tmpdir}/${user.name}
//更新后
hive.log.dir=/opt/cdh5.3.6/hive-0.13.1-cdh5.3.6/logs
3.创建hive-site.xml
注意jdbc连接,metadata是要创建的数据库名称,mysql的用户名root和密码pwd不要填错
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://wqq:3306/metadata?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
</configuration>
4.将mysql-connector-java-5.1.47-bin.jar(从上述cdh地址下载解压,并找到该文件)拷贝到Hive的lib目录下
启动
bin/hive
如果出错,请查看底部的错误一栏。
在hadoop根目录下,查看文件系统
bin/hdfs dfs -ls -R /
在hadoop根目录下,创建hive的元数据的存储命令
bin/hdfs dfs -mkdir -p /user/hive/warehouse
bin/hdfs dfs -chmod g+w /user/hive/warehouse
使用
创建数据库
create database wqqtest;
查看所有的库
show databases;
等等查看相关Hive教程。
小示例
计算之前,需要配置hadoop的 yarn-site.xml 文件
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
//进入数据库
use wqqtest;
//查看所有表
show tables;
//创建表 employe2
create table employe2(id int,name string,pay double) row format delimited fields terminated by ',’;
//加载txt文件,注意文件的每行数据用逗号隔开
load data local inpath '/opt/module/dataresource/emp.txt' overwrite into table employe2;
//计算
select count(*) from employe2;
错误
1.出现如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/JobConf
如果Hadoop是直接解压,此问题应该很少遇到。经过排查发现,在 /opt/cdh5.3.6/hadoop-2.5.0-cdh5.3.6/share/hadoop 下少了mapreduce 文件夹,补上即可。
2.出现如下:
java.sql.SQLException: null, message from server: "Host 'wqq' is not allowed to connect to this MySQL server"
进入mysql命令行,选择mysql库,执行:
root是数据库用户名
update user set host='%' where User='root';
然后退出mysql,重启mysql服务即可:
service mysqld restart
=================================================================
个人博客
Github
个人公众号:Flutter小同学
个人网站