集群搭建

Win10 64位系统;Vmware 12;   Ubuntu12

jdk-7u80-linux-x64.rpm;Hadoop-2.7.1.tar.gz;scala-2.11.6.tgz;spark-2.0.1-bin-hadoop2.7.tgz

192.168.86.128 master host;文件最后一行

192.168.86.132 slave1

192.168.86.133 slave1; SSH 免密登陆

访问192.168.8.137:8085(8085端口是设置在spark-env.sh中的SPARK_MASTER_WEBUI_PORT,可自行设置),结果如下:则说明成功了. Flume,kafka,hive组建进一步安装

 

def main(args: Array[String]) {

 

    Logger.getLogger("org.apache.spark").setLevel(Level.WARN)

    System.setProperty("spark.serializer", "org.apache.spark.serializer.KryoSerializer")

    val sparkConf = new SparkConf().setAppName("LauncherStreaming")

 

    //每60秒一个批次

    val ssc = new StreamingContext(sparkConf, Seconds(60))

 

    // 从Kafka中读取数据

    val kafkaStream = KafkaUtils.createStream(

      ssc,

      "hxf:2181,cfg:2181,jqs:2181,jxf:2181,sxtb:2181", // Kafka集群使用的zookeeper

      "launcher-streaming", // 该消费者使用的group.id

      Map[String, Int]("launcher_click" -> 0, "launcher_click" -> 1), // 日志在Kafka中的topic及其分区

      StorageLevel.MEMORY_AND_DISK_SER).map(_._2) // 获取日志内容

 

    kafkaStream.foreachRDD((rdd: RDD[String], time: Time) => {

      val result = rdd.map(log => parseLog(log)) // 分析处理原始日志

        .filter(t => StringUtils.isNotBlank(t._1) && StringUtils.isNotBlank(t._2))

      // 存入hdfs

      result.saveAsHadoopFile(HDFS_DIR, classOf[String], classOf[String], classOf[LauncherMultipleTextOutputFormat[String, String]])

    })

 

    ssc.start()

    // 等待实时流

    ssc.awaitTermination()

  }

 

1. 使用三台虚拟机搭建Hadoop集群

2. 一定要在每台机器上配置ssh免密码登录

3. 由于需要给/etc/hosts文件配置3台虚拟机的IP,所以尽量给三台虚拟机设置静态IP。不然即使之前整个集群搭建成功了,但是当某一台的IP变化后,这个集群又不可以使用了。

4. 对文件/etc/profile修改后,一定要使用source /etc/profile去执行一遍,不然配置的环境变量不会生效。

5. 重启虚拟机后,需要重新启动Hadoop,启动成功后,除了hadoop/bin目录之外,在其他地方使用hadoop命令报错“命令不存在”,很有可能是需要使用source /etc/profile来使该文件中关于hadoop安装位置的环境变量生效。

posted @ 2018-08-24 16:16  vince66  阅读(309)  评论(0编辑  收藏  举报