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中添加配置并同步到集群中其他节点

<property>
      <name>yarn.nodemanager.vmem-check-enabled</name>
      <value>false</value>
</property>
<property>
     <name>yarn.nodemanager.vmem-pmem-ratio</name>
     <value>4</value>
 </property>

4、配置文件拷贝

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

2、注释core-site.xml中下

 <!--<property>-->
    <!--<name>net.topology.script.file.name</name>-->
    <!--<value>/etc/hadoop/conf.cloudera.yarn/topology.py</value>-->
 <!--</property>-->

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

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

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对应路径

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值