idea下通过yarn-client远程调试spark,并从hive中获取数据

1、集群环境:

         spark2.2.2(独立安装),hadoop3.0.0(CDH搭建)

         1、修改windows用户,在本地host,C:\Windows\System32\drivers\etc下host中加入集群节点

192.168.1.180 gw-master
192.168.1.181 gw-slave1
192.168.1.182 gw-slave2

2、在集群中hosts加入本地(最后一段加入本地IP和用户名)

192.168.1.180 gw-master
192.168.1.181 gw-slave1
192.168.1.182 gw-slave2
192.168.1.145 jiangbo

2、hdsf中jars依赖

          在hdfs上创建目录,并拷贝spark下的jars所有包到目录中:

         创建目录:hdfs dfs -mkdir /sparkjars

         jars拷贝:切换到对应的spark下jars目录下,执行  hdfs dfs -put  *  /sparkjars

3、修改hadoop中yarn-site.xml文件

切换目录cd /etc/hadoop/conf

在yarn-site.xml中添加配置并同步到集群中其他节点


      yarn.nodemanager.vmem-check-enabled
      false


     yarn.nodemanager.vmem-pmem-ratio
     4
 

4、配置文件拷贝

1、在/etc/hadoop/conf目录中拷贝core-site.xml、hdfs-site.xml、yarn-site.xml和spark下conf中的hive-site.xml放到resources(总体4个配置文件)

idea下通过yarn-client远程调试spark,并从hive中获取数据_第1张图片

2、注释core-site.xml中下

 
    
    
 

3、调整hive-site.xml文件如下(gw-master为集群主节点,按照自身环境调整)


    hive.exec.scratchdir
    hdfs://gw-master:8020/user/hive/tmp
  
  
    hive.metastore.warehouse.dir
    hdfs://gw-master:8020/user/hive/warehouse
  
  
    hive.querylog.location
    hdfs://gw-master:8020/user/hive/log
  
  
    hive.metastore.uris
    thrift://gw-master:9083
  

5、代码

public class MainSpark
{
    public static void main( String[] args )
    {
        System.setProperty("hadoop.home.dir", "D:\\资源\\scala\\winutils-master\\hadoop-2.7.1");
        System.setProperty("HADOOP_USER_NAME", "hdfs");
        SparkSession     spark = SparkSession.builder().appName("jiangbo")// 指定本程序的名称
                .master("yarn-client")
                .config("spark.yarn.jars","hdfs://gw-master:8020/sparkjars/*.jar")
                //.config("spark.yarn.dist.files", "D:\\javademo\\src\\resources\\yarn-site.xml")
                // 因为启动client是需要绑定一个sparkUI的端口(默认4040),如果倍占用的话,则会重新绑定(默认端口+1),重试,所以默认状态下,同时运行的client是16个,调大即可
                .enableHiveSupport().getOrCreate();
        spark.sql("use 4gcheckthree");
        spark.sql("select * from tb_linecard_basic_data limit 20").show();
        System.out.println(spark);
    }
}

1、"hadoop.home.dir",为自身windows本地hadoop对应路径

你可能感兴趣的:(spark)