大数据计算

实时计算:flume+kafka+storm/sparkstreaming+redis/hbase
离线计算:flume/ftp/sqoop(获取数据)+hdfs(存储数据)+hive(数据仓库)+SparkSQL(进行数据离线计算)+sqoop+mysql/hbase/redis(计算后的数据存储)

Flume采集实现
1、在若干个服务器上部署agent节点,修改配置文件
2、启动agent节点,将采集到的数据汇聚到指定的HDFS目录中

 

使用pyspark进行spark-submit

实验环境:

1.pyspark 1.6.0

2.python 2.7

本次主要写的是用pyspark提交任务时,需要注意的地方及遇到的问题的解决。

 

Step 1. 提交python工程

在提交spark的时候,我们往往python工程是多个python文件,彼此之间有调用关系。

那如何提交python工程呢?

./bin/spark-submit –py-files XXXX.zip aaa.py即可

 

XXXX是你将你所有需要用到的python文件打包成一个zip文件

aaa是你的python文件的main函数所在的py文件。

 

Step 2. python 版本问题不一致

提交以后,我遇到了cannot different version python 2.6 in driver and python 2.7….

大概是这样的错误,是说不同节点的python版本不一致,导致的运行错误。

解决方法:

import os

os.environ['PYTHONPATH']='python2'

 

Step 3. 提交任务以后,遇到ascii编码问题

其实我们是想要utf-8默认运行python的,但是就算你在文件里指定了

#coding:utf-8

 

依然没用。

解决方法:

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

 

数据处理流程:

1.数据采集

  Flume:web日志写入到HDFS

2.数据清洗

  脏数据

  Spark,Hive,MapReduce或者其他一些分布式计算框架,清洗完之后的数据可以存放在HDFS(Hive,Spark SQL)

3.数据处理

  按照需求进行相应业务的统计和分析

  Spark,Hive,MapReduce或者其他一些分布式计算框架

4.处理结果入库

  结果可以存放到RDBMS,NoSQL,调用相应的API就可以实现。

5.数据的可视化

  通过图形化展示的方式展现出来:饼图,柱状图,地图,折线图(ECharts,HUE,Zeppelin)

开发环境版本:

Anaconda2-4.2.0(Windows 64和Linux 64位)
pycharm-community-2016.2.3
Python-2.7.9
spark-1.6.1-bin-2.5.0-cdh5.3.6
hadoop-2.5.0-cdh5.3.6
hive-0.13.1-chd5.3.6

posted @ 2019-04-09 10:59  烽火连城516  阅读(268)  评论(0编辑  收藏  举报