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

我用的虚拟机为 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目录  清理了一下文件  这会删除所有表

  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. C#操作Word的超详细总结 ---转载

    C#操作Word的超详细总结 本文中用C#来操作Word,包括: 创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设 ...

  2. 学习笔记(11)- 文本生成RNNLG

    https://github.com/shawnwun/RNNLG 数据集 给出了4个行业的语料,餐馆.酒店.电脑.电视,及其组合数据. 数据格式 任务 根据给定格式的命令,生成自然语言. 方法.模型 ...

  3. nginx sendfile 相关知识

    https://blog.csdn.net/wm_1991/article/details/51916027

  4. 【PAT甲级】1020 Tree Traversals (25 分)(树知二求一)

    题意: 输入一个正整数N(N<=30),给出一棵二叉树的后序遍历和中序遍历,输出它的层次遍历. trick: 当30个点构成一条单链时,如代码开头处的数据,大约1e9左右的结点编号大小,故采用结 ...

  5. eclipse导入项目上面有个红叉X

    问题: 今天突然想到一个以前做过的项目,想导入到新环境中,发现不管咱整都一个红叉X, 我记得以前好像碰到过类似的问题,当时三秒搞定,谁知道时间一长,三分钟没有搞定. 还是记录下: 一般导入项目出错,肯 ...

  6. Day11 - H - Euclid's Game HDU - 1525

    Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, subtra ...

  7. 列举mvc ActionResult的返回值

    8.列举ASP.NET MVC ActionResult的返回值有几种类型? 主要有View(视图).PartialView(部分视图).Content(内容).Json(Json字符串).Javas ...

  8. centos安装出现dracut-initqueue timeout错误

    dracut:/# cd /dev dracut:/# ls 这样子你就会看到所有的设备信息. 找到sda4,  不一定是sda4,有可能是其他的,实在不确定就拔了优盘看一下哪个消失了 dracut: ...

  9. PaperReading20200220

    CanChen ggchen@mail.ustc.edu.cn Recently I am occupied with something else so today I am going to sh ...

  10. 【剑指Offer面试编程题】题目1513:二进制中1的个数--九度OJ

    题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: 输入可能包含多个测试样例. 对于每个输入文件,第一行输入一个整数T,代表测试样例的数量.对于每个测试样例输入为一个 ...