1.购买集群
- 登录MRS管理控制台。
- 单击“购买集群”,进入“购买集群”页面。
- 在购买集群页面,选择“自定义购买”页签。
- 配置集群软件信息。
- 区域:华北-北京四。
- 集群名称:可以设置为系统默认名称,但为了区分和记忆,建议带上项目拼音缩写或者日期等。例如:“mrs_20180321”。
- 集群版本:MRS1.9.2。
- 集群类型:选择“分析集群”。
- 组件选择:勾选HBase,Hive,Hue等组件。
- 元数据:默认即可。
- 单击“下一步”。
- 计费模式:按需计费。
- 可用区:默认即可。
- 虚拟私有云:默认即可。如果没有虚拟私有云,请单击“查看虚拟私有云”进入虚拟私有云,创建一个新的虚拟私有云。
- 子网:默认即可。
- 安全组:选择“自动创建”。
- 弹性公网IP:选择已有的绑定。
- 企业项目:默认即可。
- 实例规格:Master和Core节点都选择“鲲鹏通用计算增强型4 vCPUs | 16 GB | kc1.xlarge.4”。
- 系统盘:存储类型选择“普通IO”,存储空间默认即可。
- 数据盘:存储类型选择“普通IO”,存储空间默认即可,数据盘数量默认即可。
- 实例数量:Master节点数量默认为2,Core节点数量配置为3。
- 单击“下一步”进入高级配置页签,配置参数,其他参数保持默认。
- Kerberos认证:
- Kerberos认证:关闭Kerberos认证。
- 用户名:Manager管理员用户,目前默认为admin用户。
- 密码:Manager管理员用户的密码。
- 登录方式:选择登录ECS节点的登录方式。
- 密码:设置登录ECS节点的登录密码。
- 密钥对:从下拉框中选择密钥对,如果已获取私钥文件,请勾选“我确认已获取该密钥对中的私钥文件SSHkey-xxx,否则无法登录弹性云服务器”。如果没有创建密钥对,请单击“查看密钥对”创建或导入密钥,然后再获取私钥文件。
- 通信安全授权:勾选确认授权。
- 服务协议:勾选“我已阅读并同意《华为MRS服务声明》”。
- Kerberos认证:
- 单击“立即购买”。
当集群开启Kerberos认证时,需要确认是否需要开启Kerberos认证,若确认开启请单击“继续”,若无需开启Kerberos认证请单击“返回”关闭Kerberos认证后再创建集群。
- 单击“返回集群列表”,可以查看到集群创建的状态。
集群创建需要时间,所创集群的初始状态为“启动中”,创建成功后状态更新为“运行中”,请您耐心等待。
2. 使用eclipse编程
安装Eclipse | 开发环境的基本配置。版本要求:4.2。 |
安装JDK | 版本要求:1.8版本。 |
获取并导入样例工程
- 华为云MRS服务1.9.x版本的样例工程下载地址为:GitHub - huaweicloud/huaweicloud-mrs-example at mrs-1.9。
华为云开源镜像配置方式如下所示:
- 使用前请确保您已安装JDK 1.8及以上版本和Maven 3.0及以上版本。
- 打开网址华为开源镜像站_软件开发服务_华为云并登录华为开源镜像站。
- 点击此处,下载华为开源镜像站提供的“settings.xml”文件,覆盖至“<本地Maven安装目录>/conf/settings.xml”文件即可。若无法直接下载,在华为开源镜像站搜索并单击名称为“HuaweiCloud SDK”的版块,按照页面弹出的设置方法进行操作。
导入样例工程到Eclipse开发环境。(导入前确保下图)
- 打开Eclipse,选择“File > Import”。显示“Import”窗口,选择Existing Maven Projects,点击“next”按钮。
- 在“Import Maven Projects”窗口单击“Browse”。显示“Select Root Folder”对话框。
- 选择样例工程文件夹mapreduce-examples,单击“确定”按钮。
- 在“Import Maven Projects”窗口单击“Finish”按钮。
3.编译并运行程序
生成MapReduce应用可执行包。在工程目录target目录下获取,比如“mapreduce-examples-1.0.jar”。执行mvn package打出jar包,或如下图
也可以生成jar文件
上传生成的应用包“mapreduce-examples-1.0.jar”到Linux客户端上。例如“/opt”目录
华为云的cloudshell下右键文件夹可以看见上传选项,或者使用WinSCP,下面以样例工程中统计样例程序进行分析
开发思路
统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。
主要分为四个部分。
- 读取原文件数据。
- 筛选女性网民上网时间数据信息。
- 汇总每个女性上网总时间。
- 筛选出停留总时间大于两个小时的女性网民信息。
功能介绍
统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。
主要分为三个部分。
- 从原文件中筛选女性网民上网时间数据信息,通过类CollectionMapper继承Mapper抽象类实现。
- 汇总每个女性上网时间,并输出时间大于两个小时的女性网民信息,通过类CollectionReducer继承Reducer抽象类实现。
- main方法提供建立一个MapReduce job,并提交MapReduce作业到hadoop集群。
具体代码参见com.huawei.bigdata.mapreduce.examples.FemaleInfoCollector类
log1.txt:周六网民停留日志
LiuYang,female,20 YuanJing,male,10 GuoYijun,male,5 CaiXuyu,female,50 Liyuan,male,20 FangBo,female,50 LiuYang,female,20 YuanJing,male,10 GuoYijun,male,50 CaiXuyu,female,50 FangBo,female,60
log2.txt:周日网民停留日志
LiuYang,female,20 YuanJing,male,10 CaiXuyu,female,50 FangBo,female,50 GuoYijun,male,5 CaiXuyu,female,50 Liyuan,male,20 CaiXuyu,female,50 FangBo,female,50 LiuYang,female,20 YuanJing,male,10 FangBo,female,50 GuoYijun,male,50 CaiXuyu,female,50 FangBo,female,60
在Linux环境下运行样例工程。执行如下命令
cd /opt yarn jar mapreduce-examples-1.0.jar com.huawei.bigdata.mapreduce.examples.FemaleInfoCollector <inputPath> <outputPath>
需要把输入的文件上传到HDFS的<inputPath>目录下,例在HDFS上建立一个文件夹,“/tmp/input”,将log1.txt中的内容复制保存到input_data1.txt,将log2.txt中的内容复制保存到input_data2.txt,并上传input_data1.txt,input_data2.txt到此目录
- 在Linux系统HDFS客户端使用命令hdfs dfs -mkdir /tmp/input
- 在Linux系统HDFS客户端使用命令hdfs dfs -put local_filepath /tmp/input
在执行yarn jar mapreduce-examples-1.0.jar com.huawei.bigdata.mapreduce.examples.FemaleInfoCollector <inputPath> <outputPath>命令之前,<outputPath>目录必须不存在,否则会报错。
自己的结果
1.编写程序实现对输入文件的排序
2.对给定的表格进行信息挖掘