Hadoop集群之HDFS伪分布式安装 非HA(一)

1.准备条件:

机器:centOS6.5(x64) ,安装方式百度吧!!!如果你已经安装过CentOS了,也可以参考本文章。
镜像名:centOS-6.5-X86_64-minimal.iso(下载地址:http://download.chinaunix.net/download.php?id=41334&ResourceID=13440
JDK1.7下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html(rpm和tar.gz都可以,安装方式百度吧)
Hadoop版本:Hadoop-2.5.1_X64.tar.gz,这里提供2.7.x的版本(链接: http://pan.baidu.com/s/1dFdwyzv 密码: 9iwc)均是64为版本的,已经编译过的。官方下载的都是32bit的,需要下载对应的源码,在64位机器上进行编译。

网络配置参考:http://blog.csdn.net/q361239731/article/details/53180084


5台服务器全部装好jdk1.7+ssh+sshd+时间同步,node1-node5是对应机器的hostname

192.168.160.131 ( node1):作为Primary NameNode(制作了一个免密码ssh)
192.168.160.132 ( node2):作为Secondary NameNode
192.168.160.133 ( ndoe3):作为DataNode
192.168.160.134 ( ndoe4):作为DataNode
192.168.160.135 ( ndoe5):作为DataNode

官方说明

  • JDK1.7(64bit,配置好环境变量)+SSH安装好+SSHD安装好

  • JDK:javac 或 java -version
    java版本

  • SSH和SSHD在镜像中已经安装好了。
    ssh
    sshd

  • 这里之所以使用node1 node2 …… node5是因为配置了hosts文件,同时将这个hosts文件通过spc命令拷贝到其他4台机器中去

    scp /etc/hots root@node2:/etc/ &&
    scp /etc/hots root@node3:/etc/ &&
    scp /etc/hots root@node4:/etc/ &&
    scp /etc/hots root@node5:/etc/

    hosts文件

2、上传Hadoop-2.5.1_X64.tar.gz(利用源码在64位机器上编译过的tar包) 并解压,配置好环境变量。

  • 如下图所示
    配置环境变量

2.1、配置环境变量:etc/hadoop/hadoop-env.sh文件(hadoop文件夹下的etc目录) 之后修改JAVA_HOME并添加下列代码

# Assuming your installation directory is /usr/local/hadoop   
export HADOOP_PREFIX=/usr/local/hadoop
  • 如下图:
    hadoop-env.sh配置

  • 运行 bin/hadoop,出现下面信息表示已经安装好。
    安装成功的信息

  • 2.2、配置Primary NameNode地址:etc/hadoop/core-size.xml:设置文件上传下载的IP,即namenode的地址,这里选择node1

    • 添加2个属性:
      <property>
              <name>fs.defaultFS</name>
              <value>hdfs://node1:9000</value>
      </property>
      <!-- 设置hadoop临时文件的存放目录,这里设置为/opt/hadoop-2.5目录,不需要自己创建 -->
      <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/hadoop-2.5</value>
      </property>

    core-size.xml配置

    因为下面的2个配置,存放fsimage文件的目录与hadoop.tmp.dir相关联。所有需要设置hadoop.tmp.dir的存放目录在非tmp(系统重启就会丢失)目录。

    官方给的说明如下表:

    属性名属性值说明
    hadoop.tmp.dir/tmp/hadoop-${user.name}A base for other temporary directories.
    dfs.namenode.name.dirfile://${hadoop.tmp.dir}/dfs/nameDetermines where on the local filesystem the DFS name node should store the name table(fsimage). If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy.
  • 2.3、配置Secondary NameNode地址和端口:etc/hadoop/hdfs-site.xml:(配置这个是为了在web页面进行监控用的)

    属性名属性值说明
    dfs.namenode.secondary.http-address0.0.0.0:50090The secondary namenode http server address and port.
    dfs.namenode.secondary.https-address0.0.0.0:50091The secondary namenode HTTPS server address and port.

    hdfs-site.xml配置

  • 2.4、配置DataNode 地址: etc/hadoop/slaves
    slaves文件

  • 2.5、配置Secondary DataNode 地址: etc/hadoop/masters (自己手动创建)

        [root@node1 hadoop]# vim masters

    masters文件

3、将node1下面的 hadoop-2.5.1目录 拷贝到其他4台机器中:

scp -r /opt/hadoop-2.5.1 root@node2:/opt &&
scp -r /opt/hadoop-2.5.1 root@node3:/opt &&
scp -r /opt/hadoop-2.5.1 root@node4:/opt &&
scp -r /opt/hadoop-2.5.1 root@node5:/opt

4、配置Hadoop环境变量:(环境变量还有好几个文件都可以设置如:/etc/profile)

vim ~/.bash_profile

环境变量配置内容

配置好后,复制(同样适用scp命令)到其他4台机器中并应用配置。

source ~/.bash_profile

5、启动之前,格式化hdfs文件系统: (只能在namenode机器上敲这条命令)

hdfs namenode -format

这条命令做的事情是:前提是(保证5台机器的时间差在 ±30s)
创建了 /opt/hadoop-2.5目录,并在里面创建了 dfs/name/current目录和初始化fsimage文件

创建的目录


到此就配置完毕了

你都做了什么?
现在已经配置好了HDFS的基本骨架:
node1:namenode(Master)
node2:Secondary namenode
node3、node4、node5:datanode


下面进行一些异常处理

如果在执行 bin/hdfs namenode -format时出现下面错误
出错了

表示没有端口没有映射。可以修改/etc/hosts文件 加入下面的信息就可以了
hosts文件

下面开始启动了
 官方文档

ssh登录不是必选项,但是如果不设置免密码登录的话,启动集群时,每台节点都要等待手动输入密码。但是为了方便还是做了吧。(注意时间同步,因为秘钥的生成用到了时间)

在node1中输入下面的命令

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

然后将node1中的公钥(在~/.ssh/id_dsa.pub)考到其他4台机器中(/opt目录下):

scp ~/.ssh/id_dsa.pub root@node2:/opt &&
scp ~/.ssh/id_dsa.pub root@node3:/opt &&
scp ~/.ssh/id_dsa.pub root@node4:/opt &&
scp ~/.ssh/id_dsa.pub root@node5:/opt

然后在每台机器中将node1的公钥加入到认证文件中:

cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys

测试的方法是:

在node1中,输入 ssh node2,如果不需要输入密码就表示成功了,否则在node1重新生成公钥和密钥(检查时间是否一致),重复上面的步骤。 如果能登录到node2中,就可以了,执行exit命令退出,然后ssh node3依次下去。

6、启动hdfs集群:

  • 在保证node1能够免密码登录node2 node3 node4 node5(如果不能,就在ndoe1重新生成公钥,同时scp到其他机器中,同时执行cat /opt/id_dsa.pub >>~/.ssh/authorized_keys) 之后在node1中进行启动
 start-dfs.sh

启动集群成功的信息

启动成功后:浏览器中输入node1:50070(50070为默认监控端口)进入监控页面:显示是active

web页面
 web页面

输入node2:50090(hdfs-site.xml中配置的端口)显示下面的页面,即表示配置成功。
SecondaryNamenode页面

结束语

到此为止,HDFS集群的伪分布式的非HA架构已经搭建完毕,不过非HA的环境有点不靠谱,这里做HA的话,是对Namenode做HA,具体过程请参考下一篇:
Hadoop集群之HDFS伪分布式安装 HA(二)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值