Eclipse连接hbase并实现简单表的建立
在安装启动环境之前要做的准备.
1.JDK以及Eclipse软件
2.Eclpse的Hadoop插件一份 点击下载
3.hadoop压缩包一份,
4.确保集群正在启动状态正常,node节点工作正常,宿主机可以ping通master主机,并可以连接SSH(测试防火墙是否关闭)
5.复制hadoop集群中的hosts文件到windows的c:/windows/system32/drivers/etc/hosts(或在c:/windows/system32/drivers/etc目录下新建无后缀的hosts文件,并输入虚拟机的IP和主机名)
安装
1.首先安装JDK和Eclipse软件.能够正常启动
2.打开Hadoop插件.把压缩包中的release文件夹下的所有JAR文件.复制到eclipse\plugins文件夹下
3.解压hadoop-2.6.4(对应版本),本例为d:盘
4.设置WINDOWS环境变量 (右击我的电脑--->属性--->高级系统设置--->高级里的环境变量)
系统变量 1新建 变量:HADOOP_HOME 值:D:\hadoop-2.6.4
2在Path里添加路径D:\hadoop-2.6.4\bin\
5.打开eclipse,选中Window的Preferences
6.将下列图示的路径,设置为hadoop的根目录
7.设置插件显示和站点添加
未报错则连接成功:
在xshell master内:#hadoop fs -mkdir /user
(问题解决:1.若提示中出现name node is safe mode,则输入 hadoop dfsadmin -safemode leave,退出安全模式
2.若出现权限问题,在xshell master里:#hadoop fs -chmod 777 /)
8.
9.创建类
10.运行简单的建表代码
import java.io.IOException;
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.MasterNotRunningException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
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.HTablePool;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class OperationTable {
static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
static BASE64Decoder decoder = new sun.misc.BASE64Decoder();
private static Configuration conf = null;
static {
conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "master");// 使用eclipse时必须添加这个,否则无法定位master需要配置hosts
conf.set("hbase.zookeeper.property.clientPort", "2181");
}
public static void main(String[] args) throws IOException {
//
createTable("blog1");
}
//在Hasee里建立表
private static void createTable(String TableName) throws MasterNotRunningException,
ZooKeeperConnectionException, IOException {
HBaseAdmin admin =
new HBaseAdmin(conf);// 新建一个数据库管理员//新api
if (admin.tableExists(TableName.valueOf("LogTable"))) {
System.out.println("table is not exist!");
System.exit(0);
} else {
HTableDescriptor desc =
new HTableDescriptor(TableName.valueOf(TableName));
desc.addFamily(new HColumnDescriptor("info"));
admin.createTable(desc);
admin.close();
System.out.println("create table Success!");
}
}
}
11.导入相应的jar包
点击add External JARs... 添加hbase/lib目录下的所有jar包,应用,问题解决
在src目录下创建一个文件,文件名为
log4j.properties
内容如下
# Root Logger
log4j.rootLogger=DEBUG,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%5p [%t] - %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=log.html
log4j.appender.file.layout=org.apache.log4j.HTMLLayout
11.9. 验收结果
运行前
运行后
建表完成