hadoop 入門
hadoop的邏輯結構
準備工作
1,安裝xshell,xftp
2,虛擬機器若干(可以先配置好一臺,其他的複製)
pc | 主機名 | IP |
---|---|---|
1 | master | 192.168.56.100 |
2 | slave1 | 192.168.56.101 |
3 | slave2 | 192.168.56.102 |
4 | slave3 | 192.168.56.103 |
配置好master,開啟xshell連線到master,將hadoop-2.7.3.tar和jdk-8u91-linux-x64上傳到maser的/usr/local中。
# cd /usr/local && ls //檢視上傳的兩個檔案是否在該資料夾中
# rpm -ivh jdk-8u91-linux-x64.rpm //安裝jdk-8u91-linux-x64.rpm
# tar -xvf hadoop-2.7.3.tar.gz //解壓 Hadoop
# mv hadoop-2.7.3 hadoop
# cd hadoop/etc/hadoop
# vi hadoop-env.sh //路徑/usr/local/hadoop/etc/hadoop
//將export JAVA_HOME=${JAVA_HOME}
換成export JAVA_HOME=/usr/java/default
# vi /etc/profile
//在最後一行插入
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
# source /etc/profile
# shutdown -h now
關閉master,將其另外複製三臺(slave1,slave2,slave3)分別修改他們的主機名與IP,使得他們在同一網段,相互之間能ping通。
用xshell連線所有虛擬機器
xshell-->工具-->傳送鍵輸入到所有回話(即當多臺虛擬機器都輸入相同的命令是,只需在一臺虛擬機器上輸入一次)
# cd /usr/local/hadoop/etc/hadoop
# vi core-site.xml
//在倒數第二行插入指令碼
<property>
<name>fs.defaultFS</name>;
<value>hdfs://master:9000</value>;
</property>
# vi /etc/hosts
//插入文字
192.168.56.100 master
192.168.56.101 slave1
192.168.56.102 slave2
192.168.56.103 slave3
僅在master中啟動namenode
# hdfs namenode -format //格式化namenode
# hadoop-daemon.sh start namenode //啟動namenode
# jps
2540 NameNode //啟動成功
在其他的slave中啟動DataNodels
# hadoop-daemon.sh start datanode //啟動datanode
# jps
2286 DataNode //啟動成功
master:
# netstat -ntlp //檢視網路相關資訊
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.56.100:9000 0.0.0.0:* LISTEN 1984/java
tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 1984/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 808/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1922/master
tcp6 0 0 :::22 :::* LISTEN 808/sshd
tips:在宿主機的瀏覽器上瀏覽192.168.56.100:50070顯示可以看到hadoop的外部介面。
關閉叢集(master上關閉namenode,slave上關閉datanode)
在master上輸入:
# hadoop-daemon.sh stop namenode
# jps
2115 Jps //現在的Java程式中已經沒有namenode表示關閉成功
同理在其他的slave上輸入:
# hadoop-daemon.sh stop datanode
# jps
10199 Jps
如果我們有上千臺slave,通過上面的管理固然是不方便的,所以我們需要對叢集進行集中管理。
在master中修改slaves在裡面新增上你所有的slave (slaves的路徑:/usr/local/hadoop/etc/hadoop)
# cd /usr/local/hadoop/etc/hadoop
# vi slaves
插入:
slave1
slave2
slave3
tips:在master中輸入命令,這個命令讀取slaves裡的列表,然後它會把這個命令傳送到列表裡的所有slave中。
# start-dfs.sh //啟動叢集。
tisp:輸入密碼(master和所有的slave的密碼)。
用jps命令檢查master的namenode和所有slave的datanode是否啟動。
使用ssh免密登入:
# cd
# cd .ssh && ls
known_hosts //裡面只有一個檔案。
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
30:a3:44:17:d3:aa:63:51:65:f3:97:34:ee:5d:49:4c root@master
The key's randomart image is:
+--[ RSA 2048]----+
| . +++ o oE |
| . ..o.o o o...|
| ..+. . + ..|
| ....+ o . . |
| .o S . . |
| + |
| . . |
| |
| |
+-----------------+
#ls
id_rsa id_rsa.pub known_hosts //裡面多了id_rsa id_rsa.pub。
tips: id_rsa是當前root使用者的私鑰,id_rsa.pub是公鑰。
將公鑰拷貝到所有的slave中
# ssh-copy-id slave1
passwd: //輸入slave1的密碼。
# ssh-copy-id slave2
passswd:
# ssh-copy-id slave3
passwd:
# ssh-copy-id master //本機也得拷貝一份。
passwd:
tips:這時所有的slave和master的~/.ssh中都多了一個authorized_keys檔案。
# stop-dfs.sh //關閉叢集。
Stopping namenodes on [master]
master: stopping namenode
slave3: stopping datanode
slave1: stopping datanode
slave2: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode //namenode和datanode已經全部停了,可以用jps檢視。
# start-dfs.sh //重新啟動叢集,這時將不再需要輸入密碼。
# hadoop fs -ls / //檢視HTFS根目錄的當前結構。這個時候該路徑下是空的。
找一個相對大一點的檔案上傳到上面的這個根目錄下進行驗證。(這裡用/usr/local下的hadoop-2.7.3.tar.gz驗證)
tisp:在瀏覽器中瀏覽192.168.56.100:50070-->Utilities-->Browse the file system-->hadoop-2.7.3.tar.gz可以看到驗證結果。
# cd /usr/local
# hadoop fs -put ./hadoop-2.7.3.tar.gz /
# hadoop fs -ls / //這時這個HTFS根目錄下就多了一個檔案(hadoop-2.7.3.tar.gz)。
# cd /usr/local/hadoop/etc/hadoop
# vi hdfs-site.xml
最後第二行插入:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
tisp:將一個檔案的2塊,分別備份2份。
重啟叢集:
# stop-dfs.sh
# start-dfs.sh
# cd /usr/local
# hadoop fs -put jdk-8u91-linux-x64.rpm / //上傳檔案,驗證。
如果有一臺slave壞了,它會自動把該臺slave中的檔案備份到其他的slave中:
# cd /usr/local/hadoop/etc/hadoop
# vi hdfs-site.xml
在倒數第二行插入:
<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>10000</value>
</property>
# stop-dfs.sh
# start-dfs.sh
在slave3中使用hadoop-daemon.sh stop datanode把datanode關掉。
在瀏覽器中瀏覽192.168.56.100:50070-->Datanode確定slave3已經被down掉,在Utilities-->Browse the file system-->jdk-8u91-linux-64.rpm中確定該檔案的2塊備份都備份在slave1和slave2中。
相關文章
- Hadoop快速入門Hadoop
- Apache Hadoop 入門教程ApacheHadoop
- Hadoop入門系列(2)-安裝HadoopHadoop
- Hadoop 專欄 - MapReduce 入門Hadoop
- Hadoop的HDFS 入門使用Hadoop
- Hadoop 基礎之 HDFS 入門Hadoop
- 菜鳥的Hadoop快速入門Hadoop
- Hadoop的HDFS架構入門Hadoop架構
- Hadoop 入門筆記—核心元件 MapRuduceHadoop筆記元件
- Hadoop 入門筆記—核心元件 HDFSHadoop筆記元件
- Hadoop 入門筆記—核心元件 YARNHadoop筆記元件Yarn
- hadoop hive hbase 入門學習 (三)HadoopHive
- Hadoop入門(一)之Hadoop偽分散式環境搭建Hadoop分散式
- 大資料hadoop入門之hadoop家族產品詳解大資料Hadoop
- Hadoop入門(二)之 HDFS 詳細解析Hadoop
- Hadoop入門和大資料應用Hadoop大資料
- 寫給後端的Hadoop初級入門教程:Hadoop組成部分。後端Hadoop
- 快速構建Hadoop的入門練手環境Hadoop
- Hadoop框架:MapReduce基本原理和入門案例Hadoop框架
- 大資料入門:Hadoop Yarn元件基礎解析大資料HadoopYarn元件
- Hadoop基礎入門之發行版本的選擇Hadoop
- Hadoop v3.1 大資料技術快速入門Hadoop大資料
- 手把手教你入門Hadoop(附程式碼&資源)Hadoop
- Ambari,hadoop的配置,管理和監控專案入門Hadoop
- 大資料技術之Hadoop(入門)第3章 Hadoop執行環境搭建大資料Hadoop
- Hadoop2.6.0從入門到精通系列之Hadoop 單節點安裝與配置Hadoop
- 寫給後端的Hadoop初級入門教程:概念篇後端Hadoop
- hadoop大資料平臺安全基礎知識入門Hadoop大資料
- Hadoop大資料探勘從入門到進階實戰Hadoop大資料
- 大資料hadoop 新手快速入門經典視訊教程大資料Hadoop
- 大資料入門學習之Hadoop技術優缺點大資料Hadoop
- 初學者入門大資料,學習Hadoop的5個理由大資料Hadoop
- 大資料入門課程:Hadoop和spark的效能比較大資料HadoopSpark
- 入門入門入門 MySQL命名行MySql
- hadoop零基礎入門教程--DKHadoop完整安裝步驟Hadoop
- Spark新手入門——2.Hadoop叢集(偽分佈模式)安裝SparkHadoop模式
- 大資料技術之Hadoop(入門) 第2章 從Hadoop框架討論大資料生態大資料Hadoop框架
- Hadoop進入2.0時代Hadoop