大数据环境实践

开发语言
2017-11-14 17:51:17
分享

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

The End
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表本站观点和立场。