(最详细)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基础 -3.5
我觉得上一篇不是很严谨啊 我认为这个逻辑还是正确的 原码.反码.补码: (1)在Java中,所有数据的表示方式都是以补码形式来表示 如果没有特别的说明,Java 中的数据类型默认为int,int数据类 ...
- EC20指令
SIM卡热插拔检测: AT+QSIMSTAT=1 //开启SIM卡热拔插状态报告AT+QSIMDET=1,1或AT+QSIMDET=1,0//开启 SIM卡检测功能当SIM卡拔出或者 ...
- JDK各个版本的新特性jdk1.5-jdk8(转)
原文:http://www.cnblogs.com/langtianya/p/3757993.html JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要 ...
- Markdown 语法使用
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,被广泛的应用在博客写 ...
- SRS——打开 stream caster
按照默认的配置编译启动后,发现 stream caster 不起作用,启动时报如下警告: [-- ::][][] stream caster: off 原因是编译SRS时没有打开StreamCaste ...
- kubernetes 1.17.2 kubeadm部署 证书修改为100年
[root@hs-k8s-master01 ~]# cd /data/ [root@hs-k8s-master01 data]# ls docker [root@hs-k8s-master01 dat ...
- UniGui安装(01)
UniGui安装.Delphi10和uniGUI1.90.0.1509 1]下载 2]安装 3]目录说明 1]下载 在我百度网盘里 uniGUI1-90-0-1509.zip https://pan ...
- vh搭配vw进行响应式布局
1.浏览器兼容性: IE8-不支持,IOS7.1-不支持,android4.3-不支持 2. vh代表浏览器视口高度(100vh等于当前浏览器的整个高度) 3.vw代表浏览器视口的宽度 (100vw等 ...
- python用户界面编程和文件转换为exe文件
python用户界面编程学习代码如下所示: #python用户图形界面编程实现import sys #简单用户图形界面实现from PyQt5.QtWidgets import QApplicatio ...
- 安装 primecoin 矿池
壹.安装 boost_1_49_0. 一.官网下载:https://www.boost.org/users/download/ 前期准备:boost中,用到了别的函数库,所以为了使用boost中相应的 ...