cencenhai 发表于 2017-12-16 20:26:00

Hadoop-hdfs安装与配置

一、安装要求
    安装JDK
      yum -y install jdk(或手动安装)
    设置namenode节点到datanode节点的免密码登陆
      a. 本地免密码登录
        # ssh localhost       #检测能否在本机上实现免密码登陆
        # ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa   #创建登陆的公钥和私钥,公钥放在id_dsa.pub中,私钥放在id_dsa中
        # cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys#将公钥追加到已认证信息中
        # ssh localhost      #实现免密码登陆
      b. 跨主机免密码登陆
        # scp ~/.ssh/id_dsa.pubroot@node2:~/.ssh/          #在namenode上执行
        # cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys#将公钥追加到已认证信息中,在datanode上执行该操作
      c. 对所有的datanode执行上述操作
    设置域名解析(在所有的节点增加)
      # vi /etc/hosts# 增加节点对应节点,如果不加入节点则在配置文件中需要直接写节点的IP
        192.168.150.128node1
        192.168.150.129node2
        192.168.150.130node3
        192.168.150.131node4
      
二、安装
    由于hadoop有bin包,所以hadoop下载后只需要解压即可使用。
    版本hadoop-1.2.1
    namenode和datanode上软件包的放置位置要完全相同,否则在集群启动服务的时候会出现找不到文件的情况。
    在软件解压到/root/hadoop-1.2.1文件夹
三、配置  
  核心模块的配置
    #vi/root/hadoop-1.2.1/conf/core-site.xml
      <configuration>
       <property>
         <name>fs.default.name</name>   # namenode节点名
        <value>hdfs://node1:9000</value>#namenode域名(或IP)和端口
       </property>
       <property>
        <name>hadoop.tmp.dir</name> #文件储存目录
         <value>/opt/hadoop-1.2</value>#fs的放置位置
       </property>
      </configuration>
      其它具体配置可以查看./hadoop-1.2.1/docs的文档。
    #vi/root/hadoop-1.2.1/conf/hdfs-site.xml
      <configuration>
       <name>dfs.replication</name>#block的副本数,不能超过datanode的数目
      <value>2</value>
      </configuration>
    #vi/root/hadoop-1.2.1/conf/slaves #该文件设置datanode节点的域名(IP)
      node2
      node3
    #vi/root/hadoop-1.2.1/conf/masters#该文件设置secondarynamenode节点的域名(IP)
      node2   # 只要跟namenode不在同一台机器上即可
    
    #vi/root/hadoop-1.2.1/conf/hadoop-env.sh#设置运行环境
      export JAVA_HOME=/usr/java/jdk1.7.0_79# 只要设置jdk的目录即可
    在所有的节点上进行上述的相同配置。
四、测试
    # /root/hadoop-1.2.1/bin/hadoop namenode -format    #进行格式化,创建dfs
    # /root/hadoop-1.2.1/bin/start-dfs.sh   #启动dfs服务
    # jps#查看启动的java进程(namenode上)
     
    # jps#查看启动的java进程(datanode上)
     
    在浏览器上输入namenode的IP和端口,即可进入文件系统
     http://192.168.150.128:50070
     注意:如果要进入子目录,那么要在windows上hosts文件也设置同样的域名解析,否则浏览器会提示错误,因为没有对应的ip时浏览器会访问外网。
    文件传输和执行java程序
      # /root/hadoop-1.2.1/bin/hadoop -fs -put   file   input#将file文件传输到文件系统的root用户下的input目录
      # /root/hadoop-1.2.1/bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs+'# 执行jar程序
      
      # /root/hadoop-1.2.1/bin/hadoop fs -get output output   获取并在本地文件系统中显示数据
      # cat output/*
      或 #/root/hadoop-1.2.1/bin/hadoop fs -cat output/*
    关闭进程
      # /root/hadoop-1.2.1/bin/stop-dfs.sh
五、总结  
  虽然说hdfs是文件系统,但本质上并没有格式化本机上的硬盘,所以其实只是硬盘上的一种特殊的文件储存格式,并且必须通过IP:PORT进行访问。实质上在配置并启动了集群之后,集群之间便会进行网络通信,并通过namenode的IP和指定端口(50070)对外提供访问。
页: [1]
查看完整版本: Hadoop-hdfs安装与配置