CDH 集群问题二合一

236 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

scala JDBC 方式连接 impala 代码以及pom.xml文件中的依赖

背景

用cala JDBC 方式连接 impala 代码以及pom.xml文件中的依赖,使用的CDH环境

pom.xml依赖

<dependency>
   <groupId>com.cloudera</groupId>
   <artifactId>ImpalaJDBC41</artifactId>
   <version>2.5.42</version>
</dependency>
 
<dependency>
   <groupId>org.apache.hive</groupId>
   <artifactId>hive-jdbc</artifactId>
   <version>1.2.1</version>
</dependency>
 
<dependency>
   <groupId>org.apache.hive</groupId>
   <artifactId>hive-cli</artifactId>
   <version>1.2.1</version>
</dependency>
 
 
<dependency>
   <groupId>org.apache.hive</groupId>
   <artifactId>hive-metastore</artifactId>
   <version>1.2.1</version>
</dependency>
 
<dependency>
   <groupId>org.apache.hive</groupId>
   <artifactId>hive-common</artifactId>
   <version>1.2.1</version>
</dependency>
 
<dependency>
   <groupId>org.apache.hadoop</groupId>
   <artifactId>hadoop-common</artifactId>
   <version>2.3.0</version>
</dependency>
 
<dependency>
   <groupId>org.apache.thrift</groupId>
   <artifactId>libfb303</artifactId>
   <version>0.9.0</version>
</dependency>
 
<dependency>
   <groupId>org.apache.thrift</groupId>
   <artifactId>libthrift</artifactId>
   <version>0.9.0</version>
</dependency>
 
<dependency>
   <groupId>commons-logging</groupId>
   <artifactId>commons-logging</artifactId>
   <version>1.1.3</version>
</dependency>

注:pom 文件依赖应该还需要zookeeper但是我在其他pom文件中引用了,所以就没有体现。

代码



import java.sql.{Connection, PreparedStatement, ResultSet}
 
 
object ImpalaConnectionJDBC{
 
  def getConnection()={
    var conn: Connection = null
    var ps: PreparedStatement  = null
    var rs: ResultSet  = null
 
    val JDBC_DRIVER: String = "com.cloudera.impala.jdbc41.Driver"
    val CONNECTION_URL: String = "jdbc:impala://x.x.x.x:21050"
 
    import java.sql.{DriverManager, SQLException}
    try {
      Class.forName(JDBC_DRIVER)
      conn = DriverManager.getConnection(CONNECTION_URL)
      ps = conn.prepareStatement("select * from cl")
      rs = ps.executeQuery
      while ( {
        rs.next
      }) System.out.println(rs.getString(1))
    } catch {
      case e: Exception =>
        e.printStackTrace()
    } finally try {
      if (rs != null){
 
        rs.close()
      }
      if (ps != null){
 
        ps.close()
      }
      if (conn != null){
 
        conn.close()
      }
    } catch {
      case e: SQLException =>
        e.printStackTrace()
    }
  }
 
  def main(args: Array[String]): Unit = {
 
    getConnection()
 
  }
 
}

关于CDH 因jdk更换导致hue cloudera-scm-server无法正常使用

更换正确的jdk

官网推荐在/usr/java/jdk-

启动cloudera-scm-server 没有任何报错

查看日志sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

没有任何信息。

一天都没搞定,原因就是同时更换了jdk没有告诉我

我只想用hue 也是这个问题导致报错

修改hue的sbin/nologin 改成/bin/bash

vipw /etc/passwd
修改完毕后,保存退出

su hue

 /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/etc/rc.d/init.d/hue start\
/etc/init.d/functions: line 71: /dev/null: Permission denied\
Starting hue: Password: \
su: Authentication failure\
[FAILED]\

提示权限问题修改 /dev/null权限

chmod 666 /dev/null

sudo systemctl start cloudera-scm-server

成功启动 hue也成功启动。