文章目錄
- 一、安裝虛擬機(CentOS)
- 二、修改主機名(當前虛擬機的主機名)
- 1. 查看當前的主機名
- 2. 修改主機名
- (1)一定要在vi的命令模式下(在編輯模式下按esc鍵)
- (2)編輯模式下:i當前游標所在的位置,
- 三、修改ip地址(當前虛擬機的ip地址)
- 1. 修改為靜態獲取ip
- 2. 添加IP地址
- 3. 添加網關
- 4. 添加子網掩碼
- 5. 添加域名決議器
- 四、修改ip地址與主機名的映射
- 一、修改虛擬機的網路配置
- 二、修改windows的網路配置
- 三、虛擬機的防火墻的開關(ping通的不用關閉,ping不通才需要關閉)
- 1.防火墻狀態的查看
- 2. 關閉防火墻
- 3. 開機防火墻不啟動
- 五、查看虛擬機當前的ip地址
- 六、 打開moba創建新的連接服務
- 出現以下頁面
- (1)你之前ping192.168.1.100成功沒有,沒有這就打不開
- (2)如果你是ping192.168.1.128成功,那個這個new session就要連接192.168.1.128
- (3)如果虛擬機沒有啟動也是出現下面情況,請直接輸入R就可重繪
- 我們需要在/opt下面創建兩個檔案夾
- (1)software:放軟體的壓縮包
- 創建software檔案夾的命令:mkdir software
- (2)module:放軟體解壓后的檔案夾
- (1)切換到software檔案夾下
- (2)解壓jdk到module檔案夾中
- (四)配置jdk環境變數(慎重~~)
- 1.輸入vi /etc/profile
- 2.Shift+g到最后一行
- 3.之后esc :wq
- 4.輸入:source /etc/profile
- 5.輸入:java -version出現
- (五)配置hadoop環境變數
- (1) 輸入vi /etc/profile
- (2) Shift+g到最后一行
- (3)然后esc :wq
- (4)輸入:source /etc/profile
- (5)輸入:hadoop version
- 一、Hadoop的本地部署使用
- **1.** 切換到hadoop下面的etc(組態檔都在etc下面)
- **2.** 在hadoop中配置core-site.xml
- **3.** 在hadoop中配置hdfs-site.xml
- **4.** 格式化NameNode(第一次啟動時格式化,以后就不要總格式化)
- **5.** 啟動namenode
- **6.** 啟動datanode
- **7.** 配置yarn-site.xml
- **8.** 配置mapred-site.xml
- Hadoop 完全分布式
- 1、Namenode:儲存檔案的元資料,
- 2、Datanode:在本地檔案系統儲存檔案快資料,以及塊資料的效驗和,
- 3、Secondary Namenode :每個隔一段時間對Namenode元資料備份,
- 啟動:
- YARN架構
- (1)ResourceManager(RM)主要作用
- (2)處理客戶端的請求
- (3)啟動或監控ApplicationMaster
- (4)資源的分配調度
- 1、集群配置
- 核心組態檔
- 1.配置core-site.xml namenode
- 2.HDFS組態檔 datanode
- 3.YARN組態檔
- 2、集群分發
- scp -r(遞回)(全拷貝)
- rsync -av (差異化拷貝)
- 3、分布式集群格式化
- 分布式集群第一次啟動之前要格式化
- 格式化之前,要把三個服務器上的hadoop安裝目錄下的 data目錄和logs目錄都刪掉
- 在指定namenode運行的服務器上執行格式化:
- ssh免密登錄
- 1、在每個節點生成公鑰和私鑰,并拷貝
- Hadoop1000:
- 生成公鑰和私鑰
- Hadoop1001:
- Hadoop1002:
- 用腳本啟動集群
- 1、修改hadoop組態檔
- 在**hadoop1000**上的start-dfs.sh 和stop-dfs.sh 檔案最上邊添加幾行資料
- 在 start-yarn.sh 和 stop-yarn.sh檔案最上方添加幾行資料
- 在**hadoop1000**上修改workers:
- 把上面的修改同步到hadoop1001、hadoop1002上:
- 啟動停止集群
- 停止集群:
一、安裝虛擬機(CentOS)
二、修改主機名(當前虛擬機的主機名)
1. 查看當前的主機名
命令:hostname
2. 修改主機名
命令:vi /etc/hostname
(1)一定要在vi的命令模式下(在編輯模式下按esc鍵)
wq保存退出
:wq!強制保存退出
:q退出
:q!強制退出
(2)編輯模式下:i當前游標所在的位置,
\3. 啟動--
命令:reboot -h now
補充:第二種修改主機名的方式
Hostnamectl set -hostname <自己撰寫的主機名>
Bash
三、修改ip地址(當前虛擬機的ip地址)
命令:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
1. 修改為靜態獲取ip
BOOTPROTO=”static”
2. 添加IP地址
IPADDR=192.168.1.100
3. 添加網關
GATEWAY=192.168.1.2
4. 添加子網掩碼
NETMASK=255.255.255.0
5. 添加域名決議器
DNS1=192.168.1.2
四、修改ip地址與主機名的映射
命令: vi /etc/hosts
添加對應的ip和相對應的主機名
一、修改虛擬機的網路配置
二、修改windows的網路配置
三、虛擬機的防火墻的開關(ping通的不用關閉,ping不通才需要關閉)
1.防火墻狀態的查看
systemctl status firewalld
2. 關閉防火墻
systemctl stop firewalld
3. 開機防火墻不啟動
systemctl disable firewalld
五、查看虛擬機當前的ip地址
1. ifconfig -a
2. ip addr
從windows去ping一下虛擬機的ip地址
能ping通,說明配置成功,
關機命令:shutdown -h now
六、 打開moba創建新的連接服務
出現以下頁面
(1)你之前ping192.168.1.100成功沒有,沒有這就打不開
(2)如果你是ping192.168.1.128成功,那個這個new session就要連接192.168.1.128
(3)如果虛擬機沒有啟動也是出現下面情況,請直接輸入R就可重繪
我們需要在/opt下面創建兩個檔案夾
(1)software:放軟體的壓縮包
創建software檔案夾的命令:mkdir software
(2)module:放軟體解壓后的檔案夾
(1)切換到software檔案夾下
cd /opt/software
(2)解壓jdk到module檔案夾中
命令
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
(四)配置jdk環境變數(慎重~~)
1.輸入vi /etc/profile
2.Shift+g到最后一行
3.之后esc :wq
4.輸入:source /etc/profile
5.輸入:java -version出現
就成功了
(五)配置hadoop環境變數
(1) 輸入vi /etc/profile
(2) Shift+g到最后一行
(3)然后esc :wq
(4)輸入:source /etc/profile
(5)輸入:hadoop version
一、Hadoop的本地部署使用
目標1:統計一下一個詞出現的次數
- 首先要有包含內容的檔案
在/opt下面創建一個目錄(檔案夾)test
命令:touch test
在/opt/test目錄下面創建input目錄(檔案夾)和output目錄(檔案夾)
命令:touch input
命令:touch output
- 用hadoop去執行這個檔案
切換到/opt/module/hadoop-3.1.3/share/hadoop/mapreduce目錄下
執行檔案:hadoop jar hadoop-mapreduce-examples-3.1.3.jar wordcount /opt/tesd /opt/test/output/count.txt
命令:cat part-r-00000
t/input/ /opt/test/output/count.txt
\3. 查看執行后的結果
命令:c
二、Hadoop的偽分布式部署
‘’’***配置集群環境
(1)修改第一個配置
在/opt/module/hadoop-3.1.3/etc/hadoop目錄下
設定hadoop-env.sh檔案
Vi hadoop-env.sh
命令模式下輸入/搜索JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
(2)修改第二個配置
在/opt/module/hadoop-3.1.3/etc/hadoop目錄下
設定core-site.xml檔案
i core-site.xml
(3)修改第三個配置
在/opt/module/hadoop-3.1.3/etc/hadoop目錄下
設定hdfs-site.xml檔案
Vi hdfs-site.xml
命令:vi hdfs-site.xml
在configuration中指定HDFS的數量
<configuration>
<!-- 指定HDFS副本的數量 -->
<property>
? <name>dfs.replication</name>
? <value>1</value>
</property>
</configuration>
\2. 啟動集群
(1) 格式化namenode
命令:hdfs namenode -format
(2) 啟動namenode
命令:hdfs --daemon start
HDFS是進行存盤的,YARN是進行調度的,
1. 切換到hadoop下面的etc(組態檔都在etc下面)
2. 在hadoop中配置core-site.xml
Vi core-site.xml
指定HDFS中namenode的地址,將命令放到configuration標簽中
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1000:9820</value>
</property>
<!-- 指定Hadoop運行時產生檔案的存盤目錄 -->
<property>
? <name>hadoop.tmp.dir</name>
? <value>/opt/module/hadoop-3.1.3/data/tmp</value>
</property>
</configuration
3. 在hadoop中配置hdfs-site.xml
命令:vi hdfs-site.xml
在configuration中指定HDFS的數量
<configuration>
<!-- 指定HDFS副本的數量 -->
<property>
? <name>dfs.replication</name>
? <value>1</value>
</property>
</configuration>
4. 格式化NameNode(第一次啟動時格式化,以后就不要總格式化)
格式化命令:hdfs namenode –format
5. 啟動namenode
命令:hdfs - -daemon start namenode
6. 啟動datanode
命令:hdfs --daemon start datanode
7. 配置yarn-site.xml
命令:vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- Reducer獲取資料的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1000</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
8. 配置mapred-site.xml
命令:[root@hadoop1000 hadoop]# vi mapred-site.xml
<configuration>
</configuration>
9. 啟動resourcemanager
命令:[root@hadoop1000 hadoop]# yarn --daemon start resourcemanager
10. nodemanager
命令:[root@hadoop1000 hadoop]# yarn --daemon start nodemanager
11. Jsp查看java行程
命令:jsp
12. user/input\
命令:hdfs dfs -mkdir -p /user/input
13. 將檔案上傳到HDFS
命令:hdfs dfs –put 要上傳的檔案名 上傳的地址
案例: hdfs dfs -put wcinput/wc.input /user/input/
14. 查看hdfs的檔案目錄
命令:Hdfs dfs –ls 檔案路徑
注意,這里面的根目錄不是linux的根目錄
案例:hdfs dfs -ls /user/input/
15. 查看hdfs中檔案內容
命令:hdfs dfs –cat 檔案名
案例:hdfs dfs -cat /user/input/wc.input
16. 執行檔案
命令:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount 執行的檔案位置 輸出的檔案位置
案例:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/input /user/output
- 查看執行后的結果
命令:hdfs dfs -cat 輸出檔案路徑/*
案例:
hdfs dfs -cat /user/output/
18.停止行程 hdfsdaemon stop namenode
Hdfs維護了一個抽象的目錄***’’’
Hadoop 完全分布式
1、Namenode:儲存檔案的元資料,
2、Datanode:在本地檔案系統儲存檔案快資料,以及塊資料的效驗和,
3、Secondary Namenode :每個隔一段時間對Namenode元資料備份,
| hadoop1000 | hadoop1001 | hadoop1002 | |
|---|---|---|---|
| HDFS | Namenode Datanode | Datanode | Secondary Namenode |
| YARN | nodemanager | ResourceManger nodemanager | nodemanager |
啟動:
1)啟動hdfs相關
hdfs --daemon start namenode
hdfs --daemon start datanode
2)啟動yarn相關
yarn --daemon start resourcemanager
yarn --daemon start nodemanage
YARN架構
(1)ResourceManager(RM)主要作用
(2)處理客戶端的請求
(3)啟動或監控ApplicationMaster
(4)資源的分配調度
1、集群配置
核心組態檔
配置:hadoop-env.sh(在/opt/module/hadoop-3.1.3/etc/hadoop目錄下)
Linux系統中獲取JDK的安裝路徑:
[soft863@ hadoop1000 ~]# echo $JAVA_HOME
/opt/module/jdk1.8.0_212
在hadoop-env.sh檔案中修改JAVA_HOME 路徑:/ 加內容 查尋
export JAVA_HOME=/opt/module/jdk1.8.0_212
1.配置core-site.xml namenode
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml
檔案內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1000:9820</value>
</property>
<!-- hadoop.data.dir是自定義的變數,下面的組態檔會用到 -->
<property>
<name>hadoop.data.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
</configuration>
2.HDFS組態檔 datanode
配置hdfs-site.xml
vim hdfs-site.xml
檔案內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- namenode資料存放位置 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.data.dir}/name</value>
</property>
<!-- datanode資料存放位置 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.data.dir}/data</value>
</property>
<!-- secondary namenode資料存放位置 -->
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file://${hadoop.data.dir}/namesecondary</value>
</property>
<!-- datanode重啟超時時間是30s,解決兼容性問題,跳過 -->
<property>
<name>dfs.client.datanode-restart.timeout</name>
<value>30</value>
</property>
<!-- 設定web端訪問namenode的地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop1000:9870</value>
</property>
<!-- 設定web端訪問secondary namenode的地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1002:9868</value>
</property>
</configuration>
3.YARN組態檔
配置yarn-site.xml
vim yarn-site.xml
檔案內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1001</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
4.MapReduce組態檔
配置mapred-site.xml
vim mapred-site.xml
檔案內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2、集群分發
scp -r(遞回)(全拷貝)
rsync -av (差異化拷貝)
把/etc/hadoop/目錄拷貝到hadoop1001:
[root@hadoop1000 opt]# cd /opt
[root@hadoop1000 opt]# scp -r hadoop/ root@hadoop1001:/opt/module/hadoop-3.1.3/etc/
把/etc/hadoop/目錄拷貝到hadoop1002:
[root@hadoop1000 opt]# scp -r hadoop/ root@hadoop1002:/opt/module/hadoop-3.1.3/etc/
把 /etc/profile拷貝到hadoop1000 hadoop1001
[root@hadoop1002 opt]# rsync -av /etc/profile hadoop1001:/etc
[root@hadoop1002 opt]# rsync -av /etc/profile hadoop1000:/etc
在hadoop1000和hadoop1001上分別要進行source /etc/profile
[root@hadoop1000 opt]# source /etc/profile
[root@hadoop1001 opt]# source /etc/profile
3、分布式集群格式化
分布式集群第一次啟動之前要格式化
格式化之前,要把三個服務器上的hadoop安裝目錄下的 data目錄和logs目錄都刪掉
[root@hadoop1001 opt]# cd /opt/module/hadoop-3.1.3
[root@hadoop1001 opt]# rm -rf data
[root@hadoop1001 opt]# rm -rf logs
在指定namenode運行的服務器上執行格式化:
(namenode指定在hadoop1000上運行的)
[root@hadoop1000 hadoop-3.1.3]# hdfs namenode –format
ssh免密登錄
1、在每個節點生成公鑰和私鑰,并拷貝
Hadoop1000:
生成公鑰和私鑰
[root@hadoop1000] ssh-keygen -t rsa
然后敲(三個回車)
將公鑰拷貝到要免密登錄的目標機器上
[root@hadoop1000] ssh-copy-id hadoop1000
[root@hadoop1000] ssh-copy-id hadoop1001
[root@hadoop1000] ssh-copy-id hadoop1002
Hadoop1001:
生成公鑰和私鑰
[root@hadoop1001] ssh-keygen -t rsa
然后敲(三個回車)
將公鑰拷貝到要免密登錄的目標機器上
[root@hadoop1001] ssh-copy-id hadoop1000
[root@hadoop1001] ssh-copy-id hadoop1001
[root@hadoop1001] ssh-copy-id hadoop1002
Hadoop1002:
生成公鑰和私鑰
[root@hadoop1002] ssh-keygen -t rsa
然后敲(三個回車)
將公鑰拷貝到要免密登錄的目標機器上
[root@hadoop1002] ssh-copy-id hadoop1000
[root@hadoop1002] ssh-copy-id hadoop1001
[root@hadoop1002] ssh-copy-id hadoop1002
用腳本啟動集群
1、修改hadoop組態檔
在hadoop1000上的start-dfs.sh 和stop-dfs.sh 檔案最上邊添加幾行資料
[root@hadoop1000] cd /opt/module/hadoop-3.1.3/sbin
[root@hadoop1000] vi start-dfs.sh
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
[root@hadoop1000] vi stop-dfs.sh
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
?
在 start-yarn.sh 和 stop-yarn.sh檔案最上方添加幾行資料
[root@hadoop1000] vi start-yarn.sh
[root@hadoop1000] vi stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
在hadoop1000上修改workers:
[root@hadoop1000] cd /opt/module/hadoop-3.1.3/etc/hadoop
[root@hadoop1000] vi workers
hadoop1000
hadoop1001
hadoop1002
把上面的修改同步到hadoop1001、hadoop1002上:
[root@hadoop1000] rsync -av /opt/module/hadoop-3.1.3/sbin/ hadoop1001:/opt/module/hadoop-3.1.3/sbin/
[root@hadoop1000] rsync -av /opt/module/hadoop-3.1.3/sbin/ hadoop1002:/opt/module/hadoop-3.1.3/sbin/
[root@hadoop1000] rsync -av /opt/module/hadoop-3.1.3/etc/hadoop/ hadoop1001:/opt/module/hadoop-3.1.3/etc/hadoop/
[root@hadoop1000] rsync -av /opt/module/hadoop-3.1.3/etc/hadoop/ hadoop102:/opt/module/hadoop-3.1.3/etc/hadoop/
啟動停止集群
啟動集群:
如果集群上已經啟動hadoop相關程式,可以先執行停止,
在hadoop1000上執行以下腳本,用來啟動hdfs:
[root@hadoop1000] start-dfs.sh
在hadoop1001上執行以下腳本,用來啟動yarn:
[root@hadoop1001] start-yarn.sh
停止集群:
在hadoop1000上執行以下腳本,用來停止hdfs:
[root@hadoop1000] stop-dfs.sh
在hadoop1001上執行以下腳本,用來停止yarn:
[root@hadoop1001] stop-yarn.sh
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/374843.html
標籤:其他
上一篇:MySQL性能優化(一)MySQL中SQL陳述句是如何執行的?
下一篇:KMP演算法
