写一个简单的spark读取phoenix的工具类代码,导入phoenix-spark的依赖之后,maven依赖一直报红,尝试各种解决办法,包括删除仓库中.lastupdated文件后reimport,使用compile命令下载依赖,使用invalidate cache and restart重启idea等等,均未得到解决。而且在maven仓库里可以找到这个jar包,但是这个jar包的依赖包全线爆红,怀疑是maven对这个jar包的安装有问题。
pom文件如下
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-spark</artifactId>
<version>5.0.0-HBase-2.0</version>
</dependency>
代码如下
object  PhoenixUtil {
  def main(args: Array[String]): Unit = {
      val list:  List[ JSONObject] = queryList("select * from  CUSTOMER")
      println(list)
  }
  
  def   queryList(sql:String):List[JSONObject]={
         Class.forName("org.apache.phoenix.jdbc.PhoenixDriver")
        val resultList: ListBuffer[JSONObject] = new  ListBuffer[ JSONObject]()
        val conn: Connection = DriverManager.getConnection("jdbc:phoenix:hadoop1,hadoop2,hadoop3:2181")
        val stat: Statement = conn.createStatement
        println(sql)
        val rs: ResultSet = stat.executeQuery(sql )
        val md: ResultSetMetaData = rs.getMetaData
        while (  rs.next ) {
           val rowData = new JSONObject();
          for (i  <-1 to md.getColumnCount  ) {
              rowData.put(md.getColumnName(i), rs.getObject(i))
          }
          resultList+=rowData
        }
        stat.close()
        conn.close()
        resultList.toList
  }
 
}解决过程:
- 删掉org/apache/phoenix/phoenix-spark/5.0.0-HBase-2.0路径下的全部文件。
 - 去maven官网下载该jar包。
 - 执行mvn install命令。
mvn install:install-file -Dfile=“jar包路径” -DgroupId=org.apache.phoenix -DartifactId=phoenix-spark -Dversion=5.0.0-HBase-2.0 -Dpackaging=jar
执行该命令的前提是有配置maven的环境变量,并且配置的环境变量的maven和idea工程中使用的maven是同一个。 - 问题解决,不再报红
 
                









