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---------檢視執行後結果