1.无法访问hbase的regionservice

自己就在虚拟机里搭建了Hadoop和HBase,在进行API操作连接时,出现以下错误:

Exception in thread "main" org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions:
Fri Nov 22 17:56:26 CST 2019, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=76608: Call to localhost/127.0.0.1:16020 failed on connection exception: java.net.ConnectException: Connection refused: no further information row 'stu,,' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=localhost,16020,1574415614027, seqNum=0
。。。。。。

原因:你在本机idea上去访问虚拟机的hbase,他能访问到zookeeper中的.meta表,当在访问regionservice的时候,默认是localhost/127.0.0.1:16020

你在虚拟机查看端口:

[root@localhost hbase-2.2.0]# netstat -npl|grep 16020

说明是绑在虚拟机的localhost上的,所以你在外网访问不到

解决:

① 配置Linux的hostname

[root@master ~]# vi /etc/sysconfig/network# Created by anaconda
NETWORKING=yes
HOSTNAME=master

这里配置的hostname要Linux重启才生效,为了不重启就生效, 暂时设置hostname,我们可以执行:

hostname master

②配置Linux的hosts,映射ip的hostname的关系

[root@master ~]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.43.129 master

配置完Linux的这两项,启动HBase就发现HBase绑定到了我们想暴露的ip上了

 

③配置访问windows的hosts
路径为:C:\Windows\System32\drivers\etc\hosts

配置完这三项就可以远程访问HBase了,切记最后配置windows的hosts也是必须的


2.Spark Mavem项目在本地测试报错 : Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/SparkConf;或者找不到spark相关的类。。。

原因:pom.xml中spark配置:

   

<!--运行依赖-->
    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.3.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

<scope>provided</scope>导致在编译时忽略了这个依赖! 把这行注释掉即可!如果打包时不需要将这个依赖打进去 , 则需要开启!
解决:将<scope>provided</scope>注释掉
   

<!--运行依赖-->
    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.3.0</version>
            <!--<scope>provided</scope>-->
        </dependency>
    </dependencies>

3.Cannot Resolve symbol TableInputFormat HBase找不到TableInputFormat

原因:这是是因为Maven依赖不对,新版本2.1.X版本的HBASE又双叒叕把mapreduce.TableInputFormat单独抽取出来了!!!

解决:在pom.xml中添加

<dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-mapreduce</artifactId>
      <version>2.1.4</version>
 </dependency> 

 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐