hadoop集群搭建

来源:互联网 发布:二胡软件 编辑:程序博客网 时间:2024/06/06 16:44

2.安装配置hadoop集群
2.1解压
2.2配置HDFS
#将hadoop添加到环境变量中
vi /etc/profile

export JAVA_HOME=/home/idata/jdk1.7.0_44export HADOOP_HOME=/home/idata/hadoop-2.4.1export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

source /etc/profile

(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下)

2.2.1修改hadoo-env.sh,如果${JAVA_HOME}不行,就写成绝对路径
export JAVA_HOME=/home/idata/jdk1.7.0_44

2.2.2修改core-site.xml

<configuration>        <!-- 指定hdfs的nameservice为ns1 -->        <property>            <name>fs.defaultFS</name>            <value>hdfs://ns1</value>        </property>        <!-- 指定hadoop临时目录 -->        <property>            <name>hadoop.tmp.dir</name>                        <value>/letv/hadoop-2.7.2/tmp</value>                    </property>                    <!-- 指定zookeeper地址 -->                    <property>                        <name>ha.zookeeper.quorum</name>                        <value>THadoop5:2181,THadoop6:2181,THadoop7:2181</value>                    </property>                </configuration>

2.2.3修改hdfs-site.xml

<configuration>                    <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->                    <property>                        <name>dfs.nameservices</name>                        <value>ns1</value>                    </property>                    <!-- ns1下面有两个NameNode,分别是nn1,nn2 -->                    <property>                        <name>dfs.ha.namenodes.ns1</name>                        <value>nn1,nn2</value>                    </property>                    <!-- nn1的RPC通信地址 -->                    <property>                        <name>dfs.namenode.rpc-address.ns1.nn1</name>                        <value>THadoop1:9000</value>                    </property>                    <!-- nn1的http通信地址 -->                    <property>                        <name>dfs.namenode.http-address.ns1.nn1</name>                        <value>THadoop1:50070</value>                    </property>                    <!-- nn2的RPC通信地址 -->                    <property>                        <name>dfs.namenode.rpc-address.ns1.nn2</name>                        <value>THadoop2:9000</value>                    </property>                    <!-- nn2的http通信地址 -->                    <property>                        <name>dfs.namenode.http-address.ns1.nn2</name>                        <value>THadoop2:50070</value>                    </property>                    <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->                    <property>                        <name>dfs.namenode.shared.edits.dir</name>                        <value>qjournal://THadoop5:8485;THadoop6:8485;THadoop7:8485/ns1</value>                    </property>                    <!-- 指定JournalNode在本地磁盘存放数据的位置 -->                    <property>                        <name>dfs.journalnode.edits.dir</name>                        <value>/letv/hadoop-2.7.2/journal</value>                    </property>                    <!-- 开启NameNode失败自动切换 -->                    <property>                        <name>dfs.ha.automatic-failover.enabled</name>                        <value>true</value>                    </property>                    <!-- 配置失败自动切换实现方式 -->                    <property>                        <name>dfs.client.failover.proxy.provider.ns1</name>                        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>                    </property>                    <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->                    <property>                        <name>dfs.ha.fencing.methods</name>                        <value>                            sshfence                            shell(/bin/true)                        </value>                    </property>                    <!-- 使用sshfence隔离机制时需要ssh免登陆 -->                    <!-- 配置sshfence隔离机制超时时间 -->                    <property>                        <name>dfs.ha.fencing.ssh.connect-timeout</name>                        <value>30000</value>                    </property>                </configuration>

2.2.4修改mapred-site.xml

<configuration>                    <!-- 指定mr框架为yarn方式 -->                    <property>                        <name>mapreduce.framework.name</name>                        <value>yarn</value>                    </property>                </configuration>    

2.2.5修改yarn-site.xml

                <configuration>                        <!-- 开启RM高可靠 -->                        <property>                           <name>yarn.resourcemanager.ha.enabled</name>                           <value>true</value>                        </property>                        <!-- 指定RM的cluster id -->                        <property>                           <name>yarn.resourcemanager.cluster-id</name>                           <value>yrc</value>                        </property>                        <!-- 指定RM的名字 -->                        <property>                           <name>yarn.resourcemanager.ha.rm-ids</name>                           <value>rm1,rm2</value>                        </property>                        <!-- 分别指定RM的地址 -->                        <property>                           <name>yarn.resourcemanager.hostname.rm1</name>                           <value>THadoop1</value>                        </property>                        <property>                           <name>yarn.resourcemanager.hostname.rm2</name>                           <value>THadoop2</value>                        </property>                        <!-- 指定zk集群地址 -->                        <property>                           <name>yarn.resourcemanager.zk-address</name>                           <value>THadoop5:2181,THadoop6:2181,THadoop7:2181</value>                        </property>                        <property>                           <name>yarn.nodemanager.aux-services</name>                           <value>mapreduce_shuffle</value>                        </property>                </configuration>

2.2.6修改slaves
THadoop3
THadoop4
THadoop5
THadoop6
THadoop7
2.4将配置好的hadoop拷贝到所有其他节点
scp -r /home/idata/hadoop-2.4.1 THadoop1:/home/idata/
2.5启动zookeeper集群(分别在5、6、7上启动zk)
cd /home/idata/zookeeper-3.4.5/bin/
./zkServer.sh start
#./zkServer.sh stop
#查看状态:一个leader,两个follower
./zkServer.sh status

2.6启动journalnode(分别在5、6、7上执行)
cd /home/idata/hadoop-2.4.1
sbin/hadoop-daemon.sh start journalnode
#sbin/hadoop-daemon.sh stop journalnode
#运行jps命令检验,5、6、7上多了JournalNode进程
2.7格式化HDFS
#在1上执行命令:

hdfs namenode -format
#格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,然后将/home/idata/hadoop-2.4.1/tmp拷贝到2的/home/idata/hadoop-2.4.1/下。
scp -r tmp/  THadoop2:/home/idata/hadoop-2.4.1/

2.8格式化ZK(1上执行即可)
hdfs zkfc -formatZK

2.9启动HDFS(1上执行)
sbin/start-dfs.sh

2.10启动YARN
sbin/start-yarn.sh

hadoop增加减少节点
http://my.oschina.net/u/923508/blog/387113

hadoop.tmp.dir和dfs.journalnode.edits.dir的父路径必须一样,否则nameNode和dataNode就会无法启动

参考:http://eksliang.iteye.com/blog/2226986

0 0