您好,登錄后才能下訂單哦!
hadoop是一個分布式文件系統(Hadoop Distributed File System)HDFS。Hadoop是一個能夠對大量數據進行分布式處理的軟件框架。 Hadoop 以一種可靠、高效、可伸縮的方式進行數據處理。Hadoop 是可靠的,因為它假設計算元素和存儲會失敗,因此它維護多個工作數據副本,確保能夠針對失敗的節點重新分布處理。Hadoop帶有用Java語言編寫的框架。
Hadoop的master節點包括名稱節點、從屬名稱節點和 jobtracker 守護進程以及管理集群所用的實用程序和瀏覽器。slave節點包括 tasktracker 和數據節點.主節點包括提供 Hadoop 集群管理和協調的守護進程,而從節點包括實現Hadoop 文件系統(HDFS)存儲功能和 MapReduce 功能(數據處理功能)的守護進程。
Namenode 是 Hadoop 中的主服務器,通常在 HDFS 實例中的單獨機器上運行的軟件,它管理文件系統名稱空間和對集群中存儲的文件的訪問。每個 Hadoop 集群中可以找到一個 namenode和一個secondary namenode。。當外部客戶機發送請求要求創建文件時,NameNode 會以塊標識和該塊的第一個副本的 DataNode IP 地址作為響應。這個 NameNode 還會通知其他將要接收該塊的副本的 DataNode。
JobTracker是一個master服務,軟件啟動之后JobTracker接收Job,負責調度Job的每一個子任務task運行于TaskTracker上,并監控它們,如果發現有失敗的task就重新運行它。
TaskTracker是運行在多個節點上的slaver服務。TaskTracker主動與JobTracker通信,接收作業,并負責直接執行每一個任務。TaskTracker都需要運行在HDFS的DataNode上.
NameNode、Secondary ,NameNode、JobTracker運行在Master節點上,而在每個Slave節點上,部署一個DataNode和TaskTracker,以便 這個Slave服務器運行的數據處理程序能盡可能直接處理本機的數據。
server2.example.com 172.25.45.2 (master)
server3.example.com 172.25.45.3 (slave)
server4.example.com 172.25.45.4 (slave)
server5.example.com 172.25.45.5 (slave)
hadoop傳統版的配置:
server2,server3,server4和server5添加hadoop用戶:
useradd -u 900 hadoop
echo westos | passwd --stdin hadoop
server2:
sh jdk-6u32-linux-x64.bin ##安裝JDK
mv jdk1.6.0_32/ /home/hadoop/java
mv hadoop-1.2.1.tar.gz /home/hadoop/
su - hadoop
vim .bash_profile
export JAVA_HOME=/home/hadoop/java export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
source .bash_profile
tar zxf hadoop-1.1.2.tar.gz ##配置hadoop單節點
ln -s hadoop-1.1.2 hadoop
cd /home/hadoop/hadoop/conf
vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/java
cd ..
mkdir input
cp conf/*.xml input/
bin/hadoop jar hadoop-examples-1.1.2.jar
bin/hadoop jar hadoop-examples-1.1.2.jar grep input output 'dfs[a-z.]+'
cd output/
cat *
1 dfsadmin
設置master到slave端無密碼登陸:
server2:
su - hadoop
ssh-keygen
ssh-copy-id localhost
ssh-copy-id 172.25.45.3
ssh-copy-id 172.25.45.4
cd /home/hadoop/hadoop/conf
vim core-site.xml ##指定 namenode
<property> <name>fs.default.name</name> <value>hdfs://172.25.45.2:9000</value> </property>
vim mapred-site.xml ##指定 jobtracker
<configuration> <property> <name>mapred.job.tracker</name> <value>172.25.45.2:9001</value> </property> <configuration>
vim hdfs-site.xml ##指定文件保存的副本數
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <configuration>
cd ..
bin/hadoop namenode -format ##格式化成一個新的文件系統
ls /tmp
hadoop-hadoop hsperfdata_hadoop hsperfdata_root yum.log
bin/start-dfs.sh ##啟動hadoop進程
jps
bin/start-mapred.sh
jps
在瀏覽器中打開:172.25.45.2:50030
打開172.25.45.2:50070
bin/hadoop fs -put input test ##給分布式文件系統考入新建的文件
bin/hadoop jar hadoop-examples-1.2.1.jar wordcount output
同時在網頁中
查看網頁中上傳的文件:
bin/hadoop fs -get output test
cat test/*
rm -fr test/ ##刪除下載的文件
2. server2:
共享文件系統:
su - root
yum install nfs-utils -y
/etc/init.d/rpcbind start
/etc/init.d/nfs start
vim /etc/exports
/home/hadoop *(rw,anonuid=900,anongid=900)
exportfs -rv
exportfs -v
server3和server4:
yum install nfs-utils -y
/etc/init.d/rpcbind start
showmount -e 172.25.45.2 ##
Export list for 172.25.45.2:
/home/hadoop *
mount 172.25.45.2:/home/hadoop /home/hadoop/
df
server2:
su - hadoop
cd hadoop/conf
vim hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
vim slaves ##slave端的ip
172.25.45.3 172.25.45.4
vim masters ##master端的ip
172.25.45.2
提示:##如果還有之前的進程開著,必須先關閉,才能再進行格式化,保證jps沒有什么進程運行
關閉進程的步驟
bin/stop-all.sh ##執行完之后,有時tasktracker,datanode會開著,所以要關閉它們
bin/hadoop-daemon.sh stop tasktracker
bin/hadoop-daemon.sh stop datanode
以hadoop用戶的身份刪除/tmp里的文件,沒有權限的文件就留著
su - hadoop
bin/hadoop namenode -format
bin/start-dfs.sh
bin/start-mapred.s
bin/hadoop fs -put input test ##
bin/hadoop jar hadoop-examples-1.2.1.jar grep test output 'dfs[a-z.]+' ##
一邊上傳一邊在瀏覽器中打開172.25.45.2:50030中觀察會發現有正在上傳的文件
su - hadoop
bin/hadoop dfsadmin -report
dd if=/dev/zero of=bigfile bs=1M count=200
bin/hadoop fs -put bigfile test
在瀏覽器中打開172.25.45.2:50070
3.新加server5.example.com 172.25.45.5 作為新的slave端:
su - hadoop
yum install nfs-utils -y
/etc/init.d/rpcbind start
useradd -u 900 hadoop
echo westos | passwd --stdin hadoop
mount 172.25.45.2:/home/hadoop/ /home/hadoop/
su - hadoop
vim hadoop/conf/slaves
172.25.45.3 172.25.45.4 172.25.45.5
cd /home/hadoop/hadoop
bin/hadoop-daemon.sh start datanode
bin/hadoop-daemon.sh start tasktracker
jps
刪除一個slave端:
server2:
su - hadoop
cd /home/hadoop/hadoop/conf
vim mapred-site.xml
<property> <name>dfs.hosts.exclude</name> <value>/home/hadoop/hadoop/conf/datanode-excludes</value> </property>
vim /home/hadoop/hadoop/conf/datanode-excludes
172.25.45.3 ##刪除172.25.45.3不作為slave端
cd /home/hadoop/hadoop
bin/hadoop dfsadmin -refreshNodes ##刷新節點
bin/hadoop dfsadmin -report ##查看節點狀態,會發現server3上的數據轉移到serve5上
在server3上:
su - hadoop
bin/stop-all.sh
cd /home/hadoop/hadoop
bin/hadoop-daemon.sh stop tasktracker
bin/hadoop-daemon.sh stop datanode
server2:
vim /home/hadoop/hadoop/conf/slaves
172.25.45.4
172.25.45.5
4. 配置新版的hadoop:
server2:
su - hadoop
cd /home/hadoop
tar zxf jdk-7u79-linux-x64.tar.gz
ln -s jdk1.7.0_79/ java
tar zxf hadoop-2.6.4.tar.gz
ln -s hadoop-2.6.4 hadoop
cd /home/hadoop/hadoop/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/java export HADOOP PREFIX=/home/hadoop/hadoop
cd /home/hadoop/hadoop
mkdir inp
cp etc/hadoop/*.xml input
tar -tf hadoop-native-64-2.6.0.tar
tar -xf hadoop-native-64-2.6.0.tar -C hadoop/lib/native/
cd /home/hadoop/hadoop
rm -fr output/
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep input output 'dfs[a-z.]+'
cd /hone/hadoop/hadoop/etc/hadoop/
vim slaves
172.25.45.3 172.25.45.4
vim core-site.xm
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://172.25.45.2:9000</value> </property> </configuration>
vim mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>172.25.45.2:9001</value> </property> <configuration>
vim hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
cd /home/hadoop/hadoop
bin/hdfs namenode -format
sbin/start-dfs.sh
jps
bin/hdfs dfs -mkdir /user/hadoop ##要上傳的文件,必須在上傳之前新建出其目錄
bin/hdfs dfs -put input/ test
rm -fr input/
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep test output 'dfs[a-z.]+'
bin/hdfs dfs -cat output/*
1dfsadmin
在瀏覽器中打開172.25.45.2:50070
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。