分享

关于hbase的jar包运行?

fullmetal 发表于 2015-8-7 09:38:02 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 35532
问题:用hbase的API写了程序,在eclipse上编译运行成功了。运行hbase程序的jar包,需要怎么配置java的classpath啊?

已有(5)人评论

跳转到指定楼层
fullmetal 发表于 2015-8-7 09:38:36
我的hadoop版本是2.4.0,hbase版本是0.98.
回复

使用道具 举报

arsenduan 发表于 2015-8-7 10:10:38
fullmetal 发表于 2015-8-7 09:38
我的hadoop版本是2.4.0,hbase版本是0.98.

执行hbase mapreduce的两种方法:
1 使用hadoop命令执行mapreduce job.
  采用此方式需要修改hadoop-env.sh,将hbase相关的jar包加入到HADOOP_CLASSPATH中去,写法如下:

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/hbase-0.94.2-cdh4.2.2-security.jar


然后hadoop jar youjar.jar youclass in out来执行job,不然会报找不到hbase相关的类。


2 使用hbase 命令执行mapreduce job.
  采用此方法需要修改hbase-env.sh,将你的job jar包加入到HBASE_CLASSPATH中去,写法如下:
  export HBASE_CLASSPATH=$HADOOP_HOME/etc/hadoop:/home/hadoop/workspace/HFIleGenerator.jar


然后通过hbase youclass in out来执行job.


我觉得第二种方式比较好一些,第一种有点相互依赖的感觉了。
注意 youclass必须写类的全路径名。

来源:hbase 如何提交任务到集群
http://www.aboutyun.com/thread-14601-1-1.html


回复

使用道具 举报

fullmetal 发表于 2015-8-7 10:19:23
hbase-0.94.2-cdh4.2.2-security.jar是属于cloudera版本的吧·我这里的文件夹找不到
回复

使用道具 举报

arsenduan 发表于 2015-8-7 10:28:24
fullmetal 发表于 2015-8-7 10:19
hbase-0.94.2-cdh4.2.2-security.jar是属于cloudera版本的吧·我这里的文件夹找不到

注意版本匹配,楼主是怎么找的。应该都有的,如果找不到试试第二种
回复

使用道具 举报

fullmetal 发表于 2015-8-11 15:57:25
找到一个简单shell命令:将hbase的lib全部加入hadoop_classpath:
在hadoop-env.sh文件中添加如下:
# add
for f in $HBASE_HOME/lib/*.jar; do
  if [ "$HADOOP_CLASSPATH" ]; then
    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$f
  else
    export HADOOP_CLASSPATH=$f
  fi
done
#add
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条