注意:
如果你的linux操作系统是从维护人员那里要的 一定要先查看 file /sbin/init 到底是32位还是64位操作系统
1.部署方式
1.1 本地模式:运行时不使用HDFS1.2 伪分布模式:在一个节点上运行hadoop集群
1.3 集群模式:在生产中真正使用的,hadoop的各个进程运行在集群的很多节点上
2.部署集群开发环境
在windows的C:\Windows\System32\drivers\etc\hosts增加ip与主机名绑定(假设我们有5个节点)
hadoop1 NameNode JobTracker
hadoop2 SecondaryNameNode
hadoop3~5 DataNode TaskTracker
192.168.80.101 hadoop1
192.168.80.102 hadoop2
192.168.80.103 hadoop3
192.168.80.104 hadoop4
192.168.80.105 hadoop5
2.1 设置静态ip
(1)使用vi编辑文件/etc/sysconfig/network-scripts/ifcfg-eth2
BOOTPROTO=staticIPADDR=192.168.80.101
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 /etc/profie 设置环境变量,增加的内容如下
export JAVA_HOME=/usr/local/jdkexport HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
保存退出
记得执行source /etc/profile
(4)在hadoop1上编辑配置文件,见最后配置代码
另外注意配置master和slaves master:hadoop2 slaves:hadoop3 hadoop4 hadoop5
(5)把hadoop1上的hadoop-1.1.2复制到其他节点,执行命令
scp -r /usr/local/hadoop hadoop2:/usr/local/scp -r /usr/local/hadoop hadoop2:/usr/local/
scp -r /usr/local/hadoop hadoop2:/usr/local/
scp -r /usr/local/hadoop hadoop2:/usr/local/
scp -r /usr/local/hadoop hadoop2:/usr/local/
scp -p /etc/profile hadoop2:/etc/或scp /etc/profile hadoop2:/etc/ 建议使用前面表示文件
scp -p /etc/profile hadoop3:/etc
scp -p /etc/profile hadoop4:/etc
scp -p /etc/profile hadoop5:/etc
在其他各个节点,执行命令source /etc/profile
(7)在hadoop1节点执行命令hadoop namenode -format 进行格式化
(8)在hadoop1节点执行命令start-all.sh 启动集群
出现的问题汇总:
(1)配置文件conf/*.xml文件编码出现问题 查看方法使用vim 去查看*.xml文件
(2)程序中某个hadoop进程没有启动 解决办法去/hadoop/log/下去查看相应报错的文件的log日志 看到底是什么错误
可能是端口被占用 查看命令 netstart -ant | 端口号 杀进程 kill -9 端口号
hadoop/conf配置文件如下:
<span style="color:#000000;">配置文件core-site.xml,增加内容如下
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
配置文件hdfs-site.xml,增加内容如下
<configuration>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>0.0.0.0:0</value>
</property>
<property>
<name>dfs.datanode.address</name>
<value>0.0.0.0:0</value>
</property>
<property>
<name>dfs.datanode.ipc.address</name>
<value>0.0.0.0:0</value>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:0</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<configuration>
配置文件mapred-site.xml,增加内容如下
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://hadoop1:8000</value>
</property>
<property>
<name>mapred.job.tracker.http.address</name>
<value>0.0.0.0:50030</value>
</property>
<property>
<name>mapred.task.tracker.http.address</name>
<value>0.0.0.0:0</value>
</property>
</configuration></span>
欢迎大家一起交流,我的博客地址是http://blog.csdn.net/huo_chai_gun,转载请标明出去