Linux虛擬機上安裝Hadoop集羣(初學)

測試已成功完成安裝的版本

點擊圖文安裝教程

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
至此,安裝完成


總結

可能是失敗的太多了,後面的安裝更加得心用手,就在一天的晚上一下全部安裝完畢。

說一下安裝過程中的自己認爲重要的點:

  1. 用ssh免密連接只需要master與slave之間就可以,slave之間是不需要的。
  2. 配置文件的時候,文件夾是可以自己創建的。
  3. 3.0版本與2.x版本之間差異還是存在的,如果熟悉2.x安裝時候3.0安裝可能會更好安裝
  4. centos版本的虛擬機自帶root賬戶,雖然安裝起來不需要權限的干擾,但是以後實際使用時還是需要有權限管理的。
  5. 命令的使用能加快安裝的進程
  6. 理解配置文件的內容,其實還有意義的。
  7. 配置只需一個,剩下的複製就可以了!!!

指令集錦

初始配置

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

完成,感謝閱讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章