測試已成功完成安裝的版本
hbase-1.2.6-bin.tar.gz
hadoop-2.7.5.tar.gz
ubuntu-16.04.3-server-amd64.ios
jdk-8u161-linux-x64.tar.gz
zookeeper-3.4.8.tar.gz
ps:如有需要請留言
寫在前面的話
關於這篇博客
本教程並不是自己總結而寫的,都是網站上的大牛們,一個個超詳細的總結,在這裏感謝大牛們對初學者的關照!!
這裏貼出的博客沒有排名之分,也沒有好壞之分,而且只是冰山一角,摘出了幾篇博主認爲適合初學者的而已。
關於教程模式
如果已經有初步認識,而且有一定的linux基礎的話,可以直接看最後博主貼出的安裝命令,及操作,比較簡單,但是是完整安裝。
如果沒有基礎的話也沒有關係,博主會推薦很多適合初學者的博客,一步一步地理解。
讓我們開始進入hadoop的學習與安裝
默認爲完全分佈式安裝
實驗條件是3臺Vm的ubuntu-server虛擬機(可能博客裏的linux是不一樣的,不過沒關係,都差不很多)
爲什麼不選擇最新版本的hadoop呢?因爲最新版本教程有點少,博主也是剛開始學習,所以選擇了兼容性更高的低版本。
首先,我們從安裝虛擬機開始學習:
http://blog.csdn.net/dream_an/article/details/52946840
如果可能的話,基本這樣hadoop的安裝就完成了,如果還是有很多問題的話請接着看。
http://blog.csdn.net/garfielder007/article/details/49865863
這裏有更多的安裝細節上的解釋說明,還有很多安裝時的坑。
http://blog.csdn.net/pucao_cug/article/details/71698903
http://www.linuxidc.com/Linux/2015-08/121397.htm
詳細的圖文講解
http://blog.csdn.net/qinzhaokun/article/details/47804923
僞分佈式安裝
下面的三篇是針對最新版本3.0的安裝過程
http://www.aboutyun.com/thread-23773-1-1.html
http://blog.csdn.net/u010499619/article/details/52886872
https://www.jianshu.com/p/1d99be0d2544
安裝時遇到的錯誤
ps:博主曾遇到的典型錯誤
http://blog.csdn.net/coffeeandice/article/details/78879151
https://www.cnblogs.com/garfieldcgf/p/8119506.html
防坑筆記,很多典型錯誤解決方案
http://blog.csdn.net/kingjulien2/article/details/52268263
https://zhidao.baidu.com/question/2268432194882142228.html
hadoop官網下載的版本選擇及區別
https://www.jianshu.com/p/a6bfe81247b6
Error: JAVA_HOME is not set and could not be found
https://stackoverflow.com/questions/46283634/localhost-error-cannot-set-priority-of-datanode-process-32156
ERROR: Cannot set priority of datanode process 32156
至此hadoop安裝完畢
Hbase + zookeeper 的安裝
博主安裝的時候並沒有按照一篇安裝的,當時並沒有搜到一篇適合的完整版安裝,後來發現了
https://www.cnblogs.com/sqchen/p/8080952.html
裏面有版本的制約關係,非常有價值
https://www.cnblogs.com/lzxlfly/p/7221890.html
博主是按照這一篇的hbase開始安裝的,有一點是博主的hbase裏面沒有內含zookeeper,所以有一項的設置沒有按照上面所說
http://blog.csdn.net/haihongazar/article/details/52623480
講述了Hbase禁用自帶ZooKeeper,使用已經安裝的ZooKeeper
然後進入zookeeper的安裝
https://www.imooc.com/article/details/id/20872
至此,安裝完成
總結
可能是失敗的太多了,後面的安裝更加得心用手,就在一天的晚上一下全部安裝完畢。
說一下安裝過程中的自己認爲重要的點:
- 用ssh免密連接只需要master與slave之間就可以,slave之間是不需要的。
- 配置文件的時候,文件夾是可以自己創建的。
- 3.0版本與2.x版本之間差異還是存在的,如果熟悉2.x安裝時候3.0安裝可能會更好安裝
- centos版本的虛擬機自帶root賬戶,雖然安裝起來不需要權限的干擾,但是以後實際使用時還是需要有權限管理的。
- 命令的使用能加快安裝的進程
- 理解配置文件的內容,其實還有意義的。
- 配置只需一個,剩下的複製就可以了!!!
指令集錦
初始配置
sudo apt install openssh-server
192.168.178.142 hadoop1
192.168.178.137 hadoop2
192.168.178.139 hadoop3
修改源
sudo vi /etc/apt/sources.list
# 默認註釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消註釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
更新,下載編譯工具
sudo apt update
sudo apt install vim
ps -A | grep apt
sudo kill -9 進程ID
# sudo apt-get upgrade
修改名字
sudo hostname hadoop1
修改時間
sudo tzselect
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
安裝jdk,驗證
tar -zxf jdk-8u161-linux-x64.tar.gz
sudo mv jdk1.8.0_161/ /opt/
sudo vim /etc/profile.d/jdk1.8.sh
export JAVA_HOME=/opt/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
java -version
ssh免密連接
sudo apt install ssh
sudo apt install rsync
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop3
hadoop的環境變量配置
sudo vim /etc/profile.d/hadoop2.7.5.sh
#!/bin/sh
export HADOOP_HOME="/opt/hadoop-2.7.5"
export PATH="$HADOOP_HOME/bin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
hadoop內部環境變量
sudo vim /etc/profile.d/hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_161
從節點配置
slaves
hadoop2
hadoop3
文件配置
----------------------------------------------------------------
---------------core-site.xml---------------
<configuration>
<!-- 指定hdfs的nameservice爲ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://Hadoop1:9000</value>
</property>
<!-- Size of read/write buffer used in SequenceFiles. -->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!-- 指定hadoop臨時目錄,自行創建 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/zd/hadoop/tmp</value>
</property>
</configuration>
----------------------------------------------------------------
---------------hdfs-site.xml---------------
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/zd/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/zd/hadoop/hdfs/data</value>
</property>
</configuration>
----------------------------------------------------------------
---------------yarn-site.xml---------------
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- Configurations for ResourceManager -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop1:8088</value>
</property>
</configuration>
----------------------------------------------------------------
---------------mapred-site.xml---------------
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:19888</value>
</property>
</configuration>
----------------------------------------------------------------
複製到從節點
scp -r hadoop-2.7.5 hadoop2:
sudo mv hadoop-2.7.5 /opt/
初始化
cd /opt/hadoop-2.7.5
hdfs namenode -format
啓動
cd /opt/hadoop-2.7.5/sbin
./start-all.sh
檢測,網頁檢測
jps
http://192.168.178.142:8088/
配置hbase環境變量
sudo vim /etc/profile.d/hbase1.2.6.sh
export HBASE_HOME=/opt/hbase-1.2.6
export PATH=$HBASE_HOME/bin:$PATH
內部jdk配置
vim /opt/hbase-1.2.6/conf/hbase-env.sh
修改# export JAVA_HOME=/opt/jdk1.8.0_161
配置文件
----------------------------------------------------------------
---------------hbase-site.xml---------------
<configuration>
<property>
<name>hbase.rootdir</name>
<!-- hbase存放數據目錄 -->
<value>hdfs://Hadoop1:9000/zd/hbase/hbase_db</value>
<!-- 端口要和Hadoop的fs.defaultFS端口一致-->
</property>
<property>
<name>hbase.cluster.distributed</name>
<!-- 是否分佈式部署 -->
<value>true</value>
</property>
</configuration>
這裏與上面的教程不一樣
cd /opt/hbase-1.2.6/conf
vim regionservers
去掉默認的localhost,加入hadoop2、hadoop3
複製到從節點
scp -r hbase-1.2.6 hadoop2:
zookeeper的環境變量
sudo vim /etc/profile.d/zookeeper-3.4.8.sh
export ZOOKEEPER=/opt/zookeeper-3.4.8
export PATH=$PATH:$ZOOKEEPER/bin
source /etc/profile
配置
cp zoo_sample.cfg zoo.cfg
修改:
dataDir=/opt/zookeeper-3.4.8/data
添加:
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
發到從節點
scp -r zookeeper-3.4.8 hadoop2:
配置
三臺機器下面data目錄裏面各自建一個myid的文件
cd /usr/tools/zookeeper-3.4.8/data
vi myid
然後裏面填上相應的數字
master是server.1,myid裏面填1
slaver1是server.2,myid裏面填2
slaver2是server.3,myid裏面填3
三臺分別啓動zookeeper
zkServer.sh start
然後,每臺機器上查看狀態:
zkServer.sh status
結果如下正常:
ZooKeeper JMX enabled by default
Using config: /usr/tools/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: follower
使用jps查看:
jps
結果
QuorumPeerMain
完成,感謝閱讀。