大数据环境实践

Ambari环境搭建

HDP 组织,Ambari部署大数据环境的工具

  • ambari-server: 管理端(控制angent)
    yum install ambari-server
  • ambari-agent: 代理工具(部署到每台集群机器上,利用ambar自带的功能部署)
    yum install ambari-agent
  • 本地repo 源(centos源)源是安装大数据组件的所有资源rpm包,需要手动部署(参考网上资料)。 (相当于Maven仓库)
    源配置目录:/etc/yum.repos.d/
    HDP.repo HDP的主要组件
    HDP-UTILS.repo HDP工具

说明:在Ambari上添加主机,再添加service(大数据组件)。

[内网环境]
http://172.16.0.203:8083/
admin
admin

部署大数据组件

利用Ambari的web界面部署,具体部署方法参考网上资料。

配置在Ambari的Configs选项卡里(可视化的配置)

/usr/hdp 本地(当前服务器)资源,不能删除也不能多于文件夹。

登录大数据环境集群

ssh root@dev206

阿里的EMR环境

Hive表管理:
datacenter_prod 线上库
default 预发库

注意:hbase 预发与线上是同一个,所以hive表映射Hbase表的表名加了prod_前缀

执行hive映射创表sql ,hbase会自动创建表。

hive 操作

  • 进入hive shell模式( 在206服务器)
hive
  • hivesql例子:
show tables

可能会出现服务器时间不同步导致SQL执行超时问题。(解决:同步服务器时间)

  • hive 插入数据(效率较低):
insert into login_first_log2  values("1",1,1,2,"2017-06-14 11:11:11","2017-06-14 11:11:11");
  • 删除表
drop table login_first_log2

Hbase 操作

  • 进入Hbaseshell
hbase shell
  • 查看hbase表列表
list
  • 查看hbase表数据
scan "login_user_log"
  • hbase 删除表
先disable表,再drop

zookeeper操作

登录203服务器操作,206为disconf与dubbo的。

cd /usr/hdp/current/zookeeper-client/bin
./zkCli.sh

ls / 查看根目录
rmr   删除目录

Spark 操作

  • IDEA使用local模式执行Spark任务
  • IDEA使用master模式执行Spark任务
  • spark-submit 命令提交任务(jar)到集群执行。
    yarn-cluster 模式 没有
    yarn-client 模式: 控制台输出
scp -i /Users/marker/.ssh/206id_rsa /WORK/git/DataCenter/spark-job/build/libs/spark-job-1.0.jar root@dev206:/root/

ssh -i /Users/marker/.ssh/206id_rsa root@dev206 'spark-submit --master yarn --deploy-mode cluster --class sparktest.SparkPIYarn /root/spark-job-1.0.jar'

  • SparkSQL
  1. 基本过程,将有规律的文本文件转换为DataFrame对象(每行数据拆分并转数组)
  2. 创建Schema对象数据结构(可以理解为表结构)
  3. 将DataFrame对象注册为Spark中的表
  4. 通过SparkSQL查询数据(与MySQL查询语句区别不大)

文件格式如下:

1,/a,2017-08-08 11:11:11
2,/a,2017-08-08 11:11:22
2,/aa,2017-08-08 11:11:21
3,/a/a,2017-08-08 11:11:45
3,/a,2017-08-08 11:11:11
4,/a,2017-08-08 11:11:11
1,/a/b,2017-08-08 11:11:46
3,/a/b,2017-08-08 11:11:47
3,/a/b,2017-08-08 11:11:48
4,/a/b,2017-08-08 11:11:49

注意:具体的操作代码见Datacenter项目的Spark-job模块里scala源代码里。详细的API见Spark对应版本的官方文档。

  • SparkSreaming 流式数据处理

具体见Scala源代码,里面有个wordcount例子。

  • Spark 提交yarn集群日志分析
    yarn logs -applicationId <appId>
    

Datax数据迁移

  • Datax依赖包上传
    拉取最新的Datax源代码导入到IDEA。
    https://github.com/alibaba/DataX.git
  • Datax任务开发
    迁移到hbase继承 AbstractHBaseDatax 类
    迁移到mongo继承 DataxMongoTask 类
    WEB-INF/datax目录中创建对应的job配置文件与sql查询文件。
    目前支持mysql的增量迁移。

Kafka消息队列

生产者与消费者,数据中心作为消费者消费其他平台传递过来的数据。

目前消息格式为JSON字符串,消费者处理JSON字符串存储到MOngodb库或者Hbase库。

目前应用在:
启动APP记录
HTTP请求监听

kafka包中的 MessageListener 为监听器,可以监听对应Topic的消息

DataCenter项目

预发部署在api-stage1

  • 【GIT地址】
    http://172.16.0.204:88/Platform/DataCenter.git

前端angularjs。
每天凌晨4点调度平台离线增量导入数据。

  • 【数据迁移】
    https://github.com/alibaba/DataX

datax home 配置路径
/src/main/webapp/WEB-INF/datax

  • 【EMR代理】

》链接方法(开启代理)
ssh -i ~/.ssh/id_rsa -ND 8157 root@111.211.40.143

mac代理方式启动Chrome
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome –proxy-server=”socks5://localhost:8157″ –host-resolver-rules=”MAP * 0.0.0.0 , EXCLUDE localhost” –user-data-dir=/tmp

  • 【预发线上hue】
    http://111.211.40.143:8888/
    admin admin

  • 【EMR Zeppelin hue 使用】
    https://yq.aliyun.com/articles/42282

来源: 雨林博客(www.yl-blog.com)