hadoop集成hive
前置条件
hadoop和yarn已经配置好并且成功运行。
选择版本和下载
下载hive,有两个版本可以选择,hive1和hive2,hive2版本MR功能已经废弃,将来版本可能会直接去掉,如果要用hive的MR功能,那么请选择hive1相应版本,否则的话选哪个都可以进行测试。
配置hive
- 下载完hive后,解压,然后
sudo vi /etc/profile
编辑文件,添加环境变量
1 | HIVE_HOME=hive目录的绝路路径 |
控制台输入
source /etc/profile
使环境变量生效。进入$HIVE_HOME/conf目录,拷贝
hive-default.xml.template
并重命名为hive-site.xml
,编辑:(如果没有该参数,请自行添加,存在则改之)
1 | <property> |
然后查找value是
${system
开头的,替换成具体的本地绝对路径,可以创建一个hive用户,放到hive用户目录下。拷贝
hive-env.sh.template
并重命名hive-env.sh
,添加如下内容,注意环境变量值更换为自己的路径。
1 | HADOOP_HOME=/home/hadoop/hadoop-2.7.1 |
- 将hive-site.xml拷贝一份到hadoop的配置目录。
- 下载mysql驱动放到hive目录下的lib目录中。
- 启动hive,控制台输入
hive
,如果正确则输出一段信息后进入hive交互模式。
问题
Caused by: org.datanucleus.store.rdbms.connectionpool.DatastoreDriverNotFoundException: The specified datastore driver (“com.mysql.jdbc.Driver”) was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.
解决方法:下载mysql驱动放到hive的lib目录
org.apache.hadoop.security.AccessControlException: Permission denied: user=hive, access=WRITE, inode=”/tmp/hadoop-yarn/staging/hive/.staging”:hadoop:supergroup:drwxr-xr-x
解决方法:在hdfs中创建tmp目录,并改为777权限。
Starting Job = job_1457683200911_0001, Tracking URL = http://10.10.1.110:8088/proxy/application_1457683200911_0001/
Kill Command = /home/hadoop/hadoop-2.7.1/bin/hadoop job -kill job_1457683200911_0001
Hadoop job information for Stage-1: number of mappers: 0; number of reducers: 0,打开管理页面发现信息:waiting for AM container to be allocated, launched and register with RM.解决方法:yarn没有配置正确,没有启动
nodemanager
,启动命令yarn-daemon.sh start nodemanager
,启动之后即可运行job。
参考资料
- hadoop2.2完全分布式集群+hive+mysql存储元数据配置排版有点乱,请将就看
- hive导入HDFS数据 和上面毛病类似