(最详细)JAVA如何连接虚拟机的HBASE和hadoop(JAVA如何远程访问虚拟机HBASE)
第一步: 首先把虚拟机和你的主机(本地电脑)弄通这样本地机器才能访问虚拟机里面的内容
我用的虚拟机为 VMware Workstation linux 为 centeros
补充一点虚拟机设置
1 虚拟机菜单上点击编辑->虚拟网络编辑器->VMnet8 如图:
按照我的图来!
那个子网IP 可以直接按我这个来 跟你主机没什么冲突的! 但是你设置你linux和你主机的虚拟网卡的ip都要在192.168.1.(1-254 )这个区间里 你也可以改成别的都没关系
2 点击那个NAT 设置 我把网关IP配置成了 192.168.1.2 这个改成别的也没关系关键后面配置要对应也和 你前面的子网ip要对应
然后点击确定就行
3 配置windows 的虚拟网卡ip
如图:
点开控制面板那个网络链接更改适配器设置 可以看见虚拟机为你创建了两个虚拟网卡 那个VMnet1是无线链接(wifi)的时候用到,第二个VMnet8 是链接网线的时候用到
我们先设置VMnet8的ip和网关 IP 我设置成 192.168.1.1 子网掩码 255.255.255.0 默认网关是你原来虚拟机那里配置的我的是 192.168.1.2 (说一下这个主机Ip可以随便设置的除了0和2 剩下1-254都可以,0和255 我给忘了一般不用这两个,2 设置成网关了就别用了)
[呵呵我网络工程学的不好]
再设置vm1的IP 和网关 和vm8的一模一样 除了我把Ip设置成了 192.168.1.100
【这是自己玩出来的错了留言一下 学生一般会搬着笔记本链接wifi 宿舍用网线 这两个都设置了吧!!!要不不通】
---------------------------------------------------------------------------------------华丽的分割线-------------------------------------------------------------------------------------------------------------------
下面是配置linux的ip 地址 centerOS为例子
命令下敲
cd /etc/sysconfig/network-scripts/
然后 sudo vim ifcfg-ens32(不同版本这个文件名字可能不一样)
进去之后你会看见
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static IPADDR=192.168.1.101 NETMASK=255.255.255.0 GATEWAY=192.168.1.2 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens32 UUID=d16fe359-9256-4414-a557-19d751b4fc72 DEVICE=ens32 ONBOOT=yes
把这段加粗的不一样的改一下 没有的加上去 Ip 192.168.1.101(最后一位哪个101 除了 1 和2 和255 还有100 不能用(因为都用了)剩下你随便 用在一个子网就行) 那个网关 是你前面设置的192.168.1.2这个要一致
敲命令 systemctl restart network 重启网卡 然后ifconfig 查看一下改了没有 具体参照 https://jingyan.baidu.com/article/a501d80c3c9b8aec630f5e8c.html 或者自行百度
然后互相 ping一下 windows 运行cmd 输入 ping 192.168.1.101(ping 你的虚拟机的IP地址) linux 下ping 你windows 主机的 IP 我的是10.92.3.80 可以 进入命令行ipconfig一下
(linux ping的ip 是你 windows的主机 ip 不是刚才设置的虚拟网卡的Ip )
如果ping的通那就初步判定连上了
可以下一个 SecureCRT 链接linux 测试到底能不能连成 具体用法请百度谢谢!!(这个下不下没关系)
然后关闭linux防火墙 一定要关 !!!!!!!!!!!!!!上次卡了一天
centeros关闭方法 不行的话或者别的自行百度
1、关闭防火墙:sudo
systemctl stop firewalld.service
2、关闭开机启动:sudo
systemctl disable firewalld.service
第三步
先开启你的 hadoop hbase (hbase开开 这个是hadoop的网址)
他有一个自带的网址知道吧 http://localhost:16010/master-status 把这个网址复制到你的windows浏览器外 把localhost改成你的linux Ip 我的是 192.168.1.101 就是 http://192.168.1.101:16010/master-status
能连成说明彻底成功了下面就可以配置hadoop 和hbase 的配置了
第四步
http://dblab.xmu.edu.cn/blog/install-hadoop/ hadoop伪分布式配置
http://dblab.xmu.edu.cn/blog/install-hbase/ hbase为分布配置
按照上面的 (林子雨)(准备以后给我孩子起名字也叫子雨)博客 把hadoop 和hbase 配置成为分布的(什么是伪分布具体不太理解) 配置成功之后JPS 一 下看看所有服务到底能 不能正常开启 测试一下你的Hbase能正常的建立表或者读取不!!能的话看下一步
第五步
外网访问需要改两个文件吧
找到你hadoop安装目录下的etc 下的hadoop core-site.xml 文件 如下
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop:9000</value>
</property>
</configuration>
fs.defaultFS 下的value 改成你自己的ip hdfs://192.168.1.101:9000 我这里绑定了一个本地域名叫hadoop (这个没什么关系自己喜欢可以百度)
然后 找到你HBASE 安装目录下的 conf文件夹下的 hbase-sitr.xml
改成如下
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.1.101</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
第一个原来是localhost 改 hdfs://192.168.1.101:9000/hbase (我绑定了自定义域名hadoop)第二个是你linux静态ip地址
第五步
配置完之后
重启hadoop 和hbase 然后 JPS查看 所有服务运行了没 即使运行的话建议你建立一个表或者 list(l列出所有表)一下 如果可以的话 建议上代码了 否则如下
linux 下进入hadoop目录 清理了一下文件 这会删除所有表
- ./sbin/stop-dfs.sh # 关闭
- rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
- ./bin/hdfs namenode -format # 重新格式化 NameNode
- ./sbin/start-dfs.sh # 重启
不行reboot 重启一下机器
如果 遇到没有表建立表却提示表存在 请参考 (百度吧 链接找不到了 因为你内存中还有那个表百度谢谢)
一切基础在(前面两个)博客上建立的...................................
下面上具体代码
package com;
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.HTableDescriptor;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.HBaseAdmin; public class ceshi2 {
private HBaseAdmin admin = null;
// 定义配置对象HBaseConfiguration
private static Configuration configuration;
public ceshi2() throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
configuration = HBaseConfiguration.create();
configuration.set("hbase.rootdir","hdfs://hadoop:9000/hbase");//可以吧hadoop改成你的域名或Ip
configuration.set("hbase.zookeeper.quorum","192.168.1.101"); //hbase 服务地址
configuration.set("hbase.zookeeper.property.clientPort",""); //端口号默认2128不用改
admin = new HBaseAdmin(configuration);
}
public List<String> getAllTables() {
List<String> tables = null;
if (admin != null) {
try {
HTableDescriptor[] allTable = admin.listTables();
if (allTable.length > )
tables = new ArrayList<String>();
for (HTableDescriptor hTableDescriptor : allTable) {
tables.add(hTableDescriptor.getNameAsString());
System.out.println(hTableDescriptor.getNameAsString());
}
}catch (IOException e) {
e.printStackTrace();
}
}
return tables;
}
public static void main(String[] args) throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
// TODO 自动生成的方法存根
new ceshi2().getAllTables();
} }
这段代码是列出所有表 !!没标的话建一个
如果都配置好了。外网也能访问!但是仍然无法连上,执行第五步,清理一下hadoop 清理后出现表不存在提示存在问题,参考 https://blog.csdn.net/m0_37786447/article/details/79577504
如果eclipse 可视化操作hdfs 没有权限
打开 hdfs-site.xml 文件 添加以下代码
<property>
<name>dfs.permission</name>
<value>false<value>
</property>
总结 MLGB 气死BB了 求人不如求自己
(最详细)JAVA如何连接虚拟机的HBASE和hadoop(JAVA如何远程访问虚拟机HBASE)的更多相关文章
- MySQL_(Java)【连接池】简单在JDBCUtils.java中创建连接池
MySQL_(Java)[事物操作]使用JDBC模拟银行转账向数据库发起修改请求 传送门 MySQL_(Java)[连接池]使用DBCP简单模拟银行转账事物 传送门 Java应用程序访问数据库的过程: ...
- Java-Runoob-高级教程:Java MySQL 连接
ylbtech-Java-Runoob-高级教程:Java MySQL 连接 1.返回顶部 1. Java MySQL 连接 本章节我们为大家介绍 Java 如何使用 使用 JDBC 连接 MySQL ...
- java 短连接+MD5加密短链接
java 短连接+MD5加密短链接 import java.security.MessageDigest; public class ShotUrlUtil { public static void ...
- MySQL_(Java)【连接池】使用DBCP简单模拟银行转账事物
dbcp下载 传送门 Commons Pool下载 传送门 Commons log下载 传送门 MySQL_(Java)[事物操作]使用JDBC模拟银行转账向数据库发起修改请求 传送门 MySQL_( ...
- 本地eclipse java api连接远程虚拟机HBase
1.本地与远程连通 无论是域名或者ip都可以,另外需保证HBase在虚拟机集群上正常运行. 2.本地要有一个跟远程相同的hadoop环境 当然不相同,只要兼容也可以,现采用hadoop-2.5.0-c ...
- JAVA上连接ubuntu14.04上的Hbase
对于新手来说,连接虚拟机上的Hbase有点繁琐,而且网上的配置不太适合初学者,今天我就整理了一下,希望对你们有帮助,第一次发博客. 1.首先去官网下载Hbase的压缩包.我这里用的是1.2.1 htt ...
- 虚拟机centos 安装 redis 环境 linux 使用 java 远程连接 redis
redis官网地址:http://www.redis.io/ 最新版本:2.8.3 在Linux下安装Redis非常简单,具体步骤如下(官网有说明): 1.下载源码,解压缩后编译源码. $ wget ...
- 【深入Java虚拟机】之二:Java垃圾回收机制
[深入Java虚拟机]之:Java垃圾收集机制 对象引用 Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的对象实例.谈到Java堆中的垃圾回收,自然要谈到引用.在JDK ...
- 深入Java虚拟机读书笔记第一章Java体系结构介绍
第1章 Java体系结构介绍 Java技术核心:Java虚拟机 Java:安全(先天防bug的设计.内存).健壮.平台无关.网络无关(底层结构上,对象序列化和RMI为分布式系统中各个部分共享对象提供了 ...
随机推荐
- Java 并发锁
Java 中的锁 阻塞锁.可重入锁.读写锁.互斥锁.悲观锁.乐观锁.公平锁.偏向锁.对象锁.线程锁.锁粗化.锁消除.轻量级锁.重量级锁.信号量.独享锁.共享锁.分段锁 一.常见的锁 synchroni ...
- spring boot 中 2.X 的跨域请求
解决跨域: @Configuration @EnableAutoConfiguration public class ZooConfiguration { @Bean public FilterReg ...
- Python数据类型-6 字典
字典 Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度.但它是无序的,包含的元素个数不限, ...
- Go的WaitGroup
goroutine使用方便,但是如果不加以处理一般会deadlock,因为goroutine配合Chanel的话只能是一进一出,否则就会卡在那里.下面一个示例就是利用这个WaitGroup处理这种死锁 ...
- 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler
来自:http://blog.csdn.net/jason0539/article/details/18055259 遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新, ...
- 100个iOS开发/设计面试题汇总,你将如何作答?
原文: http://www.csdn.net/article/2015-01-19/2823604-ios-interview-questions 常见问题 你昨天/这周学习了什么? 你为什么热衷于 ...
- Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
在广播中启动一个Dialog时出现如下错误信息:Caused by: android.view.WindowManager$BadTokenException: Unable to add windo ...
- Gamma 矫正
参考如下链接: https://www.zhihu.com/question/27467127
- Python 操作rabbitmq中的confirm模式的错误
今天使用rabbitmq的confirm模式,书上介绍的是pika版本是0.9.6,但是我用的是别的版本,发现这样的错误 Traceback (most recent call last): Fil ...
- Input输入框日期控件
案例 https://pan.baidu.com/s/1i6BNLcT 密码:p77m