大数据环境实践
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的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
- 基本过程,将有规律的文本文件转换为DataFrame对象(每行数据拆分并转数组)
- 创建Schema对象数据结构(可以理解为表结构)
- 将DataFrame对象注册为Spark中的表
- 通过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 流式数据处理
- 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
- 【数据迁移】 https://github.com/alibaba/DataX
- 【EMR代理】
【预发线上hue】 http://111.211.40.143:8888/ admin admin
【EMR Zeppelin hue 使用】 https://yq.aliyun.com/articles/42282