Ubuntu16下Hadoop安裝

 

1. 安裝Ubuntu

 

 

 

 

 

 

 

 

 

 

2. 新裝Ubuntu經常使用軟件安裝和系統設置

(1) 安裝vimhtml

yum install vimjava

(2) 更改hostnamehadoop_masternode

sudo vim /etc/hostnamelinux

(3) 關閉防火牆web

sudo ufw disableubuntu

(4) 安裝rz sz用於服務器文件與本地文件交互vim

apt-get install lrzszbash

(5) 安裝 vm tools服務器

 

 

(6)  tar.gz 包複製到其餘目錄,解壓後,網絡

 

 

3. JAVA 環境安裝配置

1 Java下載的jdk包放到root用戶下的 /usr/local/java

 解壓包tar xvf jdk1.8.*

配置JAVA環境變量

(1) Root用戶權限下 /etc/profile.d 文件夾下建立java.sh

(2) java.sh裏寫入如下內容保存後 source java.sh 刷新配置文件是配置文件生效

注:不少網上資料是說在 /etc/profile 文件裏直接加如下設置,但比較新的Ubuntu版本里,系統會先讀 profile 文件,而後由 profile 文件遍歷 profile.d 文件夾下全部 *.sh 文件, 這樣就比把全部配置都寫在一個 profile 文件裏容易管理。

 

 

(3) 上一步是在root 下配置,接下來在 Hadoop 用戶下將環境變量寫入 ~/.bashrc 裏,一樣,保存後用 source ~/.bashrc刷新。

注:每一個用戶根目錄有獨立的 ~/.bashrc 文件

若是還不成功能夠root帳號試試如下命令

執行賦權語句便可:
chmod 777 /etc/java/jdk1.8

備註:chmod是賦權限命令,777表示賦值全部權限對本用戶,本組用戶、其餘用戶。

設置完成後能夠用 java –version 測試是否成功。

 

4. 安裝SSH

sudo apt-get install openssh-server

測試ssh localhost 

此時要輸入密碼還要按一次確認 yes

1),避免輸入密碼

ssh-keygen -t rsa

一路回車,最後在 home/hadoop/.ssh 下有兩個文件

 

 

運行:cat id_rsa.pub >> authorized_keys

這樣就能夠避免輸入密碼了等克隆玩從機使用一樣的操做,而且將主機的 id_rsa.pub 追加到從機的 authorized_keys ,這樣,主機能夠無密碼訪問從機了。

 

2) 避免須要輸入yes

在文件 /etc/ssh/ssh_config 添加如下兩行

StrictHostKeyChecking no

UserKnownHostsFile /dev/null

 

 

5. 安裝rsync

sudo apt-get install rsync

由於以前更新了Ubuntu系統,已是最新的了

 

 

修改網卡

原先的ip信息

 

 

查看host信息

 

 

鍵入命令

vi hosts

註釋掉 127.0.1.1 ubuntu

新增一行 10.0.0.81 ubuntu

(這裏必須改,不然後面會遇到鏈接拒絕問題)

 

 

6. hadoop 相關帳戶權限設置

添加一個hadoop

sudo addgroup hadoop

將當前用戶hadoop 加入到Hadoop

sudo usermod -a -G hadoop hadoop

 

hadoop組加入到sudoer

sudo vi etc/sudoers

root ALL=(ALL) ALLhadoop ALL=(ALL) ALL

 

7. 安裝Hadoop

  1. 下載Hadoop2.7.2
  2. 將解壓文件放到 /usr/local下,

 

  1. 配置Hadoop

(1) 修改  ~/.bashrc 文件

添加如下這些行到 ~/.bashrc 文件的末尾,內容以下所示

#Set HADOOP_HOME

export HADOOP_HOME=/usr/local/hadoop

# Add bin/ directory of Hadoop to PATH

export PATH=$PATH:$HADOOP_HOME/bin

 

 

(2) 配置關聯HDFS

設置 JAVA_HOME 在文件 /usr/local/hadoop/etc/hadoop/hadoop-env.sh 中,使用如下行代替,即寫上完整的 Java 安裝路徑。以下所示:

 

 

(3) core-site.xml 配置

$HADOOP_HOME/etc/hadoop/core-site.xml 文件中還有兩個參數須要設置:

1. 'hadoop.tmp.dir' - 用於指定目錄讓 Hadoop 來存儲其數據文件。

2. 'fs.default.name' - 指定默認的文件系統

爲了設置兩個參數,打開文件 core-site.xml

<configuration>

<property>

    <name>hadoop.tmp.dir</name>

    <value>/usr/local/hadoop/dfs/tmp</value>

    <description>Parent directory for other temporary directories.</description>

</property>

<property>

    <name>fs.defaultFS </name>

    <value>hdfs://master:9000</value>

    <description>The name of the default file system. </description>

</property>

 

</configuration>

 

 

如今建立一個目錄,如上面配置 core-site.xml 中使用的目錄:/usr/local/hadoop/dfs/tmp

 

sudo mkdir -p /usr/local/hadoop/dfs/tmp

授予權限目錄 /app/hadoop/tmp,執行以下的命令:

 

sudo chown -R hadoop:hadoop  /usr/local/hadoop/dfs/tmp

sudo chmod 750  /usr/local/hadoop/dfs/tmp

 

 

(4) Map Reduce 配置

在設置這個配置以前, 咱們須要設置 HADOOP_HOME 的路徑,執行如下命令:

sudo vi /etc/profile.d/hadoop.sh

而後輸入如下一行,

 

export HADOOP_HOME=/usr/local/hadoop

 

 

 

再執行如下命令:

 

hadoop@ubuntu: sudo chmod +x /etc/profile.d/hadoop.sh

退出命令行終端再次進入,並輸入如下命令:echo $HADOOP_HOME 以驗證 hadoop 的路徑:

hadoop@ubuntu: echo $HADOOP_HOME

/usr/local/hadoop

如今複製文件,執行如下命令:

sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

 

使用vi 打開文件 mapred-site.xml

sudo vi $HADOOP_HOME/etc/hadoop/mapred-site.xml

 

添加如下的設置內容到標籤<configuration> </configuration> 中,以下圖所示:

<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>

 

 

hdfs-site.xml配置

打開 $HADOOP_HOME/etc/hadoop/hdfs-site.xml 文件以下:

sudo vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml

添加如下的設置內容到標籤<configuration> </configuration> 中,以下圖所示:

<configuration>

    <property>

        <name>dfs.namenode.name.dir</name>

        <value>/usr/local/hadoop/dfs/name</value>

    </property>

    <property>

        <name>dfs.datanode.data.dir</name>

        <value>/usr/local/hadoop/dfs/data</value>

    </property>

    <property>

        <name>dfs.replication</name>

        <value>2</value>

    </property>

    <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>master:9001</value>

    </property>

    <property>

    <name>dfs.webhdfs.enabled</name>

    <value>true</value>

    </property>

</configuration>

 

 

建立以上配置指定的目錄並受權目錄給用戶,使用如下命令:

sudo mkdir -p /usr/local/hadoop/dfs/name sudo mkdir -p /usr/local/hadoop/dfs/data sudo chown -R hadoop:hadoop /usr/local/hadoop/dfs/name sudo chown -R hadoop:hadoop /usr/local/hadoop/dfs/data sudo chmod 750  /usr/local/hadoop/dfs/name sudo chmod 750  /usr/local/hadoop/dfs/data

 

 

(5) 格式化HDFS

在第一使用 Hadoop 以前,須要先格式化 HDFS,使用下面的命令

hadoop namenode -format

輸入:y,繼往下..

(6) 啓動/中止 Hadoop 的單節點集羣

$HADOOP_HOME/sbin/start-dfs.sh

 

 

$HADOOP_HOME/sbin/start-yarn.sh

 

 

如今使用 'jps工具/命令, 驗證是否全部 Hadoop 相關的進程正在運行。

若是 Hadoop 成功啓動,那麼 jps 輸出應顯示: NameNode, NodeManager, ResourceManager, SecondaryNameNode, DataNode.

 

 

中止 Hadoop 的單節點集羣

$HADOOP_HOME/sbin/stop-dfs.sh $HADOOP_HOME/sbin/stop-yarn.sh

 

$HADOOP_HOME/sbin/stop-all.sh

 

上述步驟只是安裝測試虛擬機使用,實際生產環境中,這幾個配置文件都還要根據實際需求作不少調優設置。特別是cpu,內存,日誌路徑等等都須要調

 

8. 虛擬機克隆slave

前三步是single模式的環境,接下來是作徹底分佈式環境,添加從機。

 *本來是直接在複製粘貼兩份虛擬機做爲slave1和slave2,但後來發現不能上網,會出現連不上網絡的問題,用克隆出來的虛擬機能夠避免這個問題。

1)克隆虛擬機

VMware ==》 虛擬機 ==》 管理 ==》 克隆  

克隆出 Hadoop_slave1  Hadoop_slave2  

2)修改三個虛擬機的hostname

修改 etc/hostname ,分別將ubuntu 改成 master , slave1, slave2

*千萬別設置成下劃線格式的如 hadoop_master  會致使啓動namenode時出錯

 

 

  1. 三虛擬機hosts裏添加ip地址與hostname映射

經過命令 ifconfig 查看三個虛擬機的ip4 地址

 

而後在三個虛擬機裏都添加三行ip hostname映射以下

 

 

添加完後三個虛擬機就能夠互相用hostname Ping通了

masterping slave2結果

 

9. 配置SSH實現無密碼登錄

     無密碼登錄,效果也就是在master上經過 ssh slave1 ssh slave2 就能夠登錄到對方計算機上。並且不用輸入密碼。

 

    3臺虛擬機上,使用   ssh-keygen -t rsa    一路按回車就好了。

 

    剛纔都做甚了呢?主要是設置ssh的密鑰和密鑰的存放路徑。 路徑爲~/.ssh下。

 

    打開~/.ssh 下面有三個文件,輸入命令  ls -la

 

    authorized_keys,已認證的keys

 

    id_rsa,私鑰

 

    id_rsa.pub,公鑰   三個文件。

 

    下面就是關鍵的地方了,(咱們要作ssh認證。進行下面操做前,能夠先搜關於認證和加密區別以及各自的過程。)

  (1)在master上將公鑰放到authorized_keys    裏。命令:sudo cat id_rsa.pub >> authorized_keys,在slave機上也一樣操做,這一步使本機能夠無密碼操做。

  (2) 將master上的authorized_keys放到其餘linux~/.ssh目錄下。

sudo scp authorized_keys hadoop@slave1:~/.ssh sudo scp authorized_keys hadoop@slave2:~/.ssh

 

 

 

      sudo scp authorized_keys 遠程主機用戶名@遠程主機名或ip:存放路徑。

 

 

slave機上一個master一個本機的

master機上只有master

    (3)修改authorized_keys權限,命令:chmod 644 authorized_keys

    (4)測試是否成功

       ssh slave1輸入用戶名密碼,而後重啓master虛擬機,再次ssh slave1不用密碼,直接進入系統。這就表示成功了。

 

 

10. master上配置slaves信息

配置/usr/local/hadoop/etc/hadoop目錄下的slaves

刪除默認的localhost,增長2從節點,

192.168.159.132

192.168.159.133

 

11. 正常安裝後幾個檢查網址

http://192.168.159.129:50070/dfshealth.html#tab-datanode

http://192.168.159.130:8088/cluster/scheduler

 

12. 同步幾個服務器的時間

集羣上個服務器時間上可能不一樣步這會致使不少麻煩事要同步集羣時間

(未裝成功,先跳過,可是Hbase對時間同步有要求)

1安裝ntpdate工具

sudo apt-get install ntpdate

2)設置系統時間與網絡時間同步

sudo ntpdate cn.pool.ntp.org

3)將系統時間寫入硬件時間

sudo hwclock --systohc

 

13.安裝 lrzsz

安裝lrzsz,使用rzsz命令能夠方便地上傳和下載文件

 

 

14.安裝zookeeper

下載地址

http://pan.baidu.com/s/1qWyoFhU?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0

 

執行

解壓後

sudo mv zookeeper-3.4.5.tar.gz  /usr/local/zookeeper

 

cd /usr/local/zookeeper/conf

cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

修改:dataDir=/usr/local/zookeeper/data

添加

server.0=master:2888:3888

server.1=slave1:2888:3888

server.2=slave2:2888:3888

 

建立/usr/local/zookeeper/data 文件夾,並建立myid文件

並設置第一臺server0

echo 0 > myid

 

複製zookeeper目錄至其他兩臺服務器中:

scp -r /usr/local/zookeeper slave1:/usr/local/ 

scp –r /usr/local/zookeeper slave2:/usr/local/

scp –r /usr/local/zookeeper slave3:/usr/local/

若是沒權限,就先複製到 /tmp 文件夾,而後在 mv /usr/local

或者修改 /usr/local 權限,添加寫權限

複製環境變量配置文件至其他兩臺服務器中:

  scp /etc/profile.d/zookeeper.sh hadoop@slave1:/etc

  scp /etc/profile.d/zookeeper.sh hadoop@slave2:/etc

  scp /etc/profile.d/zookeeper.sh hadoop@slave3:/etc

在其他幾臺服務器中修改myid文件:設置爲1和2,3;

啓動ZooKeeper,分別在每一個節點中執行命令:zkServer.sh start

 

 

 

查看狀態 /usr/local/zookeeper/bin/zkServer.sh status

  

 

 

11可使用如下命令來鏈接一個zk集羣:

/usr/local/zookeeper/bin/zkCli.sh -server master:2181,slave1:2181,slave2:2181,slave3:2181

 

 

附錄:

Ubuntu Keyboard Shortcuts

 

Ubuntu終端複製粘貼快捷鍵

相關文章
相關標籤/搜索