hadoop+hbase+zookeeper叢集安裝方法

五柳-先生發表於2015-11-25
  1.  最近公司搭建hadoop+hbase+zookeeper叢集,期間遇到了許多問題,這裡和大家分享一下安裝的一些經驗,目的在於大家在部署hadoop叢集環境中少走一些彎路:  
  2. 由於剛開始的時候我用虛擬機器安裝,安裝版本是hadoop0.20.2+hbase0.90.3+zookeeper3.3.3版本,在測試hbase叢集的時候hmaster不能正常啟動或者是啟動後程式自殺(在網上找到的答案應該是虛擬機器的記憶體小,不支援0.90.x以後的hbase版本啟動hmaster),最後hbase換成0.20.6或者是0.89.X版本的測試沒有問題;  
  3. hadoop的下載地址http://archive.apache.org/dist/hadoop/common/  
  4. hbase的下載地址:http://archive.apache.org/dist/hbase/  
  5. zookeeper的下載地址:http://archive.apache.org/dist/hadoop/zookeeper/  
  6. 1、 我的主機配置如下:(新增到/etc/hosts檔案裡面)    
  7. 192.168.0.211 master  (用於叢集主機提供hmaster namenode jobtasker服務 )  
  8. 192.168.0.212 s1      (用於叢集叢機提供regionsrever datanode  tasktacuter服務)  
  9. 192.168.0.213 s2  
  10.  
  11. 2、安裝jdk1.6.2.X  
  12.  
  13. 3、新增java環境變數(/etc/profile),後執行source /etc/profile ,使環境變數立即生效  
  14. export JAVA_HOME=/usr/java/jdk1.6.0_26/  
  15. export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  
  16. export PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin  
  17. export HADOOP_HOME=/home/hadoop/hadoop  
  18. export HBASE_HOME=/home/hadoop/hbase  
  19. PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin  
  20.  
  21. 4、在三臺電腦上新增hadoop使用者   
  22.  
  23. useradd hadoop  
  24.  
  25. 5、在/home/hadoop/.bashrc新增變數  
  26. (將hadoop hbase的配置檔案放到hadoop安裝包根目錄檔案下,目的在於以後升級hadoop和hbase的時候不用重新匯入配置檔案)  
  27.                  
  28. export HADOOP_CONF_DIR=/home/hadoop/hadoop-config  
  29. export HBASE_CONF_DIR=/home/hadoop/hbase-config  
  30.  
  31. 6、將hadoop hbase zookepper的安裝包解壓到/home/hadoop/下,並重新命名為hadoop hbase zookepper,在home/hadoop/下建立hadoop-config和hbase-config資料夾,並且將home/hadoop/hadoop/conf下的masters、slaves、core-site、mapred-sit、hdfs-site、hadoop-env拷貝到此資料夾,將home/hadoop/hbase/conf下的hbase-site和hbase-env.sh拷貝到次資料夾。  
  32.  
  33. 7、修改masters、slaves檔案:  
  34.  分別為 master 和s1與s2  
  35.  
  36. 8、修改hadoop-env.sh的變數:  
  37.                
  38. export JAVA_HOME=/usr/java/jdk1.6.0_26/  
  39. export HADOOP_PID_DIR=/home/hadoop/hadoop/tmp  
  40.           
  41. 9、修改core-site.xml  
  42.                         
  43. <configuration> 
  44. <property> 
  45. <name>fs.default.name</name> 
  46. <value>hdfs://master:9000</value> 
  47. </property> 
  48. </configuration> 
  49.  
  50. 修改mapred-site.xml  
  51.  
  52. <configuration> 
  53. <property> 
  54.    <name>mapred.job.tracker</name> 
  55.    <value>hdfs://master:9001/</value> 
  56. </property> 
  57.  
  58. </configuration> 
  59.  
  60. 修改hdfs-site.xml(name和data資料夾不要手動建立)  
  61. <configuration> 
  62. <property> 
  63. <name>dfs.name.dir</name> 
  64. <value>/home/hadoop/hadoop/name</value> 
  65. </property> 
  66. <property> 
  67. <name>dfs.data.dir</name> 
  68. <value>/home/hadoop/hadoop/data/</value> 
  69. </property> 
  70. <property> 
  71.    <name>dfs.replication</name> 
  72.    <value>3</value> 
  73. </property> 
  74.  
  75. 10、設定master, s1, s2  機幾臺器之間無密碼訪問:  
  76.             (網上有許多文章,這裡就不寫了 )  
  77.  
  78. 11、scp -r /home/hadoop/hadoop     s1:/home/hadoop  
  79.  scp -r /home/hadoop/hadoop     s2:/home/hadoop  
  80.  
  81. 12、切換到/home/hadoop/hadoop目錄下  
  82. 執行bin/hadoop namenode -format(格式化master主機生成name data tmp等資料夾)  
  83.  
  84.  13、啟動namenode   
  85.  執行 bin/start-dfs.sh  
  86.  
  87. 使用jps命令檢視nomenode、secondnamenode是否正常啟動:  
  88. ie裡面輸入http://master:50070 檢視namenode的相關配置資訊、執行狀態和日誌檔案  
  89.  
  90. 14、啟動mapred  
  91. 執行 bin/start-mapred.sh  
  92.  使用jps命令檢視nomenode、secondnamenode是否正常啟動:  
  93. ie裡面輸入http://master:50030  檢視jobtasker的相關配置資訊、執行狀態和日誌檔案  
  94.  
  95. hbase+zookeeper叢集搭建:  
  96.  
  97. 1、將/home/hadoop/hadoop/conf/目錄下的hbase-site.xml、regionserver和hbase-env.sh拷貝到/home/hadoop/hbase-config/目錄下;  
  98. 編輯hbase-site.xml配置檔案,如下:  
  99. <property> 
  100. <name>hbase.rootdir</name> 
  101. <value>hdfs://master:9000/hbase</value> 
  102. </property> 
  103. <property> 
  104. <name>hbase.cluster.distributed</name> 
  105. <value>true</value> 
  106. </property> 
  107. <property> 
  108. <name>hbase.master</name> 
  109. <value>master</value> 
  110. </property> 
  111. <property> 
  112. <name>hbase.zookeeper.quorum</name> 
  113. <value>s1,s2</value> 
  114. </property> 
  115. <property> 
  116. <name>zookeeper.session.timeout</name> 
  117. <value>60000000</value> 
  118. </property> 
  119. <property> 
  120. <name>hbase.zookeeper.property.clientport</name> 
  121. <value>2222</value> 
  122. </property> 
  123.  
  124. 2、編輯regionserver檔案  
  125.  
  126. S1  
  127. S2  
  128.  
  129. 3、編輯hbase-env.xml檔案  
  130.  
  131. export JAVA_HOME=/usr/java/jdk1.6.0_26/  
  132. export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  
  133. export PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin  
  134. export HADOOP_HOME=/home/hadoop/hadoop  
  135. export HBASE_HOME=/home/hadoop/hbase  
  136. export HBASE_MANAGES_ZK=true 
  137. export PATH=$PATH:/home/hadoop/hbase/bin  
  138.  
  139. 4、scp -r /home/hadoop/hbase     s1:/home/hadoop  
  140.      scp -r /home/hadoop/hbase    s2:/home/hadoop  
  141.  
  142. 5、進入/home/hadoop/zookeeper/conf/中  
  143.  
  144. (1)cp    zoo_sample.cfg    zoo.cfg  
  145.  
  146. (2)vim zoo.cfg,如下:  
  147.  
  148. # The number of milliseconds of each tick  
  149. tickTime=2000 
  150. # The number of ticks that the initial  
  151. # synchronization phase can take  
  152. initLimit=10 
  153. # The number of ticks that can pass between  
  154. # sending a request and getting an acknowledgement  
  155. syncLimit=5 
  156. # the directory where the snapshot is stored.  
  157. dataDir=/home/hadoop/zookeeper/data  
  158. # the port at which the clients will connect  
  159. clientPort=2181 
  160. server.1=s1:2888:3888  
  161. server.2=s2:2888:3888  
  162.  
  163. (3)touch myid  
  164.  
  165. 編輯:1(此序號設定和zoo.cfg裡面的server設定要對應)  
  166. scp -r /home/hadoop/zookeeper   s1:/home/hadoop  
  167. scp -r /home/hadoop/zookeeper  s2:/home/hadoop  
  168.  
  169. (4)在所有的節點執行chown -R hadoop.hadoop /home/hadoop  
  170.  
  171. 啟動hbase叢集:  
  172.  
  173. (1)/home/hadoop/hbase/bin/start-base.sh  
  174.  
  175. (2)執行jps顯示Hmaster是否啟動  
  176.  
  177. (3)執行bin/hbase shell  
  178.  
  179.   (4)>create 't1' t2'' 't3'(測試利用hmaster插入資料)  
  180.     > list (顯示已經插入的資料)  
  181.     >t1+t2+t3  
  182.  
  183. 輸入:http://master:60010  

相關文章