hadoop1.x环境搭建


1.1 本地模式:运行时不使用HDFS   
1.2 伪分布模式:在一个节点上运行hadoop集群
1.3 集群模式:在生产中真正使用的,hadoop的各个进程运行在集群的很多节点上

2.部署集群开发环境
在windows的C:\Windows\System32\drivers\etc\hosts增加ip与主机名绑定

2.1 设置静态ip
(1)使用vi编辑文件/etc/sysconfig/network-scripts/ifcfg-eth2
   BOOTPROTO=static
   IPADDR=192.168.1.191
   NETMASK=255.255.255.0
   GATEWAY=192.168.1.1
   DNS1=192.168.1.1
   保存退出
(2)执行命令service network restart重启网卡设置
(3)执行命令ifconfig查看配置结果是否正确

2.2 设置hostname
(1)使用vi编辑/etc/sysconfig/network
   把HOSTNAME的值改为hadoop1,保存退出。
(2)执行hostname hadoop1,在当前环境中立即生效 
(3)执行命令hostname查看设置结果

2.3 绑定ip与hostname
   编辑文件/etc/hosts,增加ip与hostname的映射信息
 
2.4 关闭防火墙
(1) 执行命令service iptables stop关闭防火墙
(2)执行命令service iptables status查看防火墙是否正在运行

2.5 关闭防火墙的自动运行
(1) 执行命令chkconfig iptables off

2.6 SSH(secure shell)免密码登录
(1)执行命令ssh-keygen -t rsa产生公钥私钥文件,产生的文件位于~/.ssh目录下
(2)执行命令ssh-copy-id -i hadoop4复制公钥文件到对方hadoop4中authorized_keys中去了。
(3)执行ssh hadoop4,就可以实现真正的免密码登录了。
只需要实现主节点(hadoop1)到从节点(hadoop3\hadoop4\hadoop5)的免密码登录即可,不必要实现从节点到主节点的免密码登录。

2.7 部署hadoop
(1)在hadoop1上执行命令cp /mnt/software/hadoop-1.1.2.tar.gz  ~ 复制hadoop压缩包到home目录
(2)在hadoop1上执行命令 tar -zxvf ~/hadoop-1.1.2.tar.gz 进行解压缩,产生文件夹hadoop-1.1.2
(3)在hadoop1上执行命令 vi ~/.bashrc 设置环境变量,增加的内容如下hadoop1上执行命令 vi ~/.bashrc 设置环境变量,增加的内容如下
   export HADOOP_HOME=/mnt/home/cr00/hadoop-1.1.2
   export PATH=.:$HADOOP_HOME/bin:$PATH
   保存退出
   记得执行source  ~/.bashrc
(4)在hadoop1上编辑配置文件,见word文档hadoop1上编辑配置文件

    hadoop-env.sh
          export JAVA_HOME=/usr/local/jdk

    core-site.xml
          <configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop:9000</value>
        <description>change your own hostname</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
</configuration>
  
    hdfs-site.xml
          <configuration>
     <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

    mapred-site.xml
<configuration>
     <property>
        <name>mapred.job.tracker</name>
        <value>hadoop:9001</value>
        <description>change your own hostname</description>
    </property>
</configuration>


(5)把hadoop1上的hadoop-1.1.2复制到其他节点,执行命令hadoop1上的hadoop-1.1.2复制到其他节点,执行命令
   scp -r  ~/hadoop-1.1.2 hadoop2:~/
   scp -r  ~/hadoop-1.1.2 hadoop3:~/
   scp -r  ~/hadoop-1.1.2 hadoop4:~/
   scp -r  ~/hadoop-1.1.2 hadoop5:~/
 
   scp ~/.bashrc hadoop2:~/
   scp ~/.bashrc hadoop3:~/
   scp ~/.bashrc hadoop4:~/
   scp ~/.bashrc hadoop5:~/
 
   在其他各个节点,执行命令source ~/.bashrc
(6)在hadoop1节点执行命令hadoop namenode -format 进行格式化hadoop1节点执行命令hadoop namenode -format 进行格式化
(7)在hadoop1节点执行命令start-all.sh 启动集群  hadoop1节点执行命令start-all.sh 启动集群 

------------------------------------------------------

1.搭建集群环境,NameNode和JobTracker不在一个节点上。
  假设NameNode在chaoren1上,JobTracker在hadoop2上。
1.1 NameNode所在节点是通过配置文件core-site.xml的fs.default.name的值体现的。
    值还是hdfs://hadoop1:9000
   
     JobTracker所在节点是通过配置文件mapred-site.mlx的mapred.job.tracker的值体现的。
     值修改为http://hadoop2:9001
1.2 在hadoop1上执行命令hadoop-daemon.sh start namenode
     在hadoop2上执行命令hadoop-daemon.sh start jobtracker
     在hadoop2上执行命令hadoop-daemon.sh start secondarynamenode
     在hadoop1上执行命令hadoop-daemons.sh start datanode
     在hadoop1上执行命令hadoop-daemons.sh start tasktracker

猜你喜欢

转载自jsh0401.iteye.com/blog/2111411