1.配置hosts
各linux版本hosts文件位置可能不同,redhat是在 /etc/hosts,编辑之:
172.17.0.1 master
172.17.0.2 resorucemanager
172.17.0.3 datanode1
172.17.0.4 datanode2
172.17.0.5 datanode3
然后copy到其余四台服务器,然后分别执行 /bin/hostsname hostsname
例如:master上执行 /bin/hostsname master,使之生效。
2.配置ssh
2.1 创建hadoop用户
注意:hadoop有两种运行模式,安全模式和非安全模式。安装模式是以指定在健壮的,基于身份验证上运行的,如果无需运行在非安全模式下,可以直接使用root用户。
安全模式下要确保hdfs和yarn以不同的用户身份运行,如hdfs和yarn,还有确保mapreduce jobhistory server以user mapred运行。推荐这三个身份使用一个组名为hadoop。这里为了方便直接使用root。
2.2 配置master无密码ssh各服务器
在master执行操作:
ssh-keygen -t rsa
然后一直回车,最后在/root/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub
cat id_rsa.pub > ./authorized_keys
然后复制到其他服务器(若没有.ssh文件夹需手动创建)
scp authorized_keys resourcemanager:/root/.ssh/
scp authorized_keys datanode1:/root/.ssh/
scp authorized_keys datanode2:/root/.ssh/
scp authorized_keys datanode3:/root/.ssh/
验证能否无密码ssh,在master服务器上执行操作:
ssh master
注意:第一次可能会提示输入yes or no,之后就可以直接ssh登录了。
同理验证其余四台主机是否可用无密码ssh登录。
3.配置jdk和hadoop环境变量
版本:jdk1.7.0_55 hadoop-2.4.0
下载并解压到
/opt/tools/jdk1.7.0_55
/opt/hadoop-2.4.0
编辑 /etc/profile,在最后加上
export JAVA_HOME=/opt/tools/jdk1.7.0_55
export JRE_HOME=$JAVA_HOME/jre
export HADOOP_HOME=/opt/hadoop-2.4.0
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
保存退出,执行下列命令使之生效
source /etc/profile
4.配置hadoop
配置文件目录为hadoop-2.4.0/etc/hadoop/
4.1 在yarn-env.sh 和hadoop-env.sh文件中加上jdk路径
export JAVA_HOME=/opt/tools/jdk1.7.0_55
4.2 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<final>true</final>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/tmp/hadoop-${user.name}</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
4.3 hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
4.4 mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>Execution framework set to Hadoop YARN.</description>
</property>
</configuration>
4.5 yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>jobtracker:9001</value>
<description>The address of the applications manager interface in the RM.</description>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>jobtracker:18030</value>
<description>The address of the scheduler interface,in order for the RM to obtain the resource from scheduler</description>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>jobtracker:18025</value>
<description>The address of the resource tracker interface for the nodeManagers</description>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>jobtracker:18035</value>
<description>The address for admin manager</description>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>jobtracker:18088</value>
<description>The address of the RM web application.</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4.6 slaves
在该文件中添加
datanode1
datanode2
datanode3
注意:上面配置文件中出现的目录需要自己创建。配置文件需要复制到各个服务器上,并且个服务器目录结构要相同。
5.运行hadoop
为了以防某个节点未启动报错,建议单独启动每项节点,启动顺序依次为:
格式化namenode(master):
hdfs namenode -format
启动namenode(master):
/opt/hadoop-2.4.0/sbin/hadoop-daemon.sh --config /opt/hadoop-2.4.0/etc/hadoop --script hdfs start namenode
启动datanode(master):
/opt/hadoop-2.4.0/sbin/hadoop-daemon.sh --config /opt/hadoop-2.4.0/etc/hadoop --script hdfs start datanode
启动resourcemanager(resourcemanager)
/opt/hadoop-2.4.0/sbin/yarn-daemon.sh --config /opt/hadoop-2.4.0/etc/hadoop start resourcemanager
启动nodemanager(resourcemanager)
/opt/hadoop-2.4.0/sbin/yarn-daemon.sh --config /opt/hadoop-2.4.0/etc/hadoop start nodemanager
启动WebAppProxy Server(resourcemanager)
/opt/hadoop-2.4.0/sbin/yarn-daemon.sh start proxyserver --config /opt/hadoop-2.4.0/etc/hadoop
启动MapReduce JobHistory Server(resourcemanager)
/opt/hadoop-2.4.0/sbin/mr-jobhistory-daemon.sh start historyserver --config /opt/hadoop-2.4.0/etc/hadoop
注意:上面括号中的内容表示在哪个服务器上执行命令。启动前需要所有服务器的防火墙关闭,执行
service iptables stop
也可以想一次性启动,直接在master上启动hdfs,在resourcemanager上启动yarn资源管理系统
启动hdfs(master)
/opt/hadoop-2.4.0/sbin/start-dfs.sh
启动yarn(resourcemanager)
/opt/hadoop-2.4.0/sbin/start-yarn.sh
若一切顺利,在各服务器上输入jps
master显示:
30739 Jps
9547 NameNode
9746 SecondaryNameNode
resourcemanager显示:
2917 Jps
27910 ResourceManager
各个datanode显示:
24334 Jps
1594 NodeManager
1027 DataNode
至此,一个完全分布式hadoop集群搭建成功
关闭hadoop按照上面启动的顺序呢,把start改成stop即可。
来源:oschina
链接:https://my.oschina.net/u/1424330/blog/262392