hadoop-2.7.2-HA安装笔记

hadoop

2016-11-02

1125

1

配置方案如图

  NN DN ZK ZKFC JN RM NM(任务管理器)  HMaster  Region Server
Node1 1   1 1   1      1
Node2 1 1 1 1 1   1    1
Node3   1 1   1   1  1  1
Node4   1     1   1  1  1

一、进入hadoop2.7/etc/hadoop/文件夹,修改hadoop-env.sh的JAVA_HOME路径。

二、 修改hdfs-site.xml配置文件

 1、配置命名服务

<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>



2、配置所有namenode名字

<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>


3、配置RPC协议端口

<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>node1:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>node2:8020</value>
</property>



4、配置http端口

<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>node1:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>node2:50070</value>
</property>



5、配置journalname的uri

<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node2:8485;node3:8485;node4:8485/mycluster</value>
</property>



6、配置客户端使用的类

<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>



7、配置sshfence

<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/root/.ssh/id_dsa</value>
</property>



8、配置journalname的工作目录

<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/opt/journalname/data</value>
</property>



9、开启自动切换

<property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
 </property>



三、配置core-site.xml配置文件

1、配置namenode入口

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>



2、配置zookeeper集群的位置

<property>
   <name>ha.zookeeper.quorum</name>
   <value>node1:2181,node2:2181,node3:2181</value>
 </property>


3、配置hadoop的工作目录

<property>
   <name>hadoop.tmp.dir</name>
   <value>/opt/hadoop2</value>
 </property>



四、配置slaves

node2
node3
node4



五、进入zookeeper的conf/zoo.cfg 配置zookeeper集群

1、

dataDir=/opt/zookeeper


2、

server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888


3、创建mkdir /opt/zookeeper,创建一个文件myid
里面写上机器编号(node1里写1,Node2里写2)每台zookeeper机器都要创建
4、在etc/profile配置zookeeper的环境变量

export PATH=$PATH:/home/zookeeper-3.4.6/bin



六、启动集群

1、启动zookeeper集群,装有zookeeper都要启动,在zookeeper/bin/zkServer.sh start

2、启动JournalNode daemons(仅在所在的机器启动)
hadoop/sbin/

./hadoop-daemon.sh start journalnode



3、格式化namenode(任意一个)
hadoop/bin/

./hdfs namenode -format


然后启动这个节点,复制到另一个节点

 ./hadoop-daemon.sh start namenode


在另一台没有格式化的机器执行
hadoop/bin下

 ./hdfs namenode -bootstrapStandby



4、停止hdfs的所有服务

./stop-dfs.sh



5、初始化zkfc

./hdfs zkfc -formatZK



6、启动hdfs

 ./start-dfs.sh

七、配置mapreduce

1、 mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
2、yarn-site.xml
<property>
     <name>yarn.resourcemanager.hostname</name>
     <value>node1</value>
</property>
<property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
</property>
<property>
     <name>yarn.nodemanager.aux-services.shuffle.class</name>
     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>



八、配置hbase

1、修改
hbase-env.sh的Javahome

export HBASE_MANAGES_ZK=false



2.修改hbase-site.xml

<property>
   
 <name>hbase.rootdir</name>
 
 <value>hdfs://node1:8020/hbase</value>
  
</property>

<property>

 <name>hbase.cluster.distributed</name>
  
  <value>true</value>

</property>

<property>
    
  <name>hbase.zookeeper.quorum</name>
   
   <value>node1,node2,node3</value>
  
  </property>
 
   <property>
    
  <name>hbase.zookeeper.property.dataDir</name>
  
    <value>/opt/zookeeper</value>
  
  </property>




3、修改regionservers

node1
node2
node3
node4



4、复制hdfs-site.xml到hbase/conf下

5、启动hbase
随意一台机器都可以启动,启动的那台机器为hmaster

./start-hbase.sh


也可以在其他机器增加hmaster

./hbase-daemon.sh start master




其他:
一些/etc/profile变量

export HADOOP_HOME=/home/hadoop-2.7.2
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"


遇到的问题:
1、安装过程有些步骤需要关闭防火墙
2、虽然我在64位的linux上重新编译了hadoop,并跟踪编译后端hadoop2.7.2进行部署。部署后启动,但出现了警告:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
该警告通过如下方法消除了:
在hadoop-env.sh中 修改HADOOP_OPTS:
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"



博文地址:http://julyme.com/20161102/11.html
个人博客地址:http://julyme.com

转载请注明出处: http://www.julyme.com/20161102/11.html

发表评论

Julyme

感觉还行吧。

Julyme的IT技术分享



/sitemap