hbase-MapReduce操作

这个过程碰到了很多问题,rowcounter这个命令执行成功花了比较多多时间

1、查看HBase的MapReduce任务的执行

hbase的bin目录下:

$ hbase mapredcp

2、环境变量的导入

永久生效:

在/etc/profile配置

export HADOOP_HOME=/opt/hadoop/
export HBASE_HOME=/opt/module/hbase

在hadoop-env.sh配置

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/*

我自己的因为还配置了hive,所以如下:

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/*:$HIVE_HOME/conf

yarn-site.xml保持下面的配置即可(起初配了加了hbase的,后面又还原成原来的。)

<property>
   <name>yarn.application.classpath</name>                      
<value>
/opt/hadoop//etc/hadoop:/opt/hadoop//share/hadoop/common/lib/*:/opt/hadoop//share/hadoop/common/*:/opt/hadoop//share/hadoop/hdfs:/opt/hadoop//share/hadoop/hdfs/lib/*:/opt/hadoop//share/hadoop/hdfs/*:/opt/hadoop//share/hadoop/mapreduce/lib/*:/opt/hadoop//share/hadoop/mapreduce/*:/opt/hadoop//share/hadoop/yarn:/opt/hadoop//share/hadoop/yarn/lib/*:/opt/hadoop//share/hadoop/yarn/*
  </value>
</property>

3、停止hbase、Hadoop,重启Hadoop,hbase

hbase的bin目录下:stop-hbase.sh  ./hbase-daemon.sh start master ./hbase-daemon.sh start regionserver

Hadoop的sbin目录下:stop-all.sh start-dfs.sh  start-yarn.sh

4、hbase的bin目录下输入命令统计student

错误命令:

/opt/hadoop/bin/yarn jar /opt/module/hbase/lib/hbase-server-2.4.11.jar rowcounter student

正确命令(要根据自己的hbase版本来):

/opt/hadoop/bin/yarn jar /opt/module/hbase/lib/hbase-mapreduce-2.4.11.jar rowcounter student

5、统计截图如下:

6、使用MapReduce将本地数据导入到hbase

6.1本地创建文件flower.tsv,并上传至虚拟机目录,在此目录下执行hadoop的put命令上传到hadoop的HDFS根目录

hdfs dfs -put flower.tsv /

查看上传文件的hdfs路径 

hadoop fs -ls -R

6.2创建表create 'flower','info'

6.3将创建的文件导入此表,在hadoop的安装目录下执行命令(命令同样要根据自己的hbase版本来)

/opt/hadoop/bin/yarn jar /opt/module/hbase/lib/hbase-mapreduce-2.4.11.jar importtsv \
-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:color flower \
hdfs://hadoop100:9000/user/root/flower.tsv

碰到的问题

问题1、Exception in thread "main" java.lang.ClassNotFoundException: rowcounter

解决:参考:Hbase MapReduce 执行示例代码报错_Round_Yuan的博客-CSDN博客

操作命令应该如步骤4

问题2、Container [pid=45706,containerID=container_1684485409862_0001_01_000002] is running 583244288B beyond the 'VIRTUAL' memory limit. Current usage: 183.3 MB of 1 GB physical memory used; 2.6 GB of 2.1 GB virtual memory used. Killing container.

参考:hadoop虚拟内存不足_hadoop虚拟机内存_tianyi6_6的博客-CSDN博客

还执行了这个Hadoop运行报错,进入安全模式_hadoop每次启动都进入不安全模式_Hannnnn Qian的博客-CSDN博客

但不知道是否有用,而且导致了安全模式的问题。 

问题3、zookeeper没有启动起来jps不显示对应的进程

可能是ip改成主机名导致的,对应的zookeeper的conf下的cfg文件配置改成主机名。再重启启动,如下图,成功

问题4、ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet

参考,解决ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet_playmakerlby的博客-CSDN博客

我的版本也不能删除/opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar,否则报错如下

 hbase-env.sh

取消这个的注释即可export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true" 。

另外看下

hdfs dfsadmin -safemode get  #查看安全模式
hdfs dfsadmin -safemode leave #关闭安全模式

因为:未正常关闭集群Hadoop进入安装模式,导致外部无法访问,关闭安全模式即可访问。

问题5、Input path does not exist: hdfs://hadoop100:9000/flower.tsv

找到正确的路径,导入命令中此部分改成hdfs://hadoop100:9000/user/root/flower.tsv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值