文档章节

干净虚拟机(centos 6.4)上从头到尾安装并调试Mdrill(三)

292672967
 292672967
发布于 2014/03/18 09:33
字数 740
阅读 1K
收藏 2

新建表

9.1建表SQL

CREATE TABLE st(
  thedate string,
  c1 string,

c2 tdouble,

cnt tlong

)

注意:

  1. 列名只能小写(系统限制)。

  2. 有一列必须是thedate

  3. 2执行建表命令

建表SQL存储成名称为create.sql的文本文件到“/home/mdrill/alimama/adhoc-core/bin/”目录下,执行

cd /home/mdrill/alimama/adhoc-core/bin/

chmod 777 ./bluewhale

./bluewhale mdrill create ./create.sql

使用hadoop fs –ls hdfs 上查看新建的表文件夹

                                             

9.3设置表文件夹访问权限

将数据表再hdfs之上的文件夹权限设置为任何用户均可访问,方便测试:

hadoop fs -chmod -R 777  /mdrill/tablelist

 

10、导入数据

数据导入方式分为在线倒入和离线,数据格式 分为seqtxt方式。我们进行离线的txt 倒入,数据列之间使用“\001”分割,就是ascii码的第一个字符。导入的数据按天进行分区,只进行2天的数据模拟倒入,导入程序如下,替换191.168.3.149为实际IP

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FSDataOutputStream;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

 

public class ImportData {

   static Configuration conf = null;

   static FileSystem fs = null;

   public static void main(String[] args) throws IOException {

      conf = new Configuration();

      //虚拟机IP

      String host = "191.168.3.149";

      conf.set("fs.default.name", "hdfs://" + host + ":9000");

      // conf.set("mapred.job.tracker", "localhost:9001");

      fs = FileSystem.get(conf);

      // 数据表在 hdfs之上的路径

      String pathStirng = "/mdrill/tablelist/st";

      // 生成一年的文件夹(365),并将数据写入到文件夹中 文件夹名称:dt=20140201

      Calendar calendar = Calendar.getInstance();   // 创建一个日历对象

      calendar.setTime(new Date());

      calendar.set(2014, 0, 1);

      SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");

      int daycount = 0;// 只模拟导入两天的数据

      while (calendar.get(Calendar.YEAR) <= 2014   && daycount < 2) {

         System.out.println(sf.format(calendar.getTime()));

         String dateStr =   sf.format(calendar.getTime());

         String path = pathStirng + "/dt=" + dateStr;

         mkdir(path);

         writeSTData(path, dateStr);

         calendar.add(Calendar.DAY_OF_YEAR, 1);

         daycount++;

      }

      fs.close();

   }

   /**

    * @param dir

    * @throws IOException

    */

   public static void writeSTData(String dir, String   dateStr)

         throws IOException {

      FSDataOutputStream fos = null;

      OutputStreamWriter osw = null;

      BufferedWriter bw;

      fos = fs.create(new Path(dir + "/data.txt"), false);

      osw = new OutputStreamWriter(fos);

      bw = new BufferedWriter(osw);

      // 只生成10条模拟数据

      for (int i = 0; i < 10; i++) {

         StringBuilder strBuffer = new StringBuilder();

         strBuffer.append(dateStr);

         strBuffer.append((char) 1);

         // 2列数据 string

         strBuffer.append("c1_" + i);

         // 3列数据 tdouble

         strBuffer.append((char) 1);

         strBuffer.append(2.30d);

         // 4列数据 tlong

         strBuffer.append((char) 1);

         strBuffer.append(123456789L);

         strBuffer.append("\n");

         bw.write(strBuffer.toString());

      }

      bw.close();

      osw.close();

      fos.close();

   }

 

   public static void mkdir(String dir) throws IOException {

      Path p = new Path(dir);

      if (!fs.exists(p)) {

         fs.mkdirs(p);

      }

   }

}

运行以上程序需要的jar包列表,在jdk1.6下运行:

httpclient-4.1.1.jar, httpcore-4.1.jar,      guava-r09-jarjar.jar, hadoop-core-0.20.2-cdh3u3.jar,

commons-logging-1.1.1.jar,adhoc-core-0.18-beta.jar,adhoc-public-0.18-beta.jar,adhoc-jdbc-0.18-beta.jar

/home/mdrill/alimama/adhoc-core/lib /home/mdrill/hadoop-0.20.2-cdh3u3/home/mdrill/hadoop-0.20.2-cdh3u3/lib下可以找到。

生成后的目录结构如下:

11、生成索引

离线索引创建

cd /home/mdrill/alimama/adhoc-core/bin/

./bluewhale mdrill index st /mdrill/tablelist/st   3650 20140101 txt

索引的map/reduce 任务完成后在hdfs上可以看到索引文件夹index

12、启动表

./bluewhale mdrill table st

表启动后进程信息如下:

[mdrill@mdrill bin]$ jps

2913 DataNode

3196 TaskTracker

3098 JobTracker

2819 NameNode

15998 Worker

15811 Supervisor

16025 Worker

3012 SecondaryNameNode

15887 MdrillUi

15760 NimbusServer

15978 Worker

16100 Jps

9165 QuorumPeerMain

多出3worker

浏览器上的显示界面:


© 著作权归作者所有

292672967
粉丝 10
博文 12
码字总数 7692
作品 0
西安
程序员
私信 提问
干净虚拟机(centos 6.4)上从头到尾安装并调试Mdrill(一)

前言 淘宝Mdrill号称很强大,其所用硬件设备也很强大。但对于学习者来说,虚拟机是最经济的选择了,本文只说明如何在干净虚拟机(cen os 6.4)上安装并调试Mdrill。原理不做说明,具体请参考官...

292672967
2014/03/18
2.5K
1
干净虚拟机(centos 6.4)上从头到尾安装并调试Mdrill(二)

7、安装mdrill 服务安装 拷贝alimama-adhoc.tar.gz到/home/mdrill,解压并替换lib目录中的hadoop-core-0.20.2.jar为hadoop-core-0.20.2-cdh3u3.jar;拷贝hadoop服务lib目录下guava-r09-jarja......

292672967
2014/03/18
2.4K
0
干净虚拟机(centos 6.4)上从头到尾安装并调试Mdrill(四)

13、Jdbc测试 替换191.168.3.149为实际IP import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.util.List;......

292672967
2014/03/18
1K
0
使用bochs和gdb联合调试Linux内核

bochs这个软件准确来说应该叫做“模拟器”,而不是虚拟机,因为VMware等虚拟机是将Guest系统所有的指令都放到真实硬件上执行,而bochs模拟器则是直接用软件模拟硬件的执行,举个例子,在boc...

Kernel开发者
2018/06/26
0
0
hadoop基础------虚拟机(二)---虚拟机安装以及安装linux系统

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q383965374/article/details/43565419 虚拟机下载安装 上一篇 我们介绍了什么是虚拟机 hadoop基础虚拟机第一篇...

张小凡vip
2015/02/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

NASA的10条编码规则

关于NASA的10条编程规则,他们曾表示:这些规则的作用就像汽车上的安全带:最初,它们可能有点不舒服,但过了一会儿,它们的使用就变成了第二天性,而没有使用它们就变得不可想象。 Gerard J...

京东云技术新知
16分钟前
78
0
TortoiseSVN图标未显示在Windows 7下

我似乎无法在Windows 7下显示图标,我真的很想念Windows XP。 怎么修好? #1楼 他们在这里展示得很好 您使用的是64位版本的Windows 7以及32位版本的TortoiseSVN吗? 如果是这样,那么它们只会...

javail
40分钟前
65
0
开源播放器

DPlayer

glen_xu
47分钟前
190
0
gitlab Error:Gitaly - load linguist colors - permission denied

报错信息 2020-01-20_14:35:08.43180 time=“2020-01-20T14:35:08Z” level=info msg=“Starting Gitaly” version=“Gitaly, version 0.81.0, built 20180225.183225” 2020-01-20_14:35:0......

JennerLuo
53分钟前
125
0
微信小程序的自动化测试框架

微信发布了小程序的自动化测试框架Minium,提供了多种运行验证方式,其特点: 支持一套脚本,iOS & Android & 模拟器,三端运行 提供丰富的页面跳转方式,看不到也能去得到 可以获取和设置小...

测者陈磊
今天
84
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部