4 HBase搭建
HBase搭建(ubuntu版本)
安裝包
https://pan.baidu.com/s/1wORXDbIgYV_yNrD71HotPg
提取碼:qrww
安裝過程
建議瀏覽一遍注意事項,幫助遇到和我一樣的相關問題可以節省時間,而不是直接重裝系統。
虛擬機搭建
1、 選擇創建虛擬機。(Ubuntu或centOs自行選擇,在配置時有細微差異)
2、 選擇鏡像創建虛擬機。
3、 使用默認配置進行設置。
用戶名可以更改,在后面的設置過程中注意文件路徑的更改。
4、 部分PC可能會出現沒有權限的問題。
解決方案:重啟電腦進入BIOS頁面,將Configuration中的Intel Virtual Technology更改為Enabled狀態。
5、 開啟虛擬機,按照默認配置進行設置,建議使用英文系統。
6、 按照以上步驟再配置兩臺虛擬機,分別命名為slave1和slave2。
靜態ip配置
其實一般虛擬機在打開過程不會產生ip改變的情況,但保險起見還是配置靜態ip。
(1) ip a #查看網卡名稱,不同版本的虛擬機的網卡名稱可能不同,如果你是用我的安裝包版本,應該是ens33
(2) 網絡配置文件存放在/etc/netplan 目錄下,cd ~/etc/netplan打開文件夾,用ls 命令查看配置文件。
sudo gedit /etc/netplan/01-network-manager-all.yaml #打開類似的網絡配置文件
network:version: 2renderer: NetworkManagerethernets:ens33: #網卡名,以ubuntu操作系統的網卡名稱為準dhcp4: no #ipv4關閉dhcp,用static模式dhcp6: no #ip6關閉dhcpaddresses:- 192.168.60.101/24 #設置虛擬機的ip地址gateway4: 192.168.60.2 #vmware網關的的IP地址,網關和ip地址都需要在同一個子網中,不同虛擬機的網關設置為一致nameservers: #DNS服務器 域名解析器addresses: [114.114.114.114, 8.8.8.8, 1.1.1.1](3)sudo netplan apply #編譯網絡配置
(4)可以使用ifconfig來觀察自己的ip地址,如果提示無此命令,可以輸入sudo apt install net-tools 下載安裝
主機配置
修改主機名(所有節點)
vi /etc/hostname設置主機名,例如master、node1、node2
配置hosts文件(所有節點)
根據你設置的靜態ip來輸入相應的地址,三個虛擬機都要設置
vi /etc/hosts192.168.60.101 master
192.168.60.102 node1
192.168.60.103 node2
免密鑰登錄(所有節點)
cd #(此步驟若出錯請上網查詢ssh免密登錄—openssh) mkdir .ssh cd .ssh ssh-keygen -t rsa#生成密鑰,連續三個回車ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub node1#將密鑰發送給node1節點,第一次要輸入密碼,保存主機信息 ssh node1#驗證是否能免密登錄,一般第二次應該就不用輸入密碼如果提示ssh服務未開通,記得下載相關資源
sudo apt install openssh-server service sshd start //啟動服務兩兩節點直接都要實現相互免密登錄。注意,因為設置的是用戶密鑰,所以在root權限時可能還是需要你輸入密碼,可以
(1)su hadoop的方式轉換到用戶hadoop權限,再嘗試ssh node1。
(2)或者輸入ssh hadoop@node1的方式
上述是設置A機免密碼登錄B機,如果需要進一步配置B機免密碼登錄A機,則在B機~/.ssh目錄下ssh-keygen -t rsa生成自己的公私鑰對之后(因為之前已經將A機的公鑰文件rsa_id.pub發送到了B機的~/.ssh目錄下,此時會提示覆蓋該文件,這個可以直接覆蓋,因為A機公鑰已存在于authorized_keys文件中),在發送給A機之前,最好生成一份B機公鑰副本(cp rsa_id.pub rsa_id.pub.B),以免覆蓋了A機下面已經存在的A機自己的公鑰。A機在得到B機的公鑰后,將B機公鑰追加到authorized_keys文件中,B機即可免密碼登錄A機(第一次登錄也是需要密碼)。最后清理A機下B機的公鑰文件,并清理B機上B機自己的公鑰副本,不然會影響登錄,時間一長也容易搞混。
JDK安裝(master節點操作)
新建一個文件夾 /install,可以通過點擊home的方式,右鍵新建,也可命令行輸入,新建文件夾位于/home/hadoop
將jdk解壓,里面的jdk1.8.0_201的文件復制到新建的install的文件夾中
在root權限下配置環境變量
vi /etc/profile
添加以下內容
export JAVA_HOME=/home/hadoop/install/jdk1.8.0_201 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin使環境配置生效:
source /etc/profile
查看是否配置成功:
java -version
將文件夾scp到到其它節點服務器上:
scp -r ~/install/jdk1.8.0_201 hadoop@node1:~/install/jdk1.8.0_201
將環境變量scp到到其它節點服務器上:
sudo scp /etc/profile hadoop@node1:/etc
Hadoop安裝
也是和jdk一樣解壓hadoop安裝包到新建的package的文件夾中
修改配置文件
位置在hadoop安裝目錄的/etc/hadoop目錄下,先進入目錄
cd ~/install/hadoop-2.6.1/etc/hadoop
(1)修改core-site.xml
<configuration><property><name>fs.default.name</name><value>hdfs://master:9000</value></property><property><name>hadoop.tmp.dir</name><value>file:/home/hadoop/hadoop/tmp</value></property> </configuration>(2)修改hdfs-site.xml
<configuration><property><name>dfs.namenode.name.dir</name><value>file:/home/hadoop/install/hadoop-2.6.1/tmp/dfs/name</value> </property><property><name>dfs.datanode.data.dir</name><value>file:/home/hadoop/install/hadoop-2.6.1/tmp/dfs/data</value></property><property><name>dfs.namenode.secondary.http-address</name><value>master:9001</value></property><property><name>dfs.replication</name><value>2</value></property> </configuration>(3)修改mapred-site.xml
該文件不存在,需要復制才可修改
cp mapred-site.xml.template mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>master:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>master:19888</value></property> </configuration>(4)修改yarn-site.xml
<configuration><property><name>yarn.resourcemanager.hostname</name><value>master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property> </configuration>(5)修改hadoop-env.sh
export JAVA_HOME=/home/hadoop/install/jdk1.8.0_201(6)修改slaves
node1 node2(7)修改masters(沒有的文件要自己創建,vi masters 會自己創建文件)
master配置環境變量
export HADOOP_HOME=/home/hadoop/install/hadoop-2.6.1 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin配置其他節點
將文件夾scp到到其它節點服務器上
scp -r ~/install/hadoop-2.6.1 hadoop@node1:~/install/hadoop-2.6.1
將環境變量scp到到其它節點服務器上
sudo scp /etc/profile hadoop@node1:/etc
啟動hadoop
格式化namenode
hadoop namenode -format
啟動hadoop
start-all.sh
查看進程啟動情況
jps
可看到master節點:NameNode、SecondNameNode、ResourceManager
node1、2節點:DataNode、NodeManager
ZooKeeper安裝
也是和jdk一樣解壓hadoop安裝包到新建的package的文件夾中
創建用于存儲數據和日志的文件夾
cd /home/hadoop/install/zookeeper-3.6.3
mkdir data
mkdir logs
修改配置文件
創建配置文件
cd /home/hadoop/install/zookeeper-3.6.3/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改配置文件
有些已經存在的參數更改,不存在的增加
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/hadoop/install/zookeeper-3.6.3/data dataLogDir=/home/hadoop/install/zookeeper-3.6.3/logs clientPort=2181server.1=master:2888:3888 server.2=node1:2888:3888 server.3=node2:2888:3888修改myid文件(id和host與zoo.cfg中配置的相匹配)
cd /home/hadoop/install/zookeeper-3.6.3/data
echo ‘1’ > myid
配置其他節點
將文件夾scp到到其它節點服務器上
scp -r ~/install/zookeeper-3.6.3 hadoop@node1:~/install/zookeeper-3.6.3
其他節點修改myid文件
cd /home/hadoop/install/zookeeper-3.6.3/data
vi myid
slave1修改為2(id和host與zoo.cfg中配置的相匹配)
啟動zookeeper
啟動zookeeper(所有節點都需要啟動)
cd /home/hadoop/install/zookeeper-3.6.3/bin
./zkServer.sh start
查看進程
jps
可看到所有節點都有QuorumPeerMain進程
Hbase安裝
也是和jdk一樣解壓hadoop安裝包到新建的package的文件夾中
更改配置文件
進入hbase的配置目錄
cd /home/hadoop/install/hbase-1.4.11/conf
(1)更改hbase-env.sh文件
添加以下內容: export JAVA_HOME=/home/hadoop/install/jdk1.8.0_201 export HBASE_MANAGES_ZK=false export HBASE_CLASSPATH=/home/hadoop/install/hbase-1.4.11/conf 注釋掉以下行: #export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m" #export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"(2)更改 hbase-site.xml文件
<configuration><property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property><name>hbase.master</name><value>master:6000</value></property><property> <name>hbase.zookeeper.quorum</name> <value>master</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hadoop/install/zookeeper-3.6.3/data</value> </property> </configuration>(3)修改 regionservers文件
node1 node2在 hadoop 分布式文件系統上創建 hbase 目錄
hadoop fs -mkdir /hbase
配置環境變量
vi /etc/profile
添加以下內容并保存:
export HBASE_HOME=/home/hadoop/install/hbase-1.4.11
export PATH=PATH:PATH:PATH:HBASE_HOME/bin
使環境配置生效
source /etc/profile
配置其他節點
復制到其他節點
scp -r ~/install/hbase-1.4.11 hadoop@node1:~/install/hbase-1.4.11
啟動hbase
啟動進程
start-hbase.sh
查看進程
jps
可看到master節點有HMaster進程,node1、2有HRegionServer進程
常見問題
軟件安裝的過程總結
解壓安裝包到相應目錄
更改環境變量(找不到命令,執行source /etc/profile文件應用環境變量)
更改配置文件
復制到其他節點,啟動相應進程(注意其他節點的環境變量文件復制過去后要應用,可能有些重復過程缺失)
快捷鍵
終端打開快捷鍵 Ctrl+Alt+T
返回上一級目錄 cd …
刪除文件夾及其文件 rm -rf 刪除路徑
系統配置文件更改權限
沒有設置root的先增加root
sudo passwd root 如果沒有先添加管理員密碼,如有可做于更改密碼
su root //獲取管理員權限
windows與ubuntu之間無法復制粘貼
vim文本編輯器問題
初次安裝unbuntu,vim文本編輯器出錯,包括方向鍵abcd
卸載vim-tiny: $ sudo apt-get remove vim-common
直接安裝可能出錯,apt-get update或sudo apt upgrade 更新,
安裝vim full: $ sudo apt-get install vim-nox
apt進程被占用
端口占用錯誤
sudo netstat -nltp | grep 2181 查看相應的端口
ps -aux 查看進程
sudo kill -9 2181 殺死進程
啟動文件無法執行
權限不夠
對文件夾賦權777(最高權限)
chmod 777 文件
重啟hadoop錯誤,重復格式化
hadoop namenode -format
要是多次格式化,必須先把所有格式化生成的文件給刪除,然后再格式化
在core-site.xml 和 hdfs-site.xml 文件中配置的文件夾,即tmp文件夾 ~/install/hadoop-2.6.1/tmp
,vim文本編輯器出錯,包括方向鍵abcd
卸載vim-tiny: $ sudo apt-get remove vim-common
直接安裝可能出錯,apt-get update或sudo apt upgrade 更新,
安裝vim full: $ sudo apt-get install vim-nox
apt進程被占用
端口占用錯誤
sudo netstat -nltp | grep 2181 查看相應的端口
ps -aux 查看進程
sudo kill -9 2181 殺死進程
啟動文件無法執行
權限不夠
[外鏈圖片轉存中…(img-5bd82QZB-1627364941181)]
對文件夾賦權777(最高權限)
chmod 777 文件
重啟hadoop錯誤,重復格式化
hadoop namenode -format
要是多次格式化,必須先把所有格式化生成的文件給刪除,然后再格式化
在core-site.xml 和 hdfs-site.xml 文件中配置的文件夾,即tmp文件夾 ~/install/hadoop-2.6.1/tmp
總結
- 上一篇: 3 HBase架构
- 下一篇: 5 HBase命令行接口