中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hadoop偽分布式部署

發布時間:2020-07-23 08:05:25 來源:網絡 閱讀:961 作者:zenge_blog 欄目:大數據

1、環境準備

系統:

  • centos6.5 

  • JDK1.8


創建hadoop安裝目錄目錄

mkdir /bdapps
tar xf hadoop-2.7.5.tar.gz -C /bdapps/
cd /bdapps/
ln -sv hadoop-2.7.5 hadoop
cd hadoop


創建環境腳本

vim /etc/profile.d/hadoop.sh

內容如下:

export HADOOP_PREFIX=/bdapps/hadoop

export PATH=$PATH:${HADOOP_PREFIX}/bin:${HADOOP_PREFIX}/sbin

export HADOOP_YARN_HOME=${HADOOP_PREFIX}

export HADOOP_MAPPERD_HOME=${HADOOP_PREFIX}

export HADOOP_COMMON_HOME=${HADOOP_PREFIX}

export HADOOP_HDFS_HOME=${HADOOP_PREFIX}



2、創建用戶和組

出于安全等目的,通常需要用特定的用戶來運行hadoop不同的守護進程,例如,以hadoop為組,分別用三個用戶yarn、hdfs、和mapred來運行相應的進程

groupadd hadoop
useradd -g hadoop yarn
useradd -g hadoop hdfs
useradd -g hadoop mappred



創建數據和日志目錄

hadoop需要不同權限的數據和日志目錄,這里以/data/hadoop/hdfs為hdfs數據存儲目錄。

確保hdfs用戶對/data/目錄有權限

mkdir -pv /data/hadoop/hdfs/{nn,dn,snn}
chown -R hdfs:hadoop /data/hadoop/hdfs/



然后,在hadoop的安裝目錄中創建logs目錄,并修改hadoop所有文件的屬主和屬組

cd /bdapps/hadoop/
mkdir logs
chmod g+w logs
chown -R yarn:hadoop ./*


3、配置hadoop

etc/hadoop/core-site.xml

core-site.xml文件包含了NameNode主機地址以及其監聽RPC端口等信息,對于偽分布式模型的安裝來說,其主機地址為localhost。NameNode默認使用的RPC端口為8020。其簡要的配置內容如下所示


<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:8020</value>
        <final>true</final>
    </property>
</configuration>



etc/hadoop/hdfs-site.xml

hdfs-site.xml主要用于配置HDFS相關的屬性,例如復制因子(即數據塊的副本數)、NN和DN用于存儲數據的目錄等。數據塊的副本數對于偽分布式的Hadoop應該為1,而NN和DN用于存儲的數據的目錄為前面的步驟中專門為其創建的路徑。另外,前面的步驟中也為SNN創建了相關的目錄,這里也一并配置其為啟用狀態。


<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///data/hadoop/hdfs/nn</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///data/hadoop/hdfs/dn</value>
    </property>
    <property>
        <name>fs.checkpoint.dir</name>
        <value>file:///data/hadoop/hdfs/snn</value>
    </property>
    <property>
        <name>fs.checkpoint.edits.dir</name>
        <value>file:///data/hadoop/hdfs/snn</value>
    </property>
</configuration>



解釋:

dfs.replication  副本數量為1,偽分布式部署是將所有角色部署在本地,所以副本只在本地保留一份

dfs.namenode.name.dir   namenode的路徑

dfs.datanode.data.dir   數據節點的路徑

dfs.dcheckpoint.dir     檢查點文件存放路徑

fs.checkpoint.edit.dir  檢查點編輯目錄


注意:如果需要其他用戶對hdfs有寫入權限,還需要在hdfs-site.xml添加一項屬性定義。

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>


這個配置意思是不對dfs的權限做嚴格檢查,這樣其他用戶就有寫入權限




etc/hadoop/mapred-site.xml

mapred-site.xml文件用于配置集群的MapReduce framework,此處應該制定使用yarn,另外的可用值還有local和classic。mapred-site.xml.template,只需要將其復制mapred-site.xml即可。

cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

其配置示例如下面的內容

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>



etc/hadoop/yarn-site.xml

yarn-site.xml 用于配置YARN進程及YARN的相關屬性,首先需要指定ResourceManager守護進程的主機和監聽的端口,對于偽分布式模型來講,其主機為localhost,

默認的端口為8032;其次需要指定ResourceManager使用的scheduler,以及NodeManager的輔助服務。一個簡要的配置示例如下所示:


<configuration>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>localhost:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>localhost:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>localhost:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>localhost:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>localhost:8088</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
    </property>
</configuration>


etc/hadoop/hadoop-env.sh和etc/hadoop/yarn-env.sh

hadoop的各守護進程依賴于JAVA_HOME的環境變量,如果有類似于前面步驟中通過/etc/profile.d/java.sh全局配置定義的JAVA_HOME變量即可正常使用。不過如果像我hadoop定義依賴到的特定JAVA環境,也可以編輯這兩個腳本文件,為其JAVA_HOME取消注釋并配置合適的值即可。此外,hadoop大多數守護進程默認使用的堆大小為1GB,但現實應用中,可能需要對其各類進程的堆內存大小做出調整,這只需要編輯此兩者文件中的相關環境變量值即可。例如HADOOP_HEAPSIZE、HADOOP_JOB_HISTORY_HEAPSIZE、JAVA_HEAP_SIZE和YARN_HEAP_SIZE等。


slave文件

slave文件存儲了當前集群所有slave節點的列表,對于偽分布式模型,其文件內容僅應該為localhost,這特的確是這個文件的默認值。因此,為分布式模型中,次文件的內容保持默認即可。


4、格式化HDFS

在HDFS的NN啟動之前需要先初始化其用于存儲數據的目錄。如果hdfs-site.xml中dfs.namenode.name.dir屬性指定的目錄不存在,格式化命令會自動創建之;如果事先存在,請確保其權限設置正確,此時格式操作會清除其內部的所有數據并重新建立一個新的文件系統,需要以hdfs用戶的身份執行如下命令

hdfs namenode -format


hdfs 命令

查看dhfs文件系統/目錄上有哪些文件和目錄,默認是為空

$ hdfs dfs -ls /


在hdfs文件系統上創建測試目錄test

$ hdfs dfs -mkdir /test
$ hdfs dfs -ls /       
Found 1 items
drwxr-xr-x   - hdfs supergroup          0 2018-03-26 13:48 /test

注意:剛才創建的文件的屬組是supergroup,并不屬于hadoop,所有其他屬組為hadoop的用戶對改文件沒有寫入權限,前面hdfs-site.xml文件中有一個配置是

dfs.permissions,如果設置為false,則可賦予hadoop屬組的用戶寫入權限


將本地/etc/fstab 文件上傳到hdfs文件系統 /test目錄中

$ hdfs dfs -put /etc/fstab /test/fstab
$ hdfs dfs -ls /test
Found 1 items
-rw-r--r--   1 hdfs supergroup        223 2018-03-26 13:55 /test/fstab



查看dhfs文件系統上某個文件內容 使用cat命令

$ hdfs dfs -cat /test/fstab

UUID=dbcbab6c-2836-4ecd-8d1b-2da8fd160694       /       ext4    defaults        1       1
tmpfs   /dev/shm        tmpfs   defaults        0       0
devpts  /dev/pts        devpts  gid=5,mode=620  0       0
sysfs   /sys    sysfs   defaults        0       0
proc    /proc   proc    defaults        0       0
dev/vdb1        none    swap    sw      0       0


5、啟動hadoop

切換到hdfs用戶

su - hdfs

hadoop2的啟動等操作可通過其位于sbin路徑下的專用腳本進行

  • NameNode:hadoop-daemon.sh(start|stop)namenode

  • DataNode: hadoop-daemon.sh (start|stop) datanode

  • Secondary NameNode: hadoop-daemon.sh (start|stop) secondarynamenode

  • ResourceManager: yarn-daemon.sh(start|stop) nodemanager



啟動HDFS服務

HDFS有三個守護進程:namenode、datanode和secondarynamenode,他們都表示通過hadoop-daemon.sh腳本啟動或停止。以hdfs用戶執行相關命令即可,如下所示:


啟動namenode

hadoop-daemon.sh start namenode
starting namenode, logging to /bdapps/hadoop/logs/hadoop-hdfs-namenode-SRV-OPS01-LINTEST01.out

$ jps
99466 NameNode
99566 Jps



啟動secondarynamenode

hadoop-daemon.sh start secondarynamenode
starting secondarynamenode, logging to /bdapps/hadoop/logs/hadoop-hdfs-secondarynamenode-SRV-OPS01-LINTEST01.out

$ jps
100980 SecondaryNameNode
101227 Jps
99466 NameNode



啟動datanode

$ hadoop-daemon.sh start datanode
starting datanode, logging to /bdapps/hadoop/logs/hadoop-hdfs-datanode-SRV-OPS01-LINTEST01.out

$ jps
101617 DataNode
100980 SecondaryNameNode
101767 Jps
99466 NameNode



啟動yarn集群

切換成yarn用戶登錄系統,再啟動服務

YARN有兩個守護進程:resourcemanager和nodemanager,它們都可以通過yarn-daemon.sh腳本啟動或者停止。以yarn用戶執行相關命令即可。


啟動resourcemanager

yarn-daemon.sh start resourcemanager
starting resourcemanager, logging to /bdapps/hadoop/logs/yarn-yarn-resourcemanager-SRV-OPS01-LINTEST01.out

$ jps
110218 Jps
109999 ResourceManager



啟動nodemanager

yarn-daemon.sh start nodemanager
starting nodemanager, logging to /bdapps/hadoop/logs/yarn-yarn-nodemanager-SRV-OPS01-LINTEST01.out

$ jps
111061 Jps
110954 NodeManager
109999 ResourceManager


6、Web UU

HDFS和YARN ResourceManager各自提供了一個Web接口,通過這個接口可以檢查HDFS集群以及YARN集群的相關狀態信息,它們的訪問接口分別為如下所求,具體使用中,需要將

NameNodeHost和ReourceManageHost 分別改為其相應的主機地址。


HDFS-NameNode http://<ResourceManagerHost>:50070/

YARN-ResourceManager         http://<ResourceManagerHost>:8088/

注意:yarn-site.xml文件中yarn.resourcemanager.webapp.address屬性的值如果定義為“localhost:8088”, 則其WebUI僅監聽于127.0.0.1地址上的8088端口



7運行測試程序

Hadoop-YARN 自帶了許多樣例程序,它們位于hadoop安裝路徑下的share/hadoop/mapreduce/目錄里,其中的hadoop-mapreduce-examples可用作mapreduce程序測試

yarn jar /bdapps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /yarn/fstab /yarn/fstab.out

對hdfs文件系統上/yarn/fstab文件作單詞統計,統計結果存放在/yarn/fstab.out文件中



18/03/26 16:07:01 INFO client.RMProxy: Connecting to ResourceManager at localhost/127.0.0.1:8032
18/03/26 16:07:02 INFO input.FileInputFormat: Total input paths to process : 1
18/03/26 16:07:02 INFO mapreduce.JobSubmitter: number of splits:1
18/03/26 16:07:02 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1522044437617_0001
18/03/26 16:07:02 INFO impl.YarnClientImpl: Submitted application application_1522044437617_0001
18/03/26 16:07:02 INFO mapreduce.Job: The url to track the job: http://localhost:8088/proxy/application_1522044437617_0001/
18/03/26 16:07:02 INFO mapreduce.Job: Running job: job_1522044437617_0001
18/03/26 16:07:10 INFO mapreduce.Job: Job job_1522044437617_0001 running in uber mode : false
18/03/26 16:07:10 INFO mapreduce.Job:  map 0% reduce 0%
18/03/26 16:07:15 INFO mapreduce.Job:  map 100% reduce 0%
18/03/26 16:07:20 INFO mapreduce.Job:  map 100% reduce 100%
18/03/26 16:07:20 INFO mapreduce.Job: Job job_1522044437617_0001 completed successfully
18/03/26 16:07:21 INFO mapreduce.Job: Counters: 49
        File System Counters
                FILE: Number of bytes read=272
                FILE: Number of bytes written=243941
                FILE: Number of read operations=0
                FILE: Number of large read operations=0
                FILE: Number of write operations=0
                HDFS: Number of bytes read=320
                HDFS: Number of bytes written=191
                HDFS: Number of read operations=6
                HDFS: Number of large read operations=0
                HDFS: Number of write operations=2
        Job Counters 
                Launched map tasks=1
                Launched reduce tasks=1
                Data-local map tasks=1
                Total time spent by all maps in occupied slots (ms)=2528
                Total time spent by all reduces in occupied slots (ms)=2892
                Total time spent by all map tasks (ms)=2528
                Total time spent by all reduce tasks (ms)=2892
                Total vcore-milliseconds taken by all map tasks=2528
                Total vcore-milliseconds taken by all reduce tasks=2892
                Total megabyte-milliseconds taken by all map tasks=2588672
                Total megabyte-milliseconds taken by all reduce tasks=2961408
        Map-Reduce Framework
                Map input records=6
                Map output records=36
                Map output bytes=367
                Map output materialized bytes=272
                Input split bytes=97
                Combine input records=36
                Combine output records=19
                Reduce input groups=19
                Reduce shuffle bytes=272
                Reduce input records=19
                Reduce output records=19
                Spilled Records=38
                Shuffled Maps =1
                Failed Shuffles=0
                Merged Map outputs=1
                GC time elapsed (ms)=153
                CPU time spent (ms)=1290
                Physical memory (bytes) snapshot=447442944
                Virtual memory (bytes) snapshot=4177383424
                Total committed heap usage (bytes)=293076992
        Shuffle Errors
                BAD_ID=0
                CONNECTION=0
                IO_ERROR=0
                WRONG_LENGTH=0
                WRONG_MAP=0
                WRONG_REDUCE=0
        File Input Format Counters 
                Bytes Read=223
        File Output Format Counters 
                Bytes Written=191


查看統計結果

$ hdfs dfs -cat /yarn/fstab.out/part-r-00000
/       1
/dev/pts        1
/dev/shm        1
/proc   1
/sys    1
0       10
1       2
UUID=dbcbab6c-2836-4ecd-8d1b-2da8fd160694       1
defaults        4
dev/vdb1        1
devpts  2
ext4    1
gid=5,mode=620  1
none    1
proc    2
sw      1
swap    1
sysfs   2
tmpfs   2



問題:

1、其他服務器無法連接hdfs的8020端口服務?

這是因為core-site.xml文件中配置的是localhost:8020,本機只會監聽在127.0.0.1地址上,要改成服務器實際IP才行


2、其他用戶在hdfs文件系統中沒有寫入權限?

默認只有hadoop用戶(以hadoop用戶啟動服務)有寫入權限,如果希望其他用戶有寫入權限,可以在hdfs-site.xml文件中加入以下配置

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

或者修改hdfs文件系統上某個目錄的權限:

例如:

hadoop偽分布式部署



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青神县| 苏州市| 陇南市| 东港市| 沙坪坝区| 阿鲁科尔沁旗| 和政县| 明星| 大邑县| 茶陵县| 重庆市| 子洲县| 乐东| 湖口县| 牟定县| 南平市| 洛扎县| 太和县| 阳江市| 翼城县| 民权县| 丹寨县| 维西| 芦溪县| 安阳市| 荔浦县| 海原县| 山阴县| 临汾市| 九江市| 普陀区| 奈曼旗| 定州市| 中宁县| 习水县| 浠水县| 尚志市| 措勤县| 曲阜市| 泽普县| 老河口市|