1. 程式人生 > >Hadoop分散式檔案系統搭建以及基本操作

Hadoop分散式檔案系統搭建以及基本操作

1. 環境搭建

jdk-1.8
jdk下載地址

export JAVA_HOME = /usr/lib/java/jdk1.7.0_21
export PATH  =$JAVA_HOME/bin:$PATH

hadoop-2.7.3
hadoop各個版本下載地址

解壓縮:tar -zxvf jdk1.7.0_21.tar
設定環境變數 sudo vim /etc/profile

export HADOOP_HOME = /usr/local/hadoop
export PATH = $JAVA_HOme/bin:$HADOOP_HOME/bin:$PATH

4臺伺服器

2.配置ssh無祕登入

因為hadoop服務啟動時需要多次輸入系統使用者密碼,才能將服務執行起來,而且不配置無祕登入,namenode伺服器訪問datanode時也需要密碼。

1、修改hostname

vi /etc/hostname
    s112

2、修改hosts

vi /etc/hosts
    127.0.0.1   localhost
    192.168.42.112  s112
    192.168.42.113  s113
    192.168.42.114  s114
    192.168.42.115  s115

3、生成祕鑰對

$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    /home/centos/.ssh/authorized_keys
    $>scp id_rsa.pub centos@s112:/home/centos/.ssh/authorized_keys
    $>scp id_rsa.pub centos@s113:/home/centos/.ssh/authorized_keys
    $>scp id_rsa.pub centos@s114:/home/centos/.ssh/authorized_keys
    $>scp id_rsa.pub centos@s115
:/home/centos/.ssh/authorized_keys

3.修改配置檔案

一下配置檔案均在hdaoop/etc/hadoop/下
[core-site.xml]
        <configuration>
                <property>
                        <name>fs.defaultFS</name>
                        <value>hdfs://112/8082</value>
                </property>
                <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/hadoop/hdfs</value>
                </property>
        </configuration>

[hdfs-site.xml]
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
</configuration>

[mapred-site.xml]
        <configuration>
            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>
        </configuration>


[yarn-site.xml]
        <configuration>
                <property>
                        <name>yarn.resourcemanager.hostname</name>
                        <value>s112</value>
                </property>
                <property>
                        <name>yarn.nodemanager.aux-services</name>
                        <value>mapreduce_shuffle</value>
                </property>
        </configuration>

[slaves]
    s113
    s114
    s115

檔案修改成功後,需要將檔案分發出去

$>cd /soft/hadoop/etc/
$>scp hadoop centos@s113:/soft/hadoop/etc/
$>scp hadoop centos@s114:/soft/hadoop/etc/
$>scp hadoop centos@s115:/soft/hadoop/etc/

4.準備啟動程序

刪除hadoop日誌

$>cd /soft/hadoop/logs
$>rm -rf *
$>ssh s113 rm -rf /soft/hadoop/logs/*
$>ssh s114 rm -rf /soft/hadoop/logs/*
$>ssh s115 rm -rf /soft/hadoop/logs/*

刪除臨時目錄檔案

$>cd /tmp
$>rm -rf hadoop-centos
$>ssh s113 rm -rf /tmp/hadoop-centos
$>ssh s114 rm -rf /tmp/hadoop-centos
$>ssh s115 rm -rf /tmp/hadoop-centos

格式化檔案系統

$>hadoop namenode -format

啟動hadoop程序

$>start-all.sh

啟動成功後可以在s112://50070上檢視

為了方便管理與操作,可以編寫一個簡單指令碼
在/usr/local/bin/下建立xtest.sh

$>vi xtest.sh
#!/bin/bash

params=[email protected]
i=112
for(( i = 112 ; i <= 115 ; i= $i +1)); do
        echo ============= s$i ==============
         ssh s$i $params
done

xtest.sh用法舉例

$>xtest.sh jps            //檢視所有伺服器程序啟動情況
    jps命令是jdk自帶的,得將jps符號連結到/usr/local/bin目錄下
$>xtest.sh rm -rf  ******     //刪除檔案或目錄 *代表路徑
    xtest.sh作用統一操作(liunx命令),避免遺漏等情況。

5.hdfs檔案系統基本操作

$>hdfs dfs -help
$>hdfs dfs -mkdir -p  /user/hadoop      //該路徑是hdfs路徑不是liunx路徑
$>hdfs dfs -ls /user/                  //檢視目錄
$>hdfs dfs -ls -R /user/               //遞迴檢視目錄
$>hdfs dfs -put xx.txt /user/hadoop        //上傳檔案
$>hdfs dfs -rm -f -r /user/hadoop       //刪除目錄或檔案
$>hdfs dfs -cat /user/hadoop/xx.txt        //檢視檔案