1. 程式人生 > >大資料開發之Hadoop工程師學習筆記(一)

大資料開發之Hadoop工程師學習筆記(一)

第一課:實施Hadoop叢集;CDH家族1.Hadoop大資料:目前軟體和硬體無法處理的資料稱為大資料。Hadoop擅長離線資料分析,有時間差,難以做實時資料處理。檔案系統是半隻讀資料,不能修該,只能追加,隨機讀寫很麻煩。Hadoop不是資料庫,Hbase才是資料庫。兩大板塊:分散式檔案系統+計算框架yarm(平行計算)2.NamenodeHDFS的守護程式。記錄檔案是如何分割成資料塊的,以及這些資料資料塊被儲存到哪些節點上。堆記憶體和I/O進行集中處理。是單個節點,發生故障將使叢集崩潰。3.Secondary Namenode (冗餘Namenode節點)監控HDFS狀態的輔助後臺程式。每個叢集都有一個。與NameNode進行通訊,定期儲存HDFS元資料快照。當NameNode故障可以作為備用NameNode使用。4.DataNode每臺伺服器都執行一個。負責把HDFS資料塊讀到本地檔案系統。5.JobTracker (作業跟蹤器)用於處理作業(使用者提交程式碼)的後臺程式。決定有哪些檔案參與處理,然後切割task並分配節點。監控task,重啟失敗的task(於不同的節點)。每個叢集只有唯一一個JobTracker,位於Master節點。6.TaskTracker(任務跟蹤器)位於slave節點上,與datanode結合(程式碼與資料一起的原則)。管理各自節點上的task(由jobtracker分配)。每個節點只有一個tasktracker,但一個tasktracker可以啟動多個JVM,用於並行執行map或reduce任務。與jobtracker互動。7.ssh免密碼登陸ssh-keygen -t rsa :建立rsa演算法的公鑰和私鑰ls -a :檢視隱藏檔案cd .ssh :存放公鑰和私鑰的目錄id_rsa :私鑰(許可權600)id_rsa.pub :公鑰(許可權644)scp ./id_rsa.pub 使用者名稱@192.168.x.xx:/home/使用者名稱/.ssh/authorized_keys :用scp將公鑰傳送到遠端連線的節點上【注意:本機到本機的ssh也需要配置免密碼,將id_rsa.pub內容拷貝到authorized_keys中即可】8.Hadoop安裝conf:存放所有的配置檔案的資料夾。hadoop目錄下建立三個資料夾,data放資料塊(Slave用),name放源資料(namenode用),tmp存臨時檔案(很重要)。·需修改的檔案:1.hadoop-env.sh:系統環境檔案。在裡面新增java的環境變數JAVA_HOME[export JAVA_HOME=........]2.core-site.xml在configuration中間加引數<configuration><property><name>fs.default.name</name><value>hdfs://backup01:9000</value><property><name>hadoop.tmp.dir</name>【指定臨時路徑】<value>/home/使用者名稱/hadoop檔名/tmp</value></property></configuration>ps:backup01是主機名,需要在host檔案裡面將主機名對映為IP地址。3.hdfs-site.xml在configuration中間加引數<configuration><property><name>dfs.replication</name>【hdfs的複製因子】<value>2</value>【複製幾份,1為不復制,有多少個slave節點複製多少分】</property></configuration>4.mapred-site.xml在configuration中間加引數<configuration><property><name>mapred.job.tracker</name>【指定job.tracker地址和監聽埠】<value>backup01:9001</value>【backup01主機名,host中對映IP地址,9001埠號】</property></configuration>5.masters 此檔案是修改充當master的主機名backup016.slaves 此檔案是修改充當slave的主機名backup027./etc/hosts 對映主機名和IP地址192.168.0.2 backup01192.168.0.4 backup02·因為hadoop安裝masters機和slaves機的配置是一樣的,所以只需要scp複製過去就行。scp -r 檔案地址
[email protected]
目的IP:/root/home修改slave機的host檔案·格式化名稱節點bin/hadoop namenode -format (此命令在hadoop的目錄下,執行完後出現has been successful formatted即成功格式化)·啟動hadoop啟動前檢查程序:..jdk路徑/bin/jps【記得關閉防火牆】如有程序需kill: kill -9 程序號啟動hadoop整個程序:bin/start-all.sh master機上有JobTracker和NameNode程序,slave機上有TaskTracker和DataNode程序。9.Hadoop相關部署·以下命令在centOs中執行。1.yum install svn2.yum install antoconfautomake libtool cmake3.yum install ncurses-devel4.yum install openssl-devel5.yum install gcc*·安裝maven(注意適配hadoop的版本)1.下載maven包2.解壓移動到一個公眾資料夾(例如./maven/usr/local)3.將maven路徑加入到path中。·安裝protobuf:google用於資料交換的軟體,如果不裝可能在安裝hadoop中有命令無法識別。2.tar xzvf ./protobuf-2.5.0.tar.gz 3.cd protobuf-2.5.0 全是原始碼,需要進行編譯4../configure 根據機器目前的情況進行檢測,產生一個編譯檔案makefile5.make6.make check7.make install8.編譯完後,在/usr/local/bin中出現檔案protoc,編譯時需要用到。此路徑需要加入到path中。·hadoop安裝2.編譯 mvn package -Pdist,native -DskipTests -Dtar
mvn:maven; dist:放到distination的目錄中,在pom.xml中指定; native: 編譯本地庫; skipTests: 跳過一些中間細節; tar: 生成一個tar包。(編譯過程大概一個小時)3.生成了hadoop-2.3.0資料夾。·hadoop測試1.在根目錄下建立子目錄input,在input中新增兩個文字測試檔案,echo "hello world" > test1.txtecho "hello hadoop" > test2.txt2.將input下的檔案拷貝到hadoop中。【注】:hadoop沒有當前目錄,只可使用全目錄。cd hadoop-1.1.2bin/hadoop fs -ls 檢視hadoop目錄下的檔案。bin/hadoop fs -put ../input ./in 將input中的內容put到hadoop目錄的in目錄下。bin/hadoop fs -ls ./in/* 檢視in目錄下的所有檔案。bin/hadoop jar hadoop-examples-1.1.2.jar wordcount in out[bin/hadoop 路徑][jar 標識執行jar包內的東西][hadoop-examples-1.1.2.jar jar包的名稱][wordcouint jar包內需要使用的函式的名稱][in 原始檔存放地址][out 輸出檔案存放地址]bin/hadoop fs -ls ./out 開啟out輸出資料夾。bin/hadoop fs -cat ./out/part-r-00000 檢視輸出的結果。如果結果和預測是一樣的,表示hadoop的作業系統可以正常工作。3.通過web瞭解Hadoop的活動http訪問jobtracker所在的節點50030埠監控jobtracker。http訪問namenode所在節點的50070埠監控叢集。·Hadoop版本的演進Append:支援檔案追加功能,如果想使用HBase,需要這個特性。RAID:在保證資料可靠的前提下,通過引入校檢碼減少資料塊的數目。Symlink:支援HDFS檔案連結。Security:Hadoop安全性。NameNode HA:HDFS Federation:YARN:2010年第一版:0.20.2 經典版本,穩定可用於生產環境。0.21.0 測試版本,不包含安全性,不可用於生產。2011年0.20.203 包含security,但不包含append,RAID或者NameNode HA,穩定可用於生產,yahoo曾使用過。0.20.205 對上個版本的改進,在security的基礎上增加了append,有穩定版可使用。0.22.0 僅考慮檔案的安全性,沒有考慮檔案系統的安全性。不可用於生產。0.23.0 上一個版本的改進。不可用於生產。2012年1.0.1~1.0.4 是0.20.205的改名,主要實現了bug修復和效能改進。穩定可使用。2.00-alpha~2.0.2-alpha 是0.23.0版本的改名,特性和23差不多,是alpha版本,暫無穩定版,不支援企業使用。版本下載連結:http://svn.apache.org/repos/asf/hadoop/common/branches/,可直接匯入到eclipse中。