Day05_spark

大数据框架 一代 hadoop 二代 tiezz 三代 spark 四代 flink 麒麟

注意 虚拟机 的网关有时会dhcp获取失败 将nat的默认网关没有设置为***.***.***.1 默认结尾是1
可在pc端更改为static 地址


有时 service network 与service networkmanager会冲突 关闭一个即可 (service 服务名称 stop)(RHEL7+ 改为 systemctl 服务名称 stop)


hive的默认Derby数据库只能启动一个bin/hive 工作中应换为其他sql


Spark介绍



Mapreduce工作过程

-》input:读取数据并且对数据进行分片
-》map:数据的过滤和格式化
-》shuffle
-》map
-》放入内存区域进行合并排序
-》溢写
-》(将小文件)合并
-》分区:决定每个map处理后的数据交给哪个reduce(有多个map和reduce进程)
-》reduce
-》排序合并
-》分组
-》reduce
-》将数据进行合并
-》output(reduce个数决定output个数)
-》将数据进行输出

RDD
resilient distributed datasets
弹性分布式数据集
RDD可以看做是一个spark的对象,本身运行于内存中
-》读取数据:不同数据源 hdfs hive mysql 统一封装到了rdd中
-》处理数据
-》输出数据


SPARK
主要结构

-》core:
-》spark SQL: 可以和hive共享元数据
-》spark streaming: 实时的流处理
-》spark mlib:机器学习库(写好的算法模板)
-》graphx:图形计算


-》安装:
tar -xzvf /opt/tools/spark-1.6.1-bin-2.5.0.tar.gz -C /opt/modules

spark-submit 提交jar包
-》启动spark:
bin/spark-shell --master local[2] 开启spark 并开2个线程

-》实现wordcount
-》读取数据
val rdd = sc.textFile("/wc/input/pg100.txt")
获取行数: rdd.count()
获取内容 : rdd.take(2) 取前2行
-》处理数据
->逻辑
-》map:
-》分割
-》组合keyvalue,value为1 key为分割好的每一个单词
-》reduce
-》合并统计
-》整合后代码:
val wordcountRdd =rdd.flatMap(line =>line.split(" ")).map(word =>(word,1)).reduceByKey((a,b)=>(a+b))
-》输出数据:
wordcountRdd.foreach(println)
-》保存数据
wordcountRdd.saveAsTextFile("/outwc")
sc.textFile("")
-》设置日志信息级别
-》sc.setLogLevel("WARN") //其他参数有 INFO,ERROR



注意 secureCRT登陆linux之后应在选项-》会话选项-》仿真中 选择linux 否则键盘映射有时会出错 例如无法按退格


注意:hadoop配置项在 其etc/hadoop/中 在开启namenode datanode resourcemanager nodemanager 时会默认先读取default配置文件 之后再读取 *-site.xml文件 site文件有优先权


Spark SQL
第一种方式
-》Scala命令行使用sparkSQL
-》配置sparkSQL访问hive的元数据
-》备份元文件
mv metastore_db/ metastore_db_bck/
-》复制hive中的元数据到spark目录中
cp -r ../hive-0.13.1-bin/metastore_db/ ./
-》重启
-》测试

sqlContext.sql("select user_id,count(*) as pv from sougou.sg_log group by user_id order by pv desc limit 10").show()

注意:Scala 使用 :paste 可以直接粘贴代码 (如果代码格式中可能有换行符或者其他看不见的字符请尝试 用三引号包裹""" """)
结束时 回车 再按ctrl+D

第二种方式
启动scala时直接启用 bin/spark-sql
就不需要第一种的加入表名字的形式了

但是这种方式不能处理日志显示 所以不常用

第三种方式 beeline
首先启动spark的server :
在spark文件中 sbin/start-thriftserver.sh --master local[2]
启用spark的 bin/beeline
之后连接数据库:
!connect jdbc:hive2://bigdata-training01.hpsk.com:10000
老师默认配置的user:hpsk 密码:hpsk

之后输入sql查询语句:
select user_id,count(*) as pv from sougou.sg_log group by user_id order by pv desc limit 10;

注意:start-thriftserver.sh 在jps中 叫 SparkSubmit 关闭请用 kill -9
或者使用 sbin/stop-thriftserver.sh


hive也有这种模式
启动hiveserver2
在hive中的 bin/hiveserver2
之后连接数据库:
!connect jdbc:hive2://bigdata-training01.hpsk.com:10000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值