Cloudera管理集群,spark集群运行wordcount示例

本文介绍了如何在Cloudera集群上启动和管理服务,包括在各节点启动Cloudera服务,以及通过Cloudera Manager监控集群状态。接着展示了在Spark集群上运行WordCount示例,通过IntelliJ IDEA创建Scala项目,导入必要的库,编写并打包WordCount代码。最后,提到了使用spark-submit提交jar包到集群运行,以及检查结果的方法。

Cloudera启动、管理集群

这里由于是直接接手Cloudera,并没有进行Cloudera的一键化安装。
首先由于确定cloudera位置,进入

find / -name "cloudera*"

确定位置之后在主节点启动

/opt/cm-5.10.0/etc/init.d/cloudera-scm-server start  启动服务端
/opt/cm-5.10.0/etc/init.d/cloudera-scm-agent start  启动agent服务

在其他slave节点启动agent服务

/opt/cm-5.10.0/etc/init.d/cloudera-scm-agent start

登录网页,主机名:7180进入管理界面
这里写图片描述
用户名和密码都默认是admin
首先是进入这个界面
这里写图片描述
我们可以直观的看到hadoop上的应用,可以在这里直接对其操作
这里写图片描述
如果是对spark的历史运行信息查询,只需要通过界面化操作即可,不用在单独记忆端口号
这里写图片描述
这里写图片描述
对集群中的node也可以直观看到运行情况
这里写图片描述
此外由于cloudera是一键化安装集群,因此datanode默认至少三个,在目前使用中,只要不报红,基本都是内存和node数量问题。

spark集群运行wordcount示例

这里主要采用spark-submit提交intellij idea的jar包的方式运行,如果jar包占用空间太大也可以采用mvn package。
这里intellij idea也是安装好的,因此直接开启创建工程。

intellij idea创建工程

从最开始界面直接选择create new project
sbt
这里主要采用的scala语言,因此选择SBT,当然Maven创建也是可以的。 同时这里由于工程文件名问题,这里的test和后面shiyan为同一个project name
test
引入包
sdk
这里写图片描述

引入scala的SDK,然后点击java引入spark-assembly的包,这里建议使用hadoop、spark单独的spark-assembly,cloudera自带的spark-assembly包会在编译时报错
这里写图片描述
在这里引入完主要的包之后就可以开始写scala代码,首先创建scala的object
这里写图片描述
object
然后是wordcount的代码,(这里没有按照默认要求将wc大写)

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object wordcount {
  def main(args: Array[String]): Unit = {
      if (args.length < 1){
        System.err.println("Usage: <file>")
        System.exit(1)
      }
    val conf = new SparkConf()
    val sc = new SparkContext(conf)
    val line = sc.textFile("/input/word.txt")
    val rdd1 = line.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_)
    rdd1.saveAsTextFile("/input/result")
    sc.stop()
  }

}

读取的文件和输出文件都存放在hdfs中,这里是在hadoop配置文件中配置hdfs信息,若没有配置则

val line = sc.textFile("file:///input/word.txt")
val line = sc.textFile("hdfs:///input/word.txt")

在完成了代码之后,intellij idea中编译有时会报sc初始化错误。
下面对代码进行打jar报
引入包
这里写图片描述
这里写图片描述
这里点击shift+enter键即可以自动识别main class,这里main class在后面spark-submit会用到。
到此为止jar还没有完成,还需要build
这里写图片描述
这里写图片描述
在编译器下方的执行条完成后可以看到jar包在out文件中
这里写图片描述

到此我们找到jar包的位置,/root/IdeaProjects/shiyan/out/artifacts/shiyan.jar。
hdfs的相关指令在这里https://blog.csdn.net/tanqu9315/article/details/79065594

./spark-submit --class data --master yarn --deploy-mode cluster /root/IdeaProjects/shiyan/out/artifacts/shiyan.jar

由于代码中没有打印出来结果,具体结果需要进入hdfs查看输出结果。
我们也可以在cloudera管理界面查看相关进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值