1. 程式人生 > 其它 >hadoop部署

hadoop部署

技術標籤:linux筆記

一、環境準備

1.1 三臺機器demo1,demo2,demo3,其中demo1作為管理節點(namenode),demo2,demo3作為資料節點(datanode)

編輯vim /etc/hosts

demo1 192.168.11.15

demo2 192.168.11.16

demo 192.168.11.17

scp /etc/hosts [email protected]:/etc/hosts

scp /etc/hosts [email protected]:/etc/hosts

1.2 在demo1上配置ssh免密登入demo2,demo3

ssh-keygen

ssh-copy-id [email protected]

ssh-copy-id [email protected]

1.3 三臺機器都建立hadoop賬戶

useradd -u 8000 hadoop ;echo 123456| passwd --stin hadoop

1.4 三臺都安裝jdk-8u163-linux-x64.rpm

rpm -ivhjdk-8u163-linux-x64.rpm

java -version

1.5 關閉系統防火牆 systemctl stop firewalld.service

1.6 上傳Hadoop-3.0.0.tar.gz 到/home/hadoop/

1.7 切換到hadoop賬戶登入,並解壓 tar zxvf Hadoop-3.0.0.tar.gz

1.8 建立hadoop工作目錄 mkdir -p /home/hadoop/dfs/name /home/hadoop/dfs/data /home/hadoop/tmp

1.9 編輯/home/hadoop/hadoop-3.0.0/etc/hadoop目錄下的七個檔案,分別是:hadoop-evn.sh,yarn-evn.sh,core-site.xml,hdfs-site.xml ,mapred-site.xml,yarn-site.xml,workers

編輯hadoop-evn.sh 修改 ------hadoop執行環境的配置,修改java虛擬機器的位置

export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64

檢視yarn-evn.sh,Precedence rules,不用修改 ------------儲存yarn框架的執行環境

編輯core-site.xml-----------------指定訪問hadoop web介面訪問路勁

<configuration>
<property>
        <name>fs.defaultFS</name>
                <value>hdfs://demo1:9000</value>
</property>


<property>
        <name>io.file.buffer.size</name>
                <value>13107</value>
</property>


<property>
        <name>hadoop.tmp.dir</name>
                <value>file:/home/hadoop/tmp</value>
                   <description>Abase for other temporary directories</description>
</property>


</configuration>

編輯hdfs-site.xml--------配置了hdfs的http訪問路勁

<configuration>
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>demo1:9001</value>
</property>

<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/dfs/name</value>
</property>

<property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/dfs/data</value>
</property>

<property>
        <name>dfs.replication</name>
        <value>2</value>
</property>


<property>
        <name>dfs.webhdfs.enabled</name>
         <value>true</value>
</property>
</configuration>

編輯mapred-site.xml-------mapreduce任務配置

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

<property>
        <name>mapreduce.jobhistory.address</name>
        <value>0.0.0.0:10020</value>
</property>

<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>0.0.0.0:19888</value>
</property>

</configuration>

編輯yarn-site.xml------該檔案yarn框架的配置,主要是一些任務的啟動位置

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>

<property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>


<property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>demo1:8030</value>
</property>

<property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>demo1:8031</value>
</property>

<property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>demo1:8033</value>
</property>

<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>demo1:8088</value>
</property>

<property>
<name>yarn.application.classpath</name>
<value>/home/hadoop/hadoop-3.0.0/etc/hadoop:/home/hadoop/hadoop-3.0.0/share/hadoop/common/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/common/*:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs/*:/home/hadoop/hadoop-3.0.0/share/hadoop/mapreduce/*:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn/*
</value>
</property>
</configuration>

編輯workers--------------------配置指定datanode節點的主機名

demo2
demo3

1.10 chown -R hadoop:hadoop /home/hadoop/hadoop-3.0.0

scp -r/home/hadoop/hadoop-3.0.0 [email protected]:~/

scp -r/home/hadoop/hadoop-3.0.0 [email protected]:~/

二、啟動hadoop

2.1 /home/hadoop/hadoop-3.0.0/bin/hdfs namenode -format --------初始格式化

2.2/home/hadoop/hadoop-3.0.0 /sbin/start-dfs.sh-----------啟動HDFS 分散式儲存

/home/hadoop/hadoop-3.0.0 /sbin/sttop-dfs.sh-----------關閉HDFS分散式儲存

ps -aux | grep namenode --color ----------檢視namenode和secondarynamenode程序 (在demo上檢視)

ps -aux | grep datanode --clor ----------------檢視資料節點程序(在demo2和demo3上檢視)

2.3 home/hadoop/hadoop-3.0.0 /sbin/start-yarn.sh-------------啟動分散式計算

home/hadoop/hadoop-3.0.0 /sbin/stop-yarn.sh-------------停止分散式計算

ps -aux | grep resourcemanager----------------檢視負責協調和管理整個叢集的資源的程序 (在demo1上檢視)

ps -aux | grep nodemanager---------------------節點管理器程序(在demo2,demo3上檢視)

解釋:/home/hadoop/hadoop-3.0.0 /sbin/目錄下的start-all.sh等同於同時執行start-dfs.sh和start-yarn.sh

/home/hadoop/hadoop-3.0.0 /sbin/目錄下的stop-all.sh等同於同時執行stop-dfs.sh和stop-yarn.sh

2.4/home/hadoop/hadoop-3.0.0 /sbin/mr-jobhistory-daemon.sh start historyserver----------啟動管理節點jobhistory服務(在demo1管理節點執行)

/home/hadoop/hadoop-3.0.0 /sbin/mr-jobhistory-daemon.sh start datanode --------------啟動儲存服務(在管理節點demo1)

/home/hadoop/hadoop-3.0.0 /sbin/mr-jobhistory-daemon.sh start nodemanager----------啟動資源管理服務(在管理節點demo1)

2.4 /home/hadoop/hadoop-3.0.0 /bin/hdfs dfsadmin -report ---------------------檢視HDFS分散式檔案系統狀態

/home/hadoop/hadoop-3.0.0 /bin/hdfs fsck /-files -blocks --------------------命令列檢視HDFS狀態檔案塊組成部分

http://demo1:9870/dfshealth.html#tab-datanode---------------------------------通過web介面檢視HDFS狀態檔案塊組成部分

http://demo1:8088------------------------------------------------------------------------檢視叢集狀態

http://demo:19888(這個埠可以在mapred-site.xml中檢視)--------------檢視Jobhistory的內容

三、執行計算任務

3.1 配置環境變數,方便呼叫命令

vim /etc/profile

export HADOOP_HOME=/home/hadoop/hadoop-3.0.0
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

3.2 執行計算任務

編輯測試檔案file11.txt

vim /file1.txt
hello
world
happy

編輯測試檔案file2.txt

vim file2.txt

this is test file for hadoop

開始測試,以下全在管理節點demo1上執行

hadoop fs -ls ----------------------檢視hdfs目錄情況

hadoop fs -mkdir -p /input --------在hdfs的根目錄下,建立input目錄

hadoop fs -put /home/hadoop/file*.txt /input ----------將file*.txt 檔案放到hdfs的input目錄下

hadoop fs -cat /input/file1.txt ----------- 檢視檔案

hadoop jar /home/hadoop/hadoop-3.0.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar wordcount /input /output----------執行 wordCount 單詞統計彙總

hadoop fs -ls /output-------------檢視執行後產生的檔案
hadoop fs -cat /output/part-r-00000---------檢視執行後結果