第五章 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); } }
第五章 MyEclipse配置hadoop开发环境的更多相关文章
- myeclipse配置hadoop开发环境
1.安装Hadoop开发插件 hadoop安装包contrib/目录下有个插件hadoop-0.20.2-eclipse-plugin.jar,拷贝到myeclipse根目录下/dropins目录下. ...
- 搭建基于MyEclipse的Hadoop开发环境
不多说,直接上干货! 前面我们已经搭建了一个伪分布模式的Hadoop运行环境.请移步, hadoop-2.2.0.tar.gz的伪分布集群环境搭建(单节点) 我们绝大多数都习惯在Eclipse或MyE ...
- Hadoop_配置Hadoop开发环境(Eclipse)
通常我们可以用Eclipse作为Hadoop程序的开发平台. 1) 下载Eclipse 下载地址:http://www.eclipse.org/downloads/ 根据操作系统类型,选择合适的版本 ...
- Eclipse配置Hadoop开发环境
Step 1:选择Hadoop版本对应的Eclipse插件jar包(可自行编译),我的Hadoop版本是hadoop-0.20.2,对应的插件应该是:hadoop-0.20.2-eclipse-plu ...
- mac攻略(五) -- 使用brew配置php7开发环境(mac+php+apache+mysql+redis)
前面介绍过基本的配置,后来我又从网上查找了很多资料,经过不断的摸索,下面做了一个总结,希望能对大家提供些许帮助(Mac版本是sierra) 一.mac系统会自带git,而我们要做的是自己安装git ...
- 配置Hadoop开发环境(Eclipse)
参考博文: http://blog.csdn.net/zythy/article/details/17397153 http://www.tuicool.com/articles/AjUZrq 注意事 ...
- IDEA配置Hadoop开发环境&编译运行WordCount程序
有关hadoop及java安装配置请见:https://www.cnblogs.com/lxc1910/p/11734477.html 1.新建Java project: 选择合适的jdk,如图所示: ...
- Eclipse安装Hadoop插件配置Hadoop开发环境
一.编译Hadoop插件 首先需要编译Hadoop 插件:hadoop-eclipse-plugin-2.6.0.jar,然后才可以安装使用. 第三方的编译教程:https://github.com/ ...
- 在Fedora18上配置个人的Hadoop开发环境
在Fedora18上配置个人的Hadoop开发环境 1. 背景 文章中讲述了类似于"personalcondor"的一种"personal hadoop" ...
随机推荐
- chrome浏览器Uncaught TypeError: object is not a function问题解决
今天测试多浏览器的时候,chrome浏览器出现Uncaught TypeError: object is not a function: 解决办法:(不知道为啥子)改一下js的方法名字就可以了
- 海康威视 嵌入到web页面相关问题
因项目上面需求,接触到了海康威视的设备,要把他嵌入到web页面中,所以就开始了爬坑之路 刚开始不知道如何把设备的页面嵌入到项目的web页面中,直到我遇见了他——“WEB3.0控件开发包V1.0.9_C ...
- APUE学习笔记——11 线程基础
线程标识 线程由线程号进行标识.线程号仅在线程所属的进程环境中有效.也就是说属于不同进程的两个线程可能线程号一样. 线程标识用结构体pthread_t tid表示.与线程Id相关的函数如下: 比较两个 ...
- C#调用C++编译的DLL--
引用 C#调用C++编译的DLL详解 可以单步跟踪进入dll的源码!每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用DLL的方法进行介绍.首先,您需要了解什么是托管,什么是非托管.一般可以认 ...
- PyQt: “AttributeError: 'Form' object has no attribute 'exec_'” when opening second window
# -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication , QMainWindow from PyQt5 ...
- es6模块化开发
export导出 import导入 export {a:b} Export default {a:b}
- HTML编写规范
HTML和CSS编码规范内容 一.HTML规范 二.CSS规范 三.注意事项: 四.常用的命名规则 五.CSS样式表文件命名 六.文件命名规则 一.HTML规范: 1.代码规范 页面的第一行添加标准模 ...
- js之侧边栏分享
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- 程序设计入门-C语言基础知识-翁恺-第四周:循环控制-详细笔记(四)
目录 第四周:循环控制 4-1 for循环 4-2 循环控制 各运算符优先级(图) 4-3 课后习题 4-4 讨论题 第四周:循环控制 4-1 for循环 for循环像一个计数循环:设定一个计数器,初 ...
- SQL查询执行步骤
1.总结 执行顺序 3.select ...聚合函数 from 表名 1.where ... 2.group by ... 4.having ... 5.order by ... 6.limit .. ...