全分布式全步驟
三臺機器,分別為hdp01,hdp02,hdp03
思路是先配置hdp01,再克隆hdp02,hdp03
一.搭建hdp01
1.關閉防火墻(一般會有延遲,即使關閉了防火墻以后查看狀態也還是開的,重啟可以在看狀態是可以的)
systemctl disable firewalld
檢查狀態
systemctl status firewalld
reboot -h now----重啟電腦
2.改ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
需要改動六個地方
1.BOOTPROTO=static
2.ONBOOT=yes
3.IPADDR=192.168.73.102
4.NETMASK=255.255.255.0
5.GATEWAY=192.168.73.2
6.DNS1=8.8.8.8
DNS2=114.114.114.114
改完ip一定要重啟網路,否則不能生效
systemctl restart network
重啟完網路再查看ip
ip addr
3.改主機名(第一臺不用改)
hostnamectl set-hostname hdp02
可以檢查,用hostname命令
4.改映射檔案
vi /etc/hosts
5.如果連接遠程finalshell軟體等,改本地host檔案
C:\Windows\System32\drivers\etc\host
6.寫秘鑰
ssh-keygen -t rsa
cd .ssh可以看到生成了公鑰和私鑰
如果自己是datenode,也一定要給自己做免密(只要在slaves里面的就都是datenode)
ssh-copy-id localhost
7.安裝jdk和hadoop
解壓到自己想解壓的目錄
tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/
可以改名字,名字太長
mv hadoop-2.7.6/ hadoop
7.1安裝ntp ntpdate源,搭集群時,時間同步用
# yum -y install ntp ntpdate
8.配置環境變數
vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile(必須重繪,否則環境變數不起作用)
檢測是否安裝成
java -version
hadoop vesion
9.改組態檔
vi core-site.xml
<configuration>
<property>
<!-- hdfs的地址名稱:schame,ip,port 因為我的映射檔案呢IP和主機名字映射了-->
<name>fs.defaultFS</name>
<value>hdfs://hdp01:8020</value>
</property>
<property>
<!-- hdfs的基礎路徑,被其他屬性所依賴的一個基礎路徑 這里面存的是元資料等資訊 -->
<name>hadoop.tmp.dir</name>
<value>/usr/local/tmp</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<property>
#存放元資料的fsimage
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<property>
#塊的存放位置
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
<property>
#副本的個數
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
#塊的大小
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp02:50090</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:///${hadoop.tmp.dir}/checkpoint/dfs/cname</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///${hadoop.tmp.dir}/checkpoint/dfs/cname</value>
</property>
<property>
<name>dfs.http.address</name>
<value>hdp01:50070</value>
</property>
</configuration>
cp mapred-site.xml.template mapred-site.xml 本身這個檔案沒有
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hdp01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hdp01:19888</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<!-- 指定yarn的shuffle技術-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定resourcemanager的主機名-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>qianfeng01</value> </property>
<!--下面的可選--> <!--指定shuffle對應的類 -->
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!--配置resourcemanager的內部通訊地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>qianfeng01:8032</value>
</property>
<!--配置resourcemanager的scheduler的內部通訊地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>qianfeng01:8030</value>
</property>
<!--配置resoucemanager的資源調度的內部通訊地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>qianfeng01:8031</value>
</property>
<!--配置resourcemanager的管理員的內部通訊地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>qianfeng01:8033</value>
</property>
<!--配置resourcemanager的web ui 的監控頁面-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>qianfeng01:8088</value>
</property>
</configuration>
hadoop-env.sh
export JAVA_HOME=/usr/local/jdk
vi slaves(這里邊放的是datanode)
hdp01
hdp02
hdp03
二.克隆
盡量記住快照
關閉hdp01,克隆hdp02,hdp03
改ip
改主機名
3.搭建集群
1.時間同步
時間同步詳細配置
2.格式化namenode
hdfs namenode -format
3.啟動集群
啟動腳本 -- start-dfs.sh 用于啟動hdfs集群的腳本
start-yarn.sh :用于啟動yarn守護行程
start-all.sh :用于啟動hdfs和yarn
4.測驗
(1)在分布式系統上建input檔案夾
hdfs dfs -mkdir /input
(2)隨便上傳了檔案
hdfs dfs -put a.txt /input
(3)測驗,用他們給我們封裝好的mapreduce小功能,查一下單詞的個數
/usr/local/hadoop/share/hadoop/mapreduce(小功能的架包都在這里邊)
執行的時候一定看好路徑,而且output 不能咱們自己建,得生成,要不然會報錯
hadoop jar hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/208507.html
標籤:其他
下一篇:Hive原始碼閱讀之路
