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
这里主要采用的scala语言,因此选择SBT,当然Maven创建也是可以的。 同时这里由于工程文件名问题,这里的test和后面shiyan为同一个project name

引入scala的SDK,然后点击java引入spark-assembly的包,这里建议使用hadoop、spark单独的spark-assembly,cloudera自带的spark-assembly包会在编译时报错
在这里引入完主要的包之后就可以开始写scala代码,首先创建scala的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管理界面查看相关进程。
本文介绍了如何在Cloudera集群上启动和管理服务,包括在各节点启动Cloudera服务,以及通过Cloudera Manager监控集群状态。接着展示了在Spark集群上运行WordCount示例,通过IntelliJ IDEA创建Scala项目,导入必要的库,编写并打包WordCount代码。最后,提到了使用spark-submit提交jar包到集群运行,以及检查结果的方法。

382

被折叠的 条评论
为什么被折叠?



