Hadoop第8周练习—Pig部署及统计访问日志例子
:搭建Pig环境
:计算每个IP点击次数
内容
运行环境说明
1.1 硬软件环境
线程,主频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 机器网络环境
个namenode、2个datanode,其中节点之间可以相互ping通。节点IP地址和主机名分布如下:
|
序号 |
IP地址 |
机器名 |
类型 |
用户名 |
运行进程 |
|
10.88.147.221 |
hadoop1 |
名称节点 |
hadoop |
NN、SNN、JobTracer |
|
|
10.88.147.222 |
hadoop2 |
数据节点 |
hadoop |
DN、TaskTracer |
|
|
10.88.147.223 |
hadoop3 |
数据节点 |
hadoop |
DN、TaskTracer |
所有节点均是CentOS6.5 64bit系统,防火墙均禁用,所有节点上均创建了一个hadoop用户,用户主目录是/usr/hadoop。所有节点上均创建了一个目录/usr/local/hadoop,并且拥有者是hadoop用户。
书面作业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
、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命令行模式:

书面作业1:计算每个IP点击次数
内容
在课程资源下载本周的作业素材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;
个的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 准备数据
、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

点击查看具体作业信息

个作业,每个作业一次在上一次作业的结果上进行计算


3.4.3运行结果
通过以下命令查看最后的结果:
hadoop fs -ls /usr/hadoop/week8
hadoop fs -cat /usr/hadoop/week8/part-r-00000

Hadoop第8周练习—Pig部署及统计访问日志例子的更多相关文章
- Hadoop第10周练习—Mahout部署及进行20newsgroup数据分析例子
:搭建Mahout环境 :运行20newsgroup 内容 运行环境说明 1.1 硬软件环境 线程,主频2.2G,6G内存 l 虚拟软件:VMware® Workstation 9.0.0 buil ...
- linux系统tomcat项目部署和tomcat访问日志
一.只用ip地址访问 先把端口号改成80,然后用 <Host name="localhost" appBase="webapps" 137 ...
- Hadoop第9周练习—Hive部署测试(含MySql部署)
1.1 2 :搭建Hive环境 内容 2.2 3 运行环境说明 1.1 硬软件环境 线程,主频2.2G,6G内存 l 虚拟软件:VMware® Workstation 9.0.0 build-8 ...
- Hadoop第3周练习--Hadoop2.X编译安装和实验
作业题目 位系统下进行本地编译的安装方式 选2 (1) 能否给web监控界面加上安全机制,怎样实现?抓图过程 (2)模拟namenode崩溃,例如将name目录的内容全部删除,然后通过secondar ...
- Apache Hadoop 2.9.2 完全分布式部署
Apache Hadoop 2.9.2 完全分布式部署(HDFS) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备 1>.操作平台 [root@node101.y ...
- 3-3 Hadoop集群完全分布式配置部署
Hadoop集群完全分布式配置部署 下面的部署步骤,除非说明是在哪个服务器上操作,否则默认为在所有服务器上都要操作.为了方便,使用root用户. 1.准备工作 1.1 centOS6服务器3台 手动指 ...
- 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
1)集群规划:主机名 IP 安装的软件 运行的进程master 192.168.199.130 jdk.hadoop ...
- Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行
Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我的CDH5.15.1集群中,默 ...
- Hadoop生态圈-Kafka的完全分布式部署
Hadoop生态圈-Kafka的完全分布式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要内容就是搭建Kafka完全分布式,它是在kafka本地模式(https:/ ...
随机推荐
- WebView上实现Java与JavaScript交互
在安卓开发上,考虑到开发效率和界面更新,有时使用WebView结合web页面技术,可以快速迭代地开发移动应用.WebView加载资源的速度并不慢,但是如果资源多了,就很慢.图片.css.js.html ...
- python实现自动发送微博,当自己写博客时同步上去。
一.需求: 自己在github上搭建一个基于Jekyll的博客(http://beginman.cn/),每次写完博客后就要push上去,博客写的再好,基本上没人访问,为了增加访问量,就想利用起来微博 ...
- Ubuntu下vsftpd配置实例,超级简单,高度可用
看了网上很多关于vsftpd的安装配置教程,发现很多都是不可以用的,经过多次尝试,总结了一个最简单的设置方法. 第一步:安装vsftpd sudo apt-get install vsftpd 第二步 ...
- (转)c#.net常用字符串函数
Compare 比较字符串的内容,考虑文化背景(场所),确定某些字符是否相等 CompareOrdinal 与Compare一样,但不考虑文化背景 Format 格式化包含各种值的字符串和如何格式化每 ...
- linux部署war包方案
batch.sh内容: su - -c" 使用管理员权限 service tomcat6 stop; 停止tomca6t服务 mkdir /home/jnfwzFtp/bushubackup ...
- 2014中国软件开发者调查(二):Java、.NET、Web、云计算特点
继上周五放出第一篇中国软件开发者调查报告后,很多初学者和开发者翘首以盼第二篇.第三篇报告--希望这些调查报告能够给他们带来指导,解决他们的疑惑.确定他们的学习和使用信心.经过笔者在周末的努力,内容更加 ...
- Logstash——multiline 插件,匹配多行日志
本文内容 测试数据 字段属性 按多行解析运行时日志 把多行日志解析到字段 参考资料 在处理日志时,除了访问日志外,还要处理运行时日志,该日志大都用程序写的,比如 log4j.运行时日志跟访问日志最大的 ...
- 设置360调用样式 IE调用样式
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...
- 【转】Windows Phone 8 开发环境的搭建
1.先安装Microsoft Visual Studio 2012旗舰版,安装包自己下载. 系统必须是Win8 X64 对于软硬件的检测可以参照: Windows Phone 8开发环境搭建之一.电脑 ...
- wdlinux 一键安装
Linux系统(支持CentOS 6.X/7.X.RedHat 6.X.Ubuntu 12.04): ssh登录服务器,执行如下操作即可,需root用户身份安装 wget http://dl.wdli ...