(最详细)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为分布式系统中各个部分共享对象提供了 ...
随机推荐
- 吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据(效率优化以及代码容错处理)
这篇博文主要是对我的这篇https://www.cnblogs.com/tszr/p/12198054.html爬虫效率的优化,目的是为了提高爬虫效率. 可以根据出发地同时调用多个CPU,每个CPU运 ...
- Python环境搭建-3 Python下载
python环境搭建 Python是一个跨平台.可移植的编程语言,因此可在windows.Linux和Mac OS X系统中安装使用. 安装完成后,你会得到Python解释器环境,可以通过终端输入py ...
- idea右键新建选项没有类和包的创建方式
Intelidea创建好项目之后,右键新建Java class的时候发现没有改选项,只有以下几个选项 把sec目录设为源码目录,首先打开Project Structure
- RHEL6配置CentOS yum源
RHEL6配置CentOS yum源
- ubuntu 中怎么安装 jdk 7
Jdk1.7 安装包的下载地址是: http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u4-downloads-1591156. ...
- 解决Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0问题
当我们项目中用到的数据库为sql server时 我们一般在maven项目的pom.xml只添加依赖: <dependency> <groupId>com.micros ...
- 【剑指Offer面试编程题】题目1503:二叉搜索树与双向链表--九度OJ
题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行为一个 ...
- day12-Python运维开发基础(推导式、生成器与生成器函数)
1. 推导式(列表推导式.集合推导式.字典推导式) # ### 推导式 : 通过一行循环判断,遍历出一系列数据的方式是推导式 """ 推导式一共三种: 列表推导式,集合推 ...
- 【Linux】centos7下解决yum -y install mysql-server 没有可用包
第一步:安装从网上下载文件的wget命令 [root@localhost ~]# yum -y install wget 第二步:下载mysql的repo源 [root@localhost ~]# w ...
- prometheus 统计MySQL 自增主键的剩余可用百分比
mysqld_exporter自带的这个功能,下面是我使用的启动参数: nohup ./mysqld_exporter --config.my-cnf="./my.cnf" --w ...