第五章 MyEclipse配置hadoop开发环境

 

1.首先要下载相应的hadoop版本的插件,我这里就给2个例子:

hadoop-1.2.1插件:http://download.csdn.net/download/hanyongan300/6238153

hadoop2.2.0插件:http://blog.csdn.net/twlkyao/article/details/17334693

上一章我也讲了怎么制作相应版本的插件,这些插件可以在网上搜到

2.把插件拷贝到myeclipse根目录下/dropins目录下。

3、 启动myeclipse,打开Perspective:

 

【Window】->【Open Perspective】->【Other...】->【Map/Reduce】->【OK】

 

 

 

 

3、 打开一个View:

 

【Window】->【Show View】->【Other...】->【MapReduce Tools】->【Map/Reduce Locations】->【OK】

 

 

4、 添加Hadoop location:

 

 

location name: 我填写的是:hadoop,这个可以任意填写

Map/Reduce Master 这个框里:

这两个参数就是mapred-site.xml里面mapred.job.tracker里面的ip和port  

Host:就是jobtracker 所在的集群机器,这里写192.168.0.155,我这个myeclipse是在windows下的,所以去连接liunx下的hadoop要写地址
Hort:就是jobtracker 的port,这里写的是9001


DFS Master 这个框里

这两个参数就是core-site.xml里面fs.default.name里面的ip和port
Host:就是namenode所在的集群机器,这里写192.168.0.155
Port:就是namenode的port,这里写9000

(Use M/R master host,这个复选框如果选上,就默认和Map/Reduce Master这个框里的host一样,如果不选择,就可以自己定义输入,这里jobtracker 和namenode在一个机器上,所以是一样的,就勾选上)

 user name:这个是连接hadoop的用户名,我创建的用户就是hadoop。

然后继续填写advanced parameters

在这里只需要填写  hadoop.tmp.dir这一栏,跟在core-site.xml里面配置写的一样

 

然后关闭myeclipse重启,就可以看到连接成功了。。。

 

连接DFS,是为了帮助你查看hdfs目录的,在这里,你可以直接操作hdfs.点击右键:

create new directory:创建文件

Refresh:刷新

upload files to DFS:上传文本

upload directory to DFS:上传文件夹

 

如果要是创建hadoop项目,先配置下:Window------preferences----Hadoop Map/Reduce,指定本地的hadoop

 

然后在本地配置远程hadoop的IP,打开C:\Windows\System32\drivers\etc\hosts文件,添加hadoop所安装的服务器IP和主机名

下面就可以在myeclipse创建mapreduce项目了,file----new Prokect-----

 

下面就正常写代码:下面是操作hase的代码

package hbase;import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.util.Bytes;/*** 对hbase进行增删改查* @author Administrator**/
public class HbaseTest {private static Configuration conf=null;static{conf=HBaseConfiguration.create();conf.set("hbase.zookeeper.property.clientPort", "2181");conf.set("hbase.zookeeper.quorum", "192.168.0.26");//configuration.set("hbase.master", "192.168.1.25:6000");File workaround = new File(".");System.getProperties().put("hadoop.home.dir",workaround.getAbsolutePath());new File("./bin").mkdirs();try {new File("./bin/winutils.exe").createNewFile();} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}/*** 创建一张表* @param tablename* @param cfg* @throws IOException*/public static void createTable(String tablename,String[] cfg)throws IOException{HBaseAdmin admin=new HBaseAdmin(conf);if(admin.tableExists(tablename)){System.out.println("表已经存在!");}else{HTableDescriptor tableDesc=new HTableDescriptor(tablename);for(int i=0;i<cfg.length;i++){tableDesc.addFamily(new HColumnDescriptor(cfg[i]));}admin.createTable(tableDesc);System.out.println("表创建成功!");}}/*** 删除表* @param tablename* @throws IOException*/public static void deleteTable(String tablename)throws IOException{HBaseAdmin admin=new HBaseAdmin(conf);admin.disableTable(tablename);admin.deleteTable(tablename);System.out.println("表删除成功");        }/*** 插入一行记录* @param tablename* @param rowkey* @param family* @param qualifier* @param value*/public static void writeRow(String tablename,String rowkey,String family,String qualifier,String value) {try {HTable table=new HTable(conf,tablename);Put put =new Put(Bytes.toBytes(rowkey));put.add(Bytes.toBytes(family),Bytes.toBytes(qualifier),Bytes.toBytes(value));table.put(put);System.out.println("插入数据成功");} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}/*** 查找开始与结束之间的数据* @param tableName*/public static void getAll(String tableName) {    try{    HTable table = new HTable(conf, tableName);    Scan scan = new Scan(Bytes.toBytes("a"), Bytes.toBytes("z")); 
//             scan.addColumn(Bytes.toBytes("a"), Bytes.toBytes("z"));
//             SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("a"),
//                     Bytes.toBytes("z"),
//                     CompareOp.NOT_EQUAL, Bytes.toBytes("0"));
//             filter.setFilterIfMissing(true);
//             scan.setFilter(filter);  
ResultScanner ss = table.getScanner(scan);    for(Result r:ss){    for(KeyValue kv : r.raw()){    System.out.print("rowid为:"+new String(kv.getRow()) + " ");   System.out.print("列族为:"+new String(kv.getFamily()) + " ");    System.out.print("列限定符为:"+new String(kv.getQualifier()) + " ");    System.out.print("时间戳"+kv.getTimestamp() + " ");    System.out.println("值为"+new String(kv.getValue()));    }    }    } catch (IOException e){    e.printStackTrace();    }    }   /*** 查找一行记录* @param tablename* @param rowKey* @throws IOException*/@SuppressWarnings("deprecation")public static void getOne(String tablename,String rowKey) throws IOException{HTable table = new HTable(conf, tablename);    Get get = new Get(rowKey.getBytes());    Result rs = table.get(get);    for(KeyValue kv : rs.raw()){    System.out.print(new String(kv.getRow()) + " " );    System.out.print(new String(kv.getFamily()) + ":" );    System.out.print(new String(kv.getQualifier()) + " " );    System.out.print(kv.getTimestamp() + " " );    System.out.println(new String(kv.getValue()));    }    }/**  * 显示所有数据  */    public static void getAllRecord (String tableName) {    try{    HTable table = new HTable(conf, tableName);    Scan s = new Scan();    ResultScanner ss = table.getScanner(s);    for(Result r:ss){    for(KeyValue kv : r.raw()){    System.out.print("rowid为:"+new String(kv.getRow()) + " ");   System.out.print("列族为:"+new String(kv.getFamily()) + " ");    System.out.print("列限定符为:"+new String(kv.getQualifier()) + " ");    System.out.print("时间戳"+kv.getTimestamp() + " ");    System.out.println("值为"+new String(kv.getValue()));    }    }    } catch (IOException e){    e.printStackTrace();    }    }   /**  * 删除一行记录  */    public static void delRecord (String tableName, String rowKey) throws IOException{    HTable table = new HTable(conf, tableName);    List list = new ArrayList();    Delete del = new Delete(rowKey.getBytes());    list.add(del);    table.delete(list);    System.out.println("del recored " + rowKey + " ok.");    }    public static void main(String[] agrs){String tablename="score";String[] familys={"grade","course"};try {HbaseTest.createTable(tablename, familys);//HbaseTest.delvalue(tablename, "zkb","course" , "click", "90");
//                        HbaseTest.delRecord(tablename, "zkb");
                        } catch (IOException e) {// TODO Auto-generated catch block
                        e.printStackTrace();}//            HbaseTest.writeRow(tablename, "zkb", "grade", "title", "5");
//            HbaseTest.writeRow(tablename, "zkb", "course", "click", "90");
//            HbaseTest.writeRow(tablename, "zkb", "course", "url", "97");
//            HbaseTest.writeRow(tablename, "zkb", "course", "author", "87");
//            
//            HbaseTest.writeRow(tablename, "baoniu", "grade", "reply", "4");
//            HbaseTest.writeRow(tablename, "baoniu", "course", "siteName", "89");
//            HbaseTest.writeRow(tablename, "1", "grade", "title", "5");
//            HbaseTest.writeRow(tablename, "1", "course", "click", "90");
//            HbaseTest.writeRow(tablename, "2", "course", "url", "97");
//            HbaseTest.writeRow(tablename, "2", "course", "author", "87");
//            
//            HbaseTest.writeRow(tablename, "3", "grade", "reply", "4");
//            HbaseTest.writeRow(tablename, "3", "course", "siteName", "89");
//            HbaseTest.getOne(tablename, "zkb");    
//            HbaseTest.getAllRecord(tablename);   //        HbaseTest.getAllRecord(tablename);
        HbaseTest.getAll(tablename);}}

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/junrong624/p/3499847.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这才是真正的,坐上来,自己动!| 今日趣图

全世界只有3.14 % 的人关注了青少年数学之旅你有见过加辣的奶茶吗&#xff1f;什么叫做科技改变生活其实你的猫一直都看不起你坐上来&#xff0c;自己动&#xff01;安全带使用体验当iPhone遇上数学在B站UP主的剪刀下诞生了各种神奇的CP组合其中最受欢迎的居然是伏地魔和林黛玉…

九项路考(2)

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />二、侧方位停车<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" />要点&#xff1a;1、倒车入停车位&#xff08;1&#xff09;挂倒档&#xf…

360导航源码php,51zxw 仿360网址导航源码

1.上传网站安装程序到空间&#xff0c;空间需支持PHP&#xff0c;MYSQL数据库20M 即可。2.访问网网址执行安装&#xff0c;按照提示填入mysql数据库信息。3.安装时默认设置后台管理 用户&#xff1a;admin 密码&#xff1a;123456 (以防安装出错建议默认安装&#xff0c;然后登…

SRM 440(1-250pt, 1-500pt)

DIV1 250pt 题意&#xff1a;小球从一段折线斜坡上滚下来&#xff0c;告诉所用时间&#xff0c;求重力加速度。 解法&#xff1a;二分答案模拟即可。 tag:二分&#xff0c;simulation 1 // BEGIN CUT HERE2 /*3 * Author: plum rain4 * score :5 */6 /*7 8 */9 // END CUT…

技术 Leader 怎样带跨一个团队?

网上很多分析大公司&#xff0c;小公司的文章&#xff0c;都会提到在大公司工作就是螺丝钉&#xff0c;岗位分的非常细&#xff0c;每个人把自己的专职工作做好就行&#xff1b;而在小公司需要每个人都是多面手&#xff0c;一岗多职。这种观点我同意一半&#xff0c;在小公司中…

我怀疑全国最会吹牛的人,都在这8个公众号上了

全世界只有3.14 % 的人关注了青少年数学之旅学习如逆水行舟&#xff0c;不进则退&#xff1b;只有坚持不断的学习,才能保持进步。今天给大家精心挑选的这几个优质的公众号&#xff0c;在行业深耕已久&#xff0c;相信大家一定会有所收获&#xff0c;感兴趣的可以关注一下。Pyth…

linux磁盘管理------LVM

一、需求分析1&#xff0c;当我们需要存储一个500G的不可分割文件时&#xff0c;但是我们设备上没有这么大的单个磁盘。2&#xff0c;当我们在搭建一个服务&#xff0c;由于日常运转产生大量文件&#xff0c;磁盘容量不够用了&#xff0c;怎么办&#xff1f;添加磁盘&#xff0…

在 .NET 中创建对象的几种方式的对比

在 .net 中&#xff0c;创建一个对象最简单的方法是直接使用 new (), 在实际的项目中&#xff0c;我们可能还会用到反射的方法来创建对象&#xff0c;如果你看过 Microsoft.Extensions.DependencyInjection 的源码&#xff0c;你会发现&#xff0c;为了保证在不同场景中的兼容性…

.NET设计模式(16):模版方法(Template Method)

摘要&#xff1a;Template Method模式是比较简单的设计模式之一&#xff0c;但它却是代码复用的一项基本的技术&#xff0c;在类库中尤其重要。主要内容1&#xff0e;概述2&#xff0e;Template Method解说3&#xff0e;.NET中的Template Method模式4&#xff0e;适用性及实现要…

数学界最恐怖的存在,学过数学的人,一辈子都不会忘记!

全世界只有3.14 % 的人关注了青少年数学之旅何谓数学&#xff1f;数学家Eduardo曾这样回答“数学是永恒&#xff0c;是真理&#xff0c;是一切的答案。”回首往昔数学始终伴随我们左右纵横交错的几何、繁琐复杂的运算难以求解的方程、无从下手的猜想......尽管在数学道路上有多…

把我的爱送给你――C#3.5(这题目似乎写错了)

本文发表于 中国IT实验室周报。这是我初次写给杂志社稿件&#xff0c;其中必有许多不足之处&#xff0c;还望大家见谅&#xff0c;虽然这篇文章质量可能不太高&#xff0c;但我希望能将个人的这些总结与大家分享。 从笔者接触编程至今&#xff0c;经历了数种编程语言&#xff0…

Blazor 数据绑定开发指南

翻译自 Waqas Anwar 2021年3月21日的文章 《A Developer’s Guide to Blazor Data Binding》 [1]现如今&#xff0c;大多数 Web 应用程序要么是在页面上显示某种数据&#xff0c;要么是使用表单从用户那里收集数据。这意味着每个 SPA 框架都必须支持数据绑定&#xff0c;以便开…

葛优:你们有看过我的作品吗?| 今日趣图

全世界只有3.14 % 的人关注了青少年数学之旅

阳江海滩景色一瞥

前几天同学去阳江的海边玩了2天&#xff0c;海景相当不错&#xff0c;不敢独享&#xff0c;特来贴图。 转载于:https://www.cnblogs.com/absolute8511/archive/2008/05/24/1649638.html

使用表达式自定义Serilog输出格式

Serilog是.NET Core中常用的结构化日志类库&#xff0c;透过logging API可以轻松的记录应用程式中对象属性&#xff0c;方便快速进行logging内容进行查询与分析&#xff0c;并将其记录内容通过指定方式输出。今天&#xff0c;介绍一个Nuget包Serilog.Expressions&#xff0c;它…

那些不回微信的人,都在看什么?

全世界只有3.14 % 的人关注了青少年数学之旅有人统计过&#xff0c;我们平均每天花在看内容上的时间是5-6小时&#xff0c;只要拥有一个手机&#xff0c;我们似乎无所不知。但&#xff0c;你是否还记得昨天都看了哪些内容&#xff1f;你能将它们一一都说出个大概吗&#xff1f;…

怎样让WinForms下DataGrid可以像ASP.NET下的DataGrid一样使用自定义的模板列

昨天被问到一个问题&#xff1a;怎么把WinForms里的DataGrid的绑定了数据库bit字段的列默认显示的CheckBox换成“男”和“女”&#xff0c;也就是说怎么样像ASP.NET的模板列那样可以自定义。&#xff08;此处不考虑在SQL在用Case把数据结果转换了&#xff09;由于&#xff0c;基…

智能优化算法应用:基于原子轨道搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于原子轨道搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于原子轨道搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.原子轨道搜索算法4.实验参数设定…

dotnet中的counters说明(三)

本篇分别说明一下System.Net下的Http计数器&#xff0c;NameResolution计数器&#xff0c;Security计数器和Sockets计数器。同时&#xff0c;下面指标各项()里的项目是--counters 参数[]里的项&#xff0c;用逗号分隔多项指标。System.Net.Http计数器以下计数器由 HTTP 堆栈发布…

c#开发-基础知识及有用技巧(一)

1、时间长度的计算 TimeSpan类。例如&#xff1a;TimeSpan span dateTime1 - dateTime2 方便啊2、从类&#xff08;Class)返回一个System.Type类型&#xff0c;用typeof关键字3、从一个对象实例(Object)返回一个System.Type类型&#xff0c;用GetType方法4、判断是否处于设计…