标签:hadoop分布式部署
准备硬件环境
此次用到三台计算机,三台计算机的系统都是Linux,并且以安装好JAVA。IP地址和角色为:
namenode:192.168.0.1
datanode:192.168.0.2
datanode:192.168.0.3
三台计算机之间能够正确解析彼此。因此需要修改/etc/hosts文件,主节点上需要将所有节点的IP地址以及相对应的主机名添加到文件中。作datanode的节点则只需将自己以及主节点的IP地址以及相对应的主机名添加到文件中即可。
安装Hadoop
由于Hadoop要求所有机器上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户。所以要在三台计算机上先创建好hadoop用户并且切换到hadoop用户。
选择将hadoop解压在hadoop用户的家目录中。为了方便以后hadoop版本更新,可以创建一个软链接:ln -s hadoop-版本 hadoop
建立ssh
hadoop的主节点是通过ssh来控制其他节点的进程的,则需要两台计算机之间不需要输入密码,所以要公钥私钥的方式来认证。
首先要确保每台计算机上都有ssh服务并且正常启动。然后在主节点生成一对密钥,再将公钥发给其他的节点。为了方便管理文件,可在hadoop用户家目录中生成新的文件来保存公钥私钥。紧接着将所有的公钥文件的权限修改:chmod 644 authorized_keys,确保其他人不可有写权限。最后需要对三台计算机上的sshd服务进行配置,修改文件/etc/ssh/sshd_config。修改如下:
PasswordAuthentication no
AuthorizedKeysFile /home/hadoop/.ssh/authorized_keys
配置完成后可ssh连接看是否是不是不用输入密码就可连接(若两台主机第一次连接则需要输入yes)
hadoop环境变量
在/home/hadoop/hadoop/conf配置文件目录中找到hadoop-env.sh,设置JAVA_HOME变量
hadoop配置文件
这conf中找到slaves文件,此文件是指定datanode的,一行指定一个主机名。master文件是用来指定namenode的,则将主节点的主机名填入即可。
在安装目录中找到core-site.xml、hdfs-site.xml以及mapred-site.xml并进行修改。
core-site.xml:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://(master IP):9000</value>
</property>
mapred-site.xml:
<property>
<name>mapreduce.jobtracker.address</name>
<value>(master IP):9001</value>
<description>NameNode</description>
</property>
hdfs-site.xml不需要修改
部署hadoop
将配置好的文件传给其他节点,保证目录结构一致
启动hadoop
启动之前要先格式化namenode,进入/home/hadoop/hadoop下执行:bin/hadoop namenode -format
bin/下有许多启动脚本,根据需要来使用:
start-all.sh 启动所有守护
start-mapred.sh 启动map/reduce守护。Jobtracker和Tasktracker
start-dfs.sh 启动hadoop DFS守护。Namenode和Datanode
有启动脚本也自然都相对应的停止脚本
hadoop在线添加节点
在slaves文件添加新节点的IP或者主机名,然后新节点上启动服务并执行start-balance.sh
hadoop在线删除节点
在master上修改mapred-site.xml:
<property>
<name>dfs.hosts.exclude</name>
<value>/home/hadoop/hadoop/conf/datanode-excludes</value>
</property>
然后创建datanode-excludes文件,并添加要删除的主机,一行一个。接着执行:bin/hadoop dfsadmin -refreshNodes进行节点刷新,此操作后会进行后台迁移数据,等删除节点的状态为Decommissioned即可安全关闭。
datanode白名单
http://www.tuicool.com/articles/zINvYbf
标签:hadoop分布式部署
原文地址:http://11920819.blog.51cto.com/11910819/1846570