第一大步骤:伪分布式安装
1.1 设置ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth?
BOOTPROTO=static
IPADDR=192.168.1.110
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
虚拟机复制的时候需要注意的地方:IPADDR需要修改,同时mac地址也需要修改 ifconfig -a 查看mac地址
执行命令 service network restart验证: ifconfig
1.2 关闭防火墙
执行命令 service iptables stop
验证: service iptables status
1.3 关闭防火墙的自动运行
执行命令 chkconfig iptables off
验证: chkconfig --list | grep iptables --正常显示五个off
1.4 设置主机名
执行命令 (1)hostname chaoren --零时更改
(2)vi /etc/sysconfig/network --真正更改主机名 重启生效 立刻重启命令 :-- reboot -h now
1.5 ip与hostname绑定
执行命令 vi /etc/hosts --增加本机ip+主机名 例如:192.168.230.128 hadoop
注意:需要把集群环境中的机器也增加进去
验证: ping hadoop1.6 设置ssh免密码登陆
执行命令
(1)cd /root/.ssh
(2)ssh-keygen -t rsa --一路回车按下去
(3)cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys 或者cat id_rsa.pub >>authorized_keys
(4)ssh hadoop 选择--- yes
验证: ssh hadoop1.7 安装jdk
执行命令 (1)cd /usr/local
(2)chmod u+x jdk-6u24-linux-i586.bin
(3)./jdk-6u24-linux-i586.bin
(4)mv jdk-1.6.0_24 jdk
(5)vi /etc/profile 增加内容如下:
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
(6)source /etc/profile
验证: java -version
1.8 安装hadoop
执行命令 (1)tar -zxvf hadoop-1.1.2.tar.gz
(2)mv hadoop-1.1.2 hadoop
(3)vi /etc/profile 增加内容如下:
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
(4)source /etc/profile
(5)修改conf目录下的配置文件hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml
1.hadoop-env.sh
export JAVA_HOME=/usr/local/jdk/
2.core-site.xml
ps:NameNode所在节点是通过配置文件core-site.xml的fs.default.name的值体现的
<configuration><property>
<name>fs.default.name</name>
<value>hdfs://centos:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/centos/tmp</value>
</property>
</configuration>
3.hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
4.mapred-site.xml
ps:JobTracker所在节点是通过配置文件mapred-site.mlx的mapred.job.tracker的值体现的
<configuration><property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001</value>
</property>
</configuration>
(6)hadoop namenode -format --格式化
注意:执行HDFS的格式化时发生了什么事情?
(1)是NameNode创建自己的目录结构 version的ID namenode与datanode要是一致的 不要多次格式化hdfs
(7)start-all.sh
验证: (1)执行命令jps 如果看到5个新的java进程,分别是NameNode、SecondaryNameNode、DataNode、JobTracker、TaskTracker
(2)在浏览器查看,http://centos:50070 http://centos:50030
操作完成上面步骤表示hadoop的伪分布就已经完成。
第二大步骤:hadoop分布式部署步骤
1)直接完整复制虚拟机
--删除复制之后的两个虚拟机的配置(即上面的伪分布的步骤)
这里我只删除了免密码登陆
命令:
cd /root/.ssh
rm -rf * --删除密匙
ssh-keygen -t rsa --一路回车按下去
cat id_rsa.pub >>authorized_keys
more authorized_keys --查看密匙是否成功
ssh localhost
2)实现主机都能操作从节点,实现免密码登陆
现在就假设把 hadoop 的密码复制到hadoop0上去
ssh-copy-id -i hadoop0 --在hadoop主机上操作
同理把hadoop1的也复制到hadoop0上去
ssh-copy-id -i hadoop0 --在hadoop1主机上操作
3)hadoop0的密匙复制到hadoop 和hadoop1上去
scp /root/.ssh/authorized_keys hadoop:/root/.ssh/ --在hadoop0主机上执行
4)如果删除的hadoop和jdk 文件夹 这里就需要复制过去了
1)把hadoop的hadoop目录下的logs和tmp删除
2)把hadoop中的jdk、hadoop文件夹复制到hadoop0和hadoop1节点
scp -r /usr/local/jdk hadoop0:/usr/local/
scp -r /usr/local/hadoop hadoop0:/usr/local/
3)把hadoop的/etc/profile复制到hadoop0和hadoop1节点,在目标节点中执行source /etc/profile
5)编辑hadoop的配置文件slaves,改为从节点的hostname,分别是hadoop0和hadoop1
这里的步骤是把hadoop主机当作主节点 vi /etc/usr/local/hadoop/conf/slaves
6)格式化,在hadoop节点执行hadoop namenode -format
7)启动,在hadoop节点执行start-all.sh
注意:对于配置文件core-site.xml和mapred-site.xml在所有节点中都是相同的内容