Hive是为了解决hadoop中mapreduce编写困难,提供给熟悉sql的人使用的。只要你对SQL有一定的了解,就能通过Hive写出mapreduce的程序,而不需要去学习hadoop中的api。
Hive架构
软件下载环境准备
因为Hive需要hadoop的支持,所以需要先配置安装hadoop环境。具体参考上篇博客:Hadoop部署之一
1 2 3 4 5 6 7 8
| wget http://mirror.bit.edu.cn/apache/hive/hive-2.3.5/apache-hive-2.3.5-bin.tar.gz # 安装 cd /usr/local/ tar zxvf ./apache-hive-2.3.5-bin.tar.gz mv ./apache-hive-2.3.5-bin ./hive # 环境变量设置 export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin
|
配置软件
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
| cd /usr/local/hive/conf/ cp hive-default.xml.template hive-site.xml vi hive-site.xml
# 搜索关键字配置修改 <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>DLlt2112328</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name>mysql <value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property>
|
遇到的问题Hive初始化
在执行初始化数据库的时候会弹出错误:hive 报错:Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
解决办法:编辑hive-site.xml文件找到配置项:hive.exec.local.scratchdir,hive.querylog.location,hive.downloaded.resources.dir 把他们的value改为自己创建的/home/hive/iotmp
初始化及启动hive
1 2 3 4 5 6 7 8 9 10
| schematool -dbType mysql -initSchema hive # 执行效果1 > show databases; OK default hive_1 Time taken: 0.472 seconds, Fetched: 2 row(s) hive> # 执行效果2:在hadoop资源下边也可以找到相应的文件。
|