大数据集群所遇到的问题锦集(在更新中)

@Author  : Spinach | GHB
@Link    : http://blog.csdn.net/bocai8058

      • 1. HDFS远程访问权限不足
      • 2. 在开启hiveserver2服务后,访问Hive权限不足
      • 3.搭建Scala错误:Error:scalac: error while loading JUnit4

1. HDFS远程访问权限不足

// 错误的详细描述如下: 
    org.apache.hadoop.security.AccessControlException:
    Permission denied:user=Spinach, access=WRITE, inode="/tmp": ghb:supergroup:rwxr-xr-x

原因:本地用户Spinach(本机windows用户)想要远程操作hadoop系统,没有权限引起的。

// 解决方法:
    ① 修改/tmp目录权限,hadoop fs -chmod -R 777  /tmp   
    ② 打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)
    ③指定用户System.setProperty("HADOOP_USER_HOME", "ghb");

2. 在开启hiveserver2服务后,访问Hive权限不足


// 错误的详细描述如下:
    org.apache.hive.service.cli.HiveSQLException: 
    Failed to open new session: java.lang.RuntimeException: java.lang.RuntimeException: 
    org.apache.hadoop.security.AccessControlException: 
    Permission denied: user=anonymous, access=EXECUTE, inode="/tmp/hive":ghb:supergroup:drwx------
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:319)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraverse(FSPermissionChecker.java:259)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:205)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:190)
    ...

原因:匿名用户访问hive,没有权限引起的。

// 解决方法:
    ① 修改/tmp目录权限,hadoop fs -chmod -R 777  /tmp/hive  
    ② 指定用户和密码
    //hiveServer2连接串
    private static String HIVE_URL = "jdbc:hive2://centos6:10000/default";
    private static String USERNAME = "ghb";
    private static String PASSWORD = "ghb123";
    //驱动程序类
    private static String driverClass = "org.apache.hive.jdbc.HiveDriver";

    static
    {
        try
        {
            Class.forName(driverClass);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    /**
     * 查询最新的通话记录,使用hive进行mr查询
     */
    public CallLog findLatestCallLog(String phoneNum)
    {
        try
        {
            Connection conn = DriverManager.getConnection(HIVE_URL, USERNAME, PASSWORD);
            Statement st = conn.createStatement();
            String sql = "select * from ext_calllogs_in_hbase where id like '%" + phoneNum + "%' order by callTime desc limit 1";
            ResultSet rs = st.executeQuery(sql);
            ...
        } catch (Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }

3.搭建Scala错误:Error:scalac: error while loading JUnit4

// 错误的详细描述如下:
    Error:scalac: error while loading JUnit4, Scala signature JUnit4 has wrong version
    expected: 5.0
    found: 4.1 in JUnit4.class

原因:版本问题。

// 解决方法:
    ① 将maven自动生成的test和main下面的文件全部删除
    ② 修改版本

你可能感兴趣的:(集群配置和集群问题)