大数据学习笔记(二)-hadoop安装【原创】

Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,secondary NameNode,JobTracker,TaskTracker组成。
其中NameNode,secondary NameNode,JobTracker运行在Master节点上,DataNode和TaskTracker运行在Slave节点上。


一、准备工作
    1.1 centOS6服务器3台
    master    192.168.3.140  (master.hadoop.zjportdns.gov.cn)
    node1     192.168.3.141  (node1.hadoop.zjportdns.gov.cn)
    node2     192.168.3.142  (node2.hadoop.zjportdns.gov.cn)
    因为之前配置了DNS,所以只要在DNS私服设置相关域名即可。
    1.2 下载安装包
    hadoop-2.7.3.tar.gz
    上传到三台服务器/usr/local/目录下
    1.3关闭防火墙
    service iptables stop
    1.4安装ntp服务
    使用 rpm -q ntp 查询是否已安装,如未安装需要安装(略)
    1.5安装JDK1.7 (略)
    1.6使用hostname 命令查询主机名, 确保主机名能够被ping通。
    1.7ssh免密操作
   
ssh-keygen -t rsa

    一路回车,在/root/.ssh/目录下生成密钥文件。
   
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

    将 id_rsa.pub 和 authorized_keys 文件拷贝到 node1和node2服务器的/root/.ssh/目录下,并修改权限。
   
chmod -R 700 /root/.ssh

    验证:在master机器上执行命令,不需要输入密码能登录到node1就成功了。
   
ssh node1.hadoop.zjportdns.gov.cn

二、安装hadoop(如无特殊说明,三台服务器都要操作)
    2.1 解压
   
cd /usr/local
tar -xvf hadoop-2.7.3.tar.gz

    2.2设置环境变量
   
echo "export HADOOP_HOME=/usr/local/hadoop-2.7.3" >> /etc/profile
echo -e "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" >> /etc/profile
source /etc/profile
echo -e "export JAVA_HOME=/usr/local/jdk1.7.0_79" >> /usr/local/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
echo -e "export JAVA_HOME=/usr/local/jdk1.7.0_79" >> /usr/local/hadoop-2.7.3/etc/hadoop/yarn-env.sh

    2.3查看hadoop版本
   
hadoop version

    2.4创建工作目录
   
mkdir -p /hadoop/tmp
mkdir -p /hadoop/hdfs/data
mkdir -p /hadoop/hdfs/name

    2.5修改配置文件(/usr/local/hadoop-2.7.3/etc/hadoop/目录下)
    core-site.xml
   
<configuration>
<property>
                <name>hadoop.tmp.dir</name>
                <value>/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
</property>
<property>
                <name>fs.defaultFS</name>
                <value>hdfs://master.hadoop.zjportdns.gov.cn:9000</value>
</property>
<property>
                <name>io.file.buffer.size</name>
                <value>4096</value>
</property>
</configuration>

     hdfs-site.xml
    
     <configuration>
  <property>
     <name>dfs.namenode.name.dir</name>
	 <value>file:/hadoop/hdfs/name</value>
  </property>
  <property>
     <name>dfs.datanode.data.dir</name>
	 <value>file:/hadoop/hdfs/data</value>
  </property>
  <property>
     <name>dfs.replication</name>
	 <value>2</value>
  </property>
  <property>
     <name>dfs.namenode.secondary.http-address</name>
     <value>master.hadoop.zjportdns.gov.cn:9001</value>
  </property>
  <property>
     <name>dfs.webhdfs.enabled</name>
	 <value>true</value>
  </property>
</configuration>
     

    复制mapred-site.xml.template为mapred-site.xml,并修改mapred-site.xml
    
<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <final>true</final>
    </property>
    <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>master.hadoop.zjportdns.gov.cn:50030</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master.hadoop.zjportdns.gov.cn:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master.hadoop.zjportdns.gov.cn:19888</value>
    </property>
    <property>
         <name>mapred.job.tracker</name>
         <value>http://master.hadoop.zjportdns.gov.cn:9001</value>
</property>
</configuration>

yarn-site.xml
    
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
         <name>yarn.resourcemanager.hostname</name>
         <value>master.hadoop.zjportdns.gov.cn</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master.hadoop.zjportdns.gov.cn:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master.hadoop.zjportdns.gov.cn:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master.hadoop.zjportdns.gov.cn:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master.hadoop.zjportdns.gov.cn:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master.hadoop.zjportdns.gov.cn:8088</value>
    </property>
</configuration>

slaves(去掉localhost,加上一下内容)
    
node1.hadoop.zjportdns.gov.cn
node2.hadoop.zjportdns.gov.cn

    2.6 启动(只在master机器执行)
    初次先格式化
   
      cd /usr/local/hadoop-2.7.3/bin/
      ./hadoop namenode -format
    

    启动
   
      cd /usr/local/hadoop-2.7.3/sbin/
      ./start-all.sh
    

    2.7 验证
    在master上执行jps
   
    在node1上执行jps
   
    在node2上执行jps
     
    浏览器访问master的50070,比如http://master.hadoop.zjportdns.gov.cn:50070 或8088端口
   
    2.8停止
    /usr/local/hadoop-2.7.3/sbin/stop-all.sh
三常见问题
    1. dataNode无法启动
    可能是中途修改了hostname等因素造成, 需要将三台机器的初始化目录按2.4步骤清空,然后再执行格式化命令:./hadoop namenode -format。

猜你喜欢

转载自zhenggm.iteye.com/blog/2358071