第一步: 首先把虛擬機和你的主機(本地電腦)弄通這樣本地機器才能訪問虛擬機里面的內容
我用的虛擬機為 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","2181"); //端口號默認2128不用改 admin = new HBaseAdmin(configuration); } public List<String> getAllTables() { List<String> tables = null; if (admin != null) { try { HTableDescriptor[] allTable = admin.listTables(); if (allTable.length > 0) 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了 求人不如求自己