大数据环境实践
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
- 基本过程,将有规律的文本文件转换为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 流式数据处理
具体见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