Hadoop综合练习第六节–Pig部署及统计访问日志例子详解大数据
l 主机操作系统:Windows 64 bit,双核4线程,主频2.2G,6G内存
l 虚拟软件:VMware® Workstation 9.0.0 build-812388
l 虚拟机操作系统:CentOS 64位,单核,1G内存
l JDK:1.7.0_55 64 bit
l Hadoop:1.1.2
1.2 机器网络环境集群包含三个节点:1个namenode、2个datanode,其中节点之间可以相互ping通。节点IP地址和主机名分布如下:
所有节点均是CentOS6.5 64bit系统,防火墙均禁用,所有节点上均创建了一个hadoop用户,用户主目录是/usr/hadoop。所有节点上均创建了一个目录/usr/local/hadoop,并且拥有者是hadoop用户。
2 书面作业0:搭建Pig环境 2.1 Pig介绍Pig是yahoo捐献给apache的一个项目,使用SQL-like语言,是在MapReduce上构建的一种高级查询语言,把一些运算编译进MapReduce模型的Map和Reduce中。Pig 有两种运行模式: Local 模式和 MapReduce 模式
l 本地模式:Pig运行于本地模式,只涉及到单独的一台计算机
l MapReduce模式:Pig运行于MapReduce模式,需要能访问一个Hadoop集群,并且需要装上HDFS
Pig的调用方式:
l Grunt shell方式:通过交互的方式,输入命令执行任务;
l Pig script方式:通过script脚本的方式来运行任务;
l 嵌入式方式:嵌入java源代码中,通过java调用来运行任务。
2.2 部署过程 2.2.1下载Pig在Apache下载最新的Pig软件包,点击下载会推荐最快的镜像站点,以下为下载地址:http://mirror.bit.edu.cn/apache/pig/
2.2.2上传Pig把下载的pig-0.13.0.tar.gz安装包,使用SSH Secure File Transfer工具(第1、2作业周2.1.3.1介绍)上传到/home/hadoop/Downloads 目录下
2.2.3解压缩在Downloads目中将pig解压缩
cd /home/hadoop/Downloads/
tar -xzvf pig-0.13.0.tar.gz
把pig-0.13.0目录移到/usr/local目录下
sudo mv pig-0.13.0 /usr/local
cd /usr/local
ls /usr/local
2.2.4设置环境变量使用如下命令编辑/etc/profile文件:
sudo vi /etc/profile
设置pig的class路径和在path加入pig的路径,其中PIG_CLASSPATH参数是设置pig在MapReduce工作模式:
export PIG_HOME=/usr/local/pig-0.13.0
export PIG_CLASSPATH=/usr/local/hadoop-1.1.2/conf
export PATH=$PATH:/usr/local/hadoop-1.1.2/bin:$PIG_HOME/bin
编译配置文件/etc/profile,并确认生效
source /etc/profile
2.2.5验证安装完成重新登录终端,确保hadoop集群启动,键入pig命令,应该能看到pig连接到hadoop集群的信息并且进入了grunt shell命令行模式:
3 书面作业1:计算每个IP点击次数 3.1 书面作业1内容在课程资源下载本周的作业素材access_log.rar,是一段dataguru的网站访问日志 请大家使用pig处理这个日志,计算出每个ip的点击次数,例如 123.24.56.57 13 24.53.23.123 7 34.56.78.120 20 . 等等
3.2 程序代码// 加载HDFS中访问日志,使用空格进行分割,只加载ip列
records = LOAD hdfs://hadoop1:9000/usr/hadoop/in/access_log.txt USING PigStorage( ) AS (ip:chararray);
// 按照ip进行分组,统计每个ip点击数
records_b = GROUP records BY ip;
records_c = FOREACH records_b GENERATE group,COUNT(records) AS click;
// 按照点击数排序,保留点击数前10个的ip数据
records_d = ORDER records_c by click DESC;
top10 = LIMIT records_d 10;
// 把生成的数据保存到HDFS的week8目录中
STORE top10 INTO hdfs://hadoop1:9000/usr/hadoop/week8
3.3 准备数据使用SSH工具(参见第1、2周2.1.3.1Linux文件传输工具所描述)把提供的测试数据access_log.txt上传到本地目录/usr/local/hadoop-1.1.2/input中,然后调用hadoop上传本地文件命令把该文件传到/usr/hadoop/in目录中,如下图所示:
access_log.txt日志内容如下:
3.4 实现过程 3.4.1输入代码进入pig shell 命令行模式:
输入代码:
3.4.2运行过程在执行过程中在JobTracker页面观察运行情况,链接地址为:http://hadoop1:50030/jobtracker.jsp
点击查看具体作业信息
可以观察到本次任务分为4个作业,每个作业一次在上一次作业的结果上进行计算
3.4.3运行结果通过以下命令查看最后的结果:
hadoop fs -ls /usr/hadoop/week8
hadoop fs -cat /usr/hadoop/week8/part-r-00000
8559.html
分布式文件系统,分布式数据库区块链并行处理(MPP)数据库,数据挖掘开源大数据平台数据中台数据分析数据开发数据治理数据湖数据采集相关文章
- Springboot&websocket实现IP数据实时统计
- 试述Hadoop的HDFS及其组成_hadoop命令和hdfs命令区别
- 孟德尔随机化之F统计量
- 白话空间统计番外:再谈莫兰指数(Moran’s I)
- ggstatsplot | 一个满足你日常统计需求的高颜值R包(一)
- Sentinel Go- 毫秒级统计数据结构揭秘
- 白话空间统计二十四:地理加权回归(二)
- 统计Oracle 数据按季度统计分析(oracle按季度)
- Redis与Hadoop:让数据变得更加简单(redis与hadoop)
- Hadoop入门扫盲:hadoop发行版介绍与选择
- Linux行数统计:快速统计源码和日志中的行数(linux行数统计)
- Redis:轻松实现高效数据统计(redis数据统计)
- Linux系统上安装Hadoop环境讲解(linux安装hadoop)
- 统计信息Oracle 索引统计信息收集技术指南(oracle收集索引)
- 利用Hadoop搭建MySQL数据库存储系统(hadoop和mysql)
- 利用Oracle构建可靠的统计报表(oracle统计报表)
- Hadoop与MySQL联合打造大数据分析平台(hadoop与mysql)
- 如何使用Oracle统计重复数据?(oracle统计重复)
- Oracle内存使用情况分析与统计(oracle内存使用统计)
- 利用文件属性结合Session实现在线人数统计
- 使用cookie实现统计访问者登陆次数