第一步: 首先把虚拟机和你的主机(本地电脑)弄通这样本地机器才能访问虚拟机里面的内容

我用的虚拟机为 VMware Workstation linux 为 centeros

补充一点虚拟机设置


 虚拟机菜单上点击编辑->虚拟网络编辑器->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目录  清理了一下文件  这会删除所有表

  1. ./sbin/stop-dfs.sh # 关闭
  2. rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
  3. ./bin/hdfs namenode -format # 重新格式化 NameNode
  4. ./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)的更多相关文章

  1. MySQL_(Java)【连接池】简单在JDBCUtils.java中创建连接池

    MySQL_(Java)[事物操作]使用JDBC模拟银行转账向数据库发起修改请求 传送门 MySQL_(Java)[连接池]使用DBCP简单模拟银行转账事物 传送门 Java应用程序访问数据库的过程: ...

  2. Java-Runoob-高级教程:Java MySQL 连接

    ylbtech-Java-Runoob-高级教程:Java MySQL 连接 1.返回顶部 1. Java MySQL 连接 本章节我们为大家介绍 Java 如何使用 使用 JDBC 连接 MySQL ...

  3. java 短连接+MD5加密短链接

    java 短连接+MD5加密短链接 import java.security.MessageDigest; public class ShotUrlUtil { public static void ...

  4. MySQL_(Java)【连接池】使用DBCP简单模拟银行转账事物

    dbcp下载 传送门 Commons Pool下载 传送门 Commons log下载 传送门 MySQL_(Java)[事物操作]使用JDBC模拟银行转账向数据库发起修改请求 传送门 MySQL_( ...

  5. 本地eclipse java api连接远程虚拟机HBase

    1.本地与远程连通 无论是域名或者ip都可以,另外需保证HBase在虚拟机集群上正常运行. 2.本地要有一个跟远程相同的hadoop环境 当然不相同,只要兼容也可以,现采用hadoop-2.5.0-c ...

  6. JAVA上连接ubuntu14.04上的Hbase

    对于新手来说,连接虚拟机上的Hbase有点繁琐,而且网上的配置不太适合初学者,今天我就整理了一下,希望对你们有帮助,第一次发博客. 1.首先去官网下载Hbase的压缩包.我这里用的是1.2.1 htt ...

  7. 虚拟机centos 安装 redis 环境 linux 使用 java 远程连接 redis

    redis官网地址:http://www.redis.io/ 最新版本:2.8.3 在Linux下安装Redis非常简单,具体步骤如下(官网有说明): 1.下载源码,解压缩后编译源码. $ wget ...

  8. 【深入Java虚拟机】之二:Java垃圾回收机制

    [深入Java虚拟机]之:Java垃圾收集机制 对象引用 Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的对象实例.谈到Java堆中的垃圾回收,自然要谈到引用.在JDK ...

  9. 深入Java虚拟机读书笔记第一章Java体系结构介绍

    第1章 Java体系结构介绍 Java技术核心:Java虚拟机 Java:安全(先天防bug的设计.内存).健壮.平台无关.网络无关(底层结构上,对象序列化和RMI为分布式系统中各个部分共享对象提供了 ...

随机推荐

  1. Java 并发锁

    Java 中的锁 阻塞锁.可重入锁.读写锁.互斥锁.悲观锁.乐观锁.公平锁.偏向锁.对象锁.线程锁.锁粗化.锁消除.轻量级锁.重量级锁.信号量.独享锁.共享锁.分段锁 一.常见的锁 synchroni ...

  2. spring boot 中 2.X 的跨域请求

    解决跨域: @Configuration @EnableAutoConfiguration public class ZooConfiguration { @Bean public FilterReg ...

  3. Python数据类型-6 字典

    字典 Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度.但它是无序的,包含的元素个数不限, ...

  4. Go的WaitGroup

    goroutine使用方便,但是如果不加以处理一般会deadlock,因为goroutine配合Chanel的话只能是一进一出,否则就会卡在那里.下面一个示例就是利用这个WaitGroup处理这种死锁 ...

  5. 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler

    来自:http://blog.csdn.net/jason0539/article/details/18055259 遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新, ...

  6. 100个iOS开发/设计面试题汇总,你将如何作答?

    原文: http://www.csdn.net/article/2015-01-19/2823604-ios-interview-questions 常见问题 你昨天/这周学习了什么? 你为什么热衷于 ...

  7. 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 ...

  8. Gamma 矫正

    参考如下链接: https://www.zhihu.com/question/27467127

  9. Python 操作rabbitmq中的confirm模式的错误

    今天使用rabbitmq的confirm模式,书上介绍的是pika版本是0.9.6,但是我用的是别的版本,发现这样的错误 Traceback (most recent call last):  Fil ...

  10. Input输入框日期控件

    案例 https://pan.baidu.com/s/1i6BNLcT   密码:p77m