hadoop/hbase/hive單機擴增slave

原來只有一臺機器,hadoop,hbase,hive都安裝在一臺機器上,如今又申請到一臺機器,領導說作成主備,html

要從新配置嗎?仍是原來的不動,把新增的機器作成slave,原來的看成master?網上找找應該有這種配置操做,先試試看java

 

原來搭單機hadoop,單機hadoop搭建node

原來搭建單機hbase,單機hbase搭建vim

原來搭建單機zookeeper三個節點,單機僞zookeeper集羣瀏覽器

 

1.申請到機器了,先把主機名改爲slavebash

vim /etc/sysconfig/networkssh

HOSTNAME=slaveoop

 

2.添加2臺機器信任關係測試

1),進入master機器的/root/.ssh目錄,spa

檢查該目錄下是否有id_rsa和id_rsa.pub文件,

若是沒有,執行ssh-keygen -t rsa 命令,生成私鑰和公鑰。

 

2)在主機master中添加本身的私鑰:ssh-add  id_rsa
    注:不少介紹中都少了第二步,因此常常出現測試時不經過的情形。
           ssh-add id_rsa                
           # 若是提示 could not open a connection to your authentication agent
           終端作以下操做:
           ssh-agent bash
           ssh-add id_rsa


3)將主機master中的公鑰id_rsa.pub拷貝到主機slave的.ssh目錄下,authorized_keys文件中。

scp -r /root/.ssh/id_rsa.pub 192.168.1.197:/root/.ssh/authorized_keys

 

4)將主機slave 中的authorized_keys改成只有當前用戶有讀寫權限:chmod 600 authorized_keys

 

5)在master中登陸slave

>ssh 192.168.1.197  果真不須要密碼直接登陸了

將id_rsa.pub加入到受權的key中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

就能夠本身登陸本身了:

> ssh master   

 

6)在slave機器中生成私鑰和公鑰

進入slave機器的/root/.ssh目錄,

檢查該目錄下是否有id_rsa和id_rsa.pub文件,

若是沒有,執行ssh-keygen -t rsa 命令,生成私鑰和公鑰

 

7)在主機slave中添加本身的私鑰:ssh-add  id_rsa
    注:不少介紹中都少了第二步,因此常常出現測試時不經過的情形。
           ssh-add id_rsa                
           # 若是提示 could not open a connection to your authentication agent
           終端作以下操做:
           ssh-agent bash
           ssh-add id_rsa

 

8)將主機slave中的公鑰id_rsa.pub拷貝到主機master的.ssh目錄下,authorized_keys文件中。

scp -r /root/.ssh/id_rsa.pub 192.168.1.166:/root/.ssh/authorized_keys

 

9)在slave主機上登陸master

>ssh 192.168.1.166  果真不須要密碼

 

3.將master上安裝配置的hadoop拷貝到slave上一份

scp -r /hadoop root@ 192.168.1.197:/

修改slave:/hadoop/hadoop-2.8.4/etc/hadoop中相關配置文件

1)hadoop-env.sh  不改

 

2)yarn-env.sh     不改

 

3)修改 core-site.xml文件

<configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/root/hadoop/tmp</value>
                <description>hadoop tmp dir</description>
        </property>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://slave:9000</value>
        </property>
</configuration>

 

4)hdfs-site.xml  不改,但要建立

 

/root/hadoop/dfs/name 
/root/hadoop/dfs/data
目錄

 5)修改mapred-site.xml

<property>
    <name>mapred.job.tracker</name>
    <value>slave:9001</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/root/hadoop/var</value>
</property>
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>

 

6)修改slaves

>vi slaves

master

slave

  

 

4.master和slave配置

在master和slave上都配置hosts

>vi  /etc/hosts 內容以下

192.168.1.166 master
192.168.1.197 slave

  

發現slave機器上的java版本跟master不一樣,把master上安裝的java拷貝到slave上,配置下環境變量就OK

 

5.hadoop集羣如何啓動?

進入master:/hadoop/hadoop-2.8.4/sbin目錄

>start-dfs.sh   啓動HDFS  由於以前已經格式化了,不用再格式化 

             此命令會啓動(master)本機上namenode 、datanode、secondarynamenode 和slave上的datanode 

>start-yarn.sh  啓動yarn集羣  此命令會先啓動本地(master)的resourcemanager,在遠程到slave上啓動nodemanager。

 

本覺得啓動成功了,瀏覽器訪問,發現只有一個節點,是否是從節點slave沒啓動起來呢?

只能繼續檢查配置文件,一項項檢查

1)hadoop-env.sh  不用改,只配置export JAVA_HOME

2)core-site.xml要修改,看錯了,原來單機配置

單機配置:
<property>   <name>fs.default.name</name> <value>hdfs://master:9000</value> </property>
集羣配置:
<property>
  <name>fs.defaultFS</name>
   <value>hdfs://master:9000</value>
</property>
對應的slave要修改爲:
<property>
  <name>fs.defaultFS</name>
   <value>hdfs://slave:9000</value>
</property>

3)hdfs-site.xml  不修改

4)mapred-site.xml 修改  master / slave 對應主機上修改下:

<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>slave:9001</value>
        </property>
        <property>
                <name>mapred.local.dir</name>
                <value>/root/hadoop/var</value>
        </property>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

  

5)yarn-site.xml  master / slave 對應主機上修改下:

<!-- 指定YARN的老大(ResourceManager)的地址 -->
   <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
   <!-- reducer獲取數據的方式 -->
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>

  

修改完,在master上

> stop-dfs.sh   中止HDFS

>stop-yarn.sh  中止yarn

 

再啓動

> start-dfs.sh   啓動HDFS

>start-yarn.sh  中止yarn

訪問瀏覽器,發現仍是隻有一個存活節點,難道又失敗了?

 

 回頭看了下啓動日誌:

start-dfs.sh 啓動HDFS時,slave也啓動了,並無失敗

start-yarn.sh 啓動yarn時,slave也啓動了

爲啥nodes節點只有一個呢?

查看master上進程:

查看slave上進程:

也有一個DataNode,爲何瀏覽器上只能看到一個節點呢?

相關文章
相關標籤/搜索