HADOOP 集群搭建
标签(空格分隔): 集群搭建
环境:
hadoop-2.5.2
zookeeper-3.4.5
hbase-1.1.3
机器4台,机器名node01,node02,node03,node04
步骤:
1.设置免密码登录
2.hadoop配置:
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://lichen</value>
#项目名称不用想太多(hbase要使用)
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/root/tmp-hadoop-${user.name}</value>
#元文件(fsimage)的存放地址,默认是tmp,一般要改
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>node01:2181,node02:2181,node03:2181</value>
#三台zookeeper的节点
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices</name>
<value>lichen</value>
#项目名称 不要想太多 后面要保持一致
</property>
<property>
<name>dfs.ha.namenodes.lichen</name>
<value>nn1,nn2</value>
#HA时候主备切换,不用变就这样就行,不用跟主机名一致。
</property>
<property>
<name>dfs.namenode.rpc-address.lichen.nn1</name>
<value>node01:8020</value>
#rpc客户端上传下载文件使用(这里就将nn1,nn2一一对应起来)
</property>
<property>
<name>dfs.namenode.rpc-address.lichen.nn2</name>
<value>node04:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.lichen.nn1</name>
<value>node01:50070</value>
#网页访问地址,看HDFS状态等等
</property>
<property>
<name>dfs.namenode.http-address.lichen.nn2</name>
<value>node04:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node03:8485;node04:8485;node02:8485/lichen</value>
#存放元文件的节点,元文件做HA,高可用保证不会丢失。
</property>
<property>
<name>dfs.client.failover.proxy.provider.lichen</name>
#和zookeeper保持心跳,主节点down了,可以自动切换。
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<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>
#以上是SSH 免密码控制哦
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadoop/data</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
#开启切换
</property>
</configuration>
slaves文件
保存的是journalnode的节点名
node02
node03
node04
zookeeper配置:
1.在conf下新建zoo.cfg
tickTime=2000
dataDir=/opt/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
**2.在三台机器上的/opt/zookeeper/ 目录下建立
myid文件 内容分别为1 ,2 ,3**
3.分别启动三个zookeeper:./zkServer.sh start
4.分别启动三个JournalNode:./hadoop-daemon.sh start journalnode
5.把刚刚格式化之后的元数据拷贝到另外一个namenode上
a)启动刚刚格式化的namenode :hadoop-daemone.sh start namenode
b)在没有格式化的namenode上执行:hdfs namenode -bootstrapStandby
c)启动第二个namenode
9.在其中一个namenode上初始化zkfc:hdfs zkfc -formatZK
10.停止上面节点:stop-dfs.sh
11.全面启动:start-dfs.sh
hbase配置
1.配置hbase-env.sh中配置JAVA_HOME和export HBASE_MANAGES_ZK=false
默认是使用自带的zookeeper
2. 配置hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://lichen/hbash</value>
#与前面的core-site.xml的项目名称一致
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node01,node02,node03</value>
#zookeeper的节点
</property>
</configuration>
3.配置regionserver节点
node01
node02
node03
node04
环境变量文件~/.bash_profile
PATH=$PATH:$HOME/bin
export PATH
export JAVA_HOME=/usr/jdk1.7.0_80
export HADOOP_HOME=/usr/local/hadoop-2.5.2
export HADOOP_CONF_DIR=/usr/local/hadoop-2.5.2/etc/hadoop
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HIVE_HOME=/usr/local/apache-hive-1.2.1-bin
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
export PATH=$HIVE_HOME/bin:$PATH
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$MAHOUT_HOME/bin:$MAHOUT_HOME/conf:$PATH
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.5
export PATH=$ZOOKEEPER_HOME/bin:$PATH