hadoop2.x 环境配置
2016-06-08 11:46
295 查看
集群结构如下:
在四台台机器上的/etc/hosts 中设置如下
192.168.1.31 hadoop01
192.168.1.32 hadoop02
192.168.1.33 hadoop03
192.168.1.34 hadoop04
1、下载64位hadoop2.x的tar包 ,下载zookeepertar包:http://apache.fayea.com/zookeeper/zookeeper-3.4.6/
2、解压
3、建立软联 ln -sf /root/hadoop2.x /home/hadoop2.x
4、在/home/hadoop2.x/etc/hadoop/中修改配置文件:vi hadoop-env.sh
export JAVA_HOME=/opt/jdk1.7.0_67/
5、修改hdfs-site.xml中文件内容(http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html官网参考)
<configuration>
<property>
<name>dfs.nameservices</name>
<value>bjsq</value>
</property>
<property>
<name>dfs.ha.namenodes.bjsq</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.bjsq.nn1</name>
<value>hadoop01:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.bjsq.nn2</name>
<value>hadoop02:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.bjsq.nn1</name>
<value>hadoop01:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.bjsq.nn2</name>
<value>hadoop02:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop02:8485;hadoop03:8485;hadoop04:8485/bjsq</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.bjsq</name>
<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>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/jn/data</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
</configuration>
6、core-site.xml配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://bjsq</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop2</value>
</property>
</configuration>
7、在/home/hadoop-2.6/etc/hadoop/下执行vi slaves 修改该文件填写如下
hadoop02
hadoop03
hadoop04
8、在/home/hadoop-2.6/etc/hadoop/ 下给hadoop-env.sh 添加个jdk路径
export JAVA_HOME=/opt/jdk1.7.0_67/
ZOOKEEPER配置
1、解压zookeeper的tar包,并建立软连:ln -sf /root/zookeeper.3.4.3 /home/zk
2、找到路径/home/zk/conf/下 执行cp zoo.temp.cfg zoo.cfg,并在zoo.cfg文件中修改参数dataDir=/opt/zookeeper
且 添加以下下参数:
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
并创建路径mkdir /opt/zookeeper,在该路径下创建文件myid,在文件中输入1(一次类推,在hadoop2和hadoop3中各自输入在创建的文件中输入2和3并保存)
scp -r /opt/zookeeper/ root@hadoop02:/opt/
scp -r /opt/zookeeper/ root@hadoop03:/opt/
3、
配置完ZK后,在/home/zk/bin/ 路径下执行 zkServer.sh start 启动zookeeper ,在该机器下执行jps 有如下显示
类似在2和3机器上也执行该命令启动zookeeper
启动hadoop
1、首先在机器1、2、3、4中执行关闭防火墙命令:service iptables stop (由于我的环境用的是centos7虚拟机,所以用的是 systemctl stop iptables.service 命令)
2、在 /home/hadoop-2.6/bin/ 下执行./hdfs namenode -format 命令来格式化hadoop。
{注意:如果多次格式化的时候,namenode上的 /data/hadoop/dfs/name/current/VERSION 的clusterID会产生一个新的ID,这个值必须得和datanode上机器上的clusterID一致,要去修改各个节点的VERSION的clusterID}
3、注意:要先启动一个namenode,然后复制启动后的namenode的原始数据到另一个namenode机器上也就是服务器2
在/home/hadoop-2.6/sbin/ 下执行./hadoop-daemon.sh start namenode , jps后有如下显示表示启动成功
4、然后在没有启动namenode的第二台机器上的路径下 /home/hadoop-2.6/bin/ 下执行如下命令:./ hdfs namenode -bootstrapStandby
如果在该机器上的路径 /opt/hadoop2/dfs/name/current/ 下显示有如下图:
说明执行成功。说明有namenode的机器1和机器2的原始数据都一样了。
5、在/home/hadoop-2.6/sbin/ 下执行./stop-dfs.sh 来关闭
6、zkfc格式化:在其中一台namenode 机器上(hadoop01),路径/home/hadoop-2.6/bin/ 下执行 ./hdfs zkfc -formatZK
7、在第一台机器上的sbin的路径下执行./start-dfs-sh,显示如下,表示在1和2台机器上启动了两个namenode,在2、3、4机器上共启动了三个datanode;
8、访问http://hadoop01:50070和http://hadoop02:50070 都能访问的到
这俩页面中的active表示是在用hadoop01中的namenode,是激活状态,而如果hadoop01中的namenode死掉了,hadoop02中的namenode就会变为active。
图一:
图二:
图三:
图四:
hdfs试一下上传功能
1、在/home/hadoop-2.6/bin下 执行./hdfs dfs -mkdir -p /usr/file (先在hdfs中创建路径)
2、 ./hdfs dfs -put /opt/jdk-7u67-linux-x64.tar.gz /usr/file(把我的jdk包上传到hdfs创建的路径中去)
3、如图显示上传成功
4、点击jdk-....链接看到如下图
我们知道,在hdfs上 ,切分文件默认按照128MB(好像以前版本是64MB的,现在普遍用的都是128MB,可自己手动设置)切分的,因为jdk的大小为135.78 MB 所以分了两个Block ,第一个block是128MB,第二个block就是7.78MB,而且该文件在hadoop02、hadoop03和hadoop04都个备份了一份。
http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-High-Availability-Guide/cdh4hag_topic_2_3.html
http://blog.csdn.net/u010967382/article/details/30976935 http://blog.csdn.net/chenpingbupt/article/details/7922089
在四台台机器上的/etc/hosts 中设置如下
192.168.1.31 hadoop01
192.168.1.32 hadoop02
192.168.1.33 hadoop03
192.168.1.34 hadoop04
1、下载64位hadoop2.x的tar包 ,下载zookeepertar包:http://apache.fayea.com/zookeeper/zookeeper-3.4.6/
2、解压
3、建立软联 ln -sf /root/hadoop2.x /home/hadoop2.x
4、在/home/hadoop2.x/etc/hadoop/中修改配置文件:vi hadoop-env.sh
export JAVA_HOME=/opt/jdk1.7.0_67/
5、修改hdfs-site.xml中文件内容(http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html官网参考)
<configuration>
<property>
<name>dfs.nameservices</name>
<value>bjsq</value>
</property>
<property>
<name>dfs.ha.namenodes.bjsq</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.bjsq.nn1</name>
<value>hadoop01:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.bjsq.nn2</name>
<value>hadoop02:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.bjsq.nn1</name>
<value>hadoop01:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.bjsq.nn2</name>
<value>hadoop02:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop02:8485;hadoop03:8485;hadoop04:8485/bjsq</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.bjsq</name>
<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>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/jn/data</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
</configuration>
6、core-site.xml配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://bjsq</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop2</value>
</property>
</configuration>
7、在/home/hadoop-2.6/etc/hadoop/下执行vi slaves 修改该文件填写如下
hadoop02
hadoop03
hadoop04
8、在/home/hadoop-2.6/etc/hadoop/ 下给hadoop-env.sh 添加个jdk路径
export JAVA_HOME=/opt/jdk1.7.0_67/
ZOOKEEPER配置
1、解压zookeeper的tar包,并建立软连:ln -sf /root/zookeeper.3.4.3 /home/zk
2、找到路径/home/zk/conf/下 执行cp zoo.temp.cfg zoo.cfg,并在zoo.cfg文件中修改参数dataDir=/opt/zookeeper
且 添加以下下参数:
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
并创建路径mkdir /opt/zookeeper,在该路径下创建文件myid,在文件中输入1(一次类推,在hadoop2和hadoop3中各自输入在创建的文件中输入2和3并保存)
scp -r /opt/zookeeper/ root@hadoop02:/opt/
scp -r /opt/zookeeper/ root@hadoop03:/opt/
3、
配置完ZK后,在/home/zk/bin/ 路径下执行 zkServer.sh start 启动zookeeper ,在该机器下执行jps 有如下显示
类似在2和3机器上也执行该命令启动zookeeper
启动hadoop
1、首先在机器1、2、3、4中执行关闭防火墙命令:service iptables stop (由于我的环境用的是centos7虚拟机,所以用的是 systemctl stop iptables.service 命令)
2、在 /home/hadoop-2.6/bin/ 下执行./hdfs namenode -format 命令来格式化hadoop。
{注意:如果多次格式化的时候,namenode上的 /data/hadoop/dfs/name/current/VERSION 的clusterID会产生一个新的ID,这个值必须得和datanode上机器上的clusterID一致,要去修改各个节点的VERSION的clusterID}
3、注意:要先启动一个namenode,然后复制启动后的namenode的原始数据到另一个namenode机器上也就是服务器2
在/home/hadoop-2.6/sbin/ 下执行./hadoop-daemon.sh start namenode , jps后有如下显示表示启动成功
4、然后在没有启动namenode的第二台机器上的路径下 /home/hadoop-2.6/bin/ 下执行如下命令:./ hdfs namenode -bootstrapStandby
如果在该机器上的路径 /opt/hadoop2/dfs/name/current/ 下显示有如下图:
说明执行成功。说明有namenode的机器1和机器2的原始数据都一样了。
5、在/home/hadoop-2.6/sbin/ 下执行./stop-dfs.sh 来关闭
6、zkfc格式化:在其中一台namenode 机器上(hadoop01),路径/home/hadoop-2.6/bin/ 下执行 ./hdfs zkfc -formatZK
7、在第一台机器上的sbin的路径下执行./start-dfs-sh,显示如下,表示在1和2台机器上启动了两个namenode,在2、3、4机器上共启动了三个datanode;
8、访问http://hadoop01:50070和http://hadoop02:50070 都能访问的到
这俩页面中的active表示是在用hadoop01中的namenode,是激活状态,而如果hadoop01中的namenode死掉了,hadoop02中的namenode就会变为active。
图一:
图二:
图三:
图四:
hdfs试一下上传功能
1、在/home/hadoop-2.6/bin下 执行./hdfs dfs -mkdir -p /usr/file (先在hdfs中创建路径)
2、 ./hdfs dfs -put /opt/jdk-7u67-linux-x64.tar.gz /usr/file(把我的jdk包上传到hdfs创建的路径中去)
3、如图显示上传成功
4、点击jdk-....链接看到如下图
我们知道,在hdfs上 ,切分文件默认按照128MB(好像以前版本是64MB的,现在普遍用的都是128MB,可自己手动设置)切分的,因为jdk的大小为135.78 MB 所以分了两个Block ,第一个block是128MB,第二个block就是7.78MB,而且该文件在hadoop02、hadoop03和hadoop04都个备份了一份。
参考
http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-High-Availability-Guide/cdh4hag_topic_2_3.htmlhttp://blog.csdn.net/u010967382/article/details/30976935 http://blog.csdn.net/chenpingbupt/article/details/7922089
相关文章推荐
- linux 软链接 硬链接
- javaweb工程 添加不到tomcat中 解决办法
- .NET-WEB网站部署的过程中需要注意的问题
- Nginx配置实战
- centOS6搭建lnmp环境
- centOS6搭建lnmp环境
- Linux Shell系列教程之(八)Shell printf命令详解
- Linux 设备驱动--- 内核等待队列
- popuwindow弹出时,背景半透明
- scrollTop、offsetHeight和offsetTop等属性用法详解
- 简单探索Linux的缓冲机制
- 大型网站的技术架构演进过程
- LInux常用压缩与解压缩命令
- 通过ADB操作/查看SQLite数据库以及Mac OS X下adb shell配置与启动
- TEXTAREA中文内容监控
- 关于 hadoop reduce 阶段遍历 Iterable 的 2 个“坑”
- Linux inode 理解以及耗尽的解决方案
- Linux用户添加到sudo
- linux 解压xz包
- 写一个Linux下搭建Discuz论坛的全过程教程。