大數據系列之Hadoop----(1)集羣搭建

1.準備Linux環境(本地虛擬機VMWare下)

1.0 先將虛擬機的網絡模式選爲NAT

1.1 修改主機名

vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=had    ###

1.2 修改IP
兩種方式:
第一種:通過Linux圖形界面進行修改

進入Linux圖形界面 -> 右鍵點擊右上方的兩個小電腦 -> 點擊Edit connections -> 選中當前網絡System
eth0 -> 點擊edit按鈕 -> 選擇IPv4 -> method選擇爲manual -> 點擊add按鈕 ->
添加IP:192.168.1.101 子網掩碼:255.255.255.0 網關:192.168.1.1 -> apply

第二種:修改配置文件方式(屌絲程序猿專用)

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE="eth0"
    BOOTPROTO="static"               ###
    HWADDR="00:0C:29:3C:BF:E7"
    IPV6INIT="yes"
    NM_CONTROLLED="yes"
    ONBOOT="yes"
    TYPE="Ethernet"
    UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
    IPADDR="192.168.1.101"           ###
    NETMASK="255.255.255.0"          ###
    GATEWAY="192.168.1.1"            ###

1.3 修改主機名和IP的映射關係

vim /etc/hosts

192.166.100.11 had1
192.166.100.12 had2
192.166.100.13 had3
192.166.100.14 had4

1.4 關閉防火牆【systemctl stop firewalld.service

#查看防火牆狀態 service iptables status
#關閉防火牆 service iptables stop
#查看防火牆開機啓動狀態 chkconfig iptables –list
#關閉防火牆開機啓動 chkconfig iptables off

1.5 新建用戶

useradd had
passwd had
had
had

1.6 修改sudo(給had用戶添加執行的權限)

su root
vi /etc/sudoers

給hadoop用戶添加執行的權限

配置添加:

had     ALL=(ALL)       ALL

拷貝到其他服務器:

scp /etc/sudoers 192.168.100.12:/etc
scp /etc/sudoers 192.168.100.13:/etc
scp /etc/sudoers 192.168.100.14:/etc

1.7 關閉linux服務器的圖形界面:

vi /etc/inittab 

1.8 重啓Linux

reboot

2.安裝JDK

2.1 上傳alt+p 後出現sftp窗口,然後put d:\xxx\yy\ll\jdk-7u_65-i585.tar.gz

put E:soft\jdk-7u45-linux-x64.tar.gz
mv /root/jdk-7u45-linux-x64.tar.gz /usr/src

2.2 搭建JDK環境(多臺服務器)

#創建文件夾
mkdir /home/had/app
#解壓
tar -zxvf /usr/src/jdk-7u45-linux-x64.tar.gz -C /home/had/app
#將java添加到環境變量中
vi /etc/profile

#在文件最後添加
export JAVA_HOME=/home/had/app/jdk1.7.0_45
export PATH=$PATH:$JAVA_HOME/bin
#拷貝環境變量到其他服務器
sudo scp /etc/profile 192.168.100.12:/etc
sudo scp /etc/profile 192.168.100.13:/etc
sudo scp /etc/profile 192.168.100.14:/etc
#刷新配置
source /etc/profile 

3. 安裝hadoop2.4.1

3.1 先上傳hadoop的安裝包到服務器上去/home/hadoop/
注意:-bash: rz: command not found
安裝lrzsz:

# yum -y install lrzsz

現在就可以正常使用rz、sz命令上傳、下載數據了。
使用方法:

上傳文件
# rz filename
下載文件
# sz filename

注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop

3.2 解壓到app文件

tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C app/

3.3配置hadoop
僞分佈式需要修改5個配置文件

第一個:hadoop-env.sh

vi hadoop-env.sh
#第27行
export JAVA_HOME=/home/had/app/jdk1.7.0_45

第二個:core-site.xml

vi core-site.xml
<!-- 指定HADOOP所使用的文件系統schema(URI),HDFS的老大(NameNode)的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://192.168.100.11:9000</value>
        </property>
        <!-- 指定hadoop運行時產生文件的存儲目錄 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/had/tmp/hapdata</value>
    </property>

第三個:hdfs-site.xml

    <!-- 指定HDFS副本的數量 -->
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>

        <property>
            <name>dfs.secondary.http.address</name>
            <value>192.168.1.152:50090</value>
        </property>

第四個:mapred-site.xml

    mv mapred-site.xml.template mapred-site.xml
    vi mapred-site.xml
        <!-- 指定mr運行在yarn上 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>

第五個:yarn-site.xml

        <!-- 指定YARN的老大(ResourceManager)的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>192.168.100.11</value>
        </property>
        <!-- reducer獲取數據的方式 -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>

3.3 將hadoop添加到環境變量


sudo vi /etc/proflie
export JAVA_HOME=/home/had/app/jdk1.7.0_45
export HADOOP_HOME=/home/had/app/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

3.4 拷貝hadoop和環境變量到其他服務器

scp -r /home/had/app 192.168.100.12:/home/had/
scp -r /home/had/app 192.168.100.13:/home/had/
scp -r /home/had/app 192.168.100.14:/home/had/

scp -r /etc/profile 192.168.100.12:/etc/
scp -r /etc/profile 192.168.100.13:/etc/
scp -r /etc/profile 192.168.100.14:/etc/


source /etc/profile

3.3 格式化namenode(是對namenode進行初始化)

hdfs namenode -format (hadoop namenode -format)

3.4 啓動hadoop

先啓動HDFS
sbin/start-dfs.sh

再啓動YARN
sbin/start-yarn.sh

批量啓動/關閉:【驗證:不填入ip地址,填入hosts主機的host名,ip測試不能通過】

cd /home/had/app/hadoop-2.6.4/etc/hadoop/
vi slaves
had2
had3
had4
start-dfs.sh/stop-dfs.sh
start-yarn.sh/stop-yarn.sh      

3.5驗證是否啓動成功
使用jps命令驗證

27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode

http://192.168.100.11:50070/dfshealth.html (HDFS管理界面)
http://192.168.100.11:8088 (MR管理界面)

4. 配置集羣ssh免登陸

4.1 配置所有各自服務器本身公鑰和免密

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

現在每臺節點本身實現免密

4.2 將除A服務器之外所有節點的公鑰複製到A上,這裏是將hadoop2,hadoop3的公鑰拷貝到A的authorized_keys,目的是實現hadoop2,hadoop3登錄A實現免密,而反過來不行

ssh-copy-id -i ~/.ssh/id_dsa.pub 192.168.100.11 # 在hadoop2上執行
ssh-copy-id -i ~/.ssh/id_dsa.pub 192.168.100.11 # 在hadoop3上執行
...

4.3 實現最終集羣所有節點互相免密

現在hadoop1(A)保存了所有節點的公鑰,那麼這個時候應該分發hadoop1上的authorized_keys到其他節點

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