其中NameNode,secondary NameNode,JobTracker运行在Master节点上,DataNode和TaskTracker运行在Slave节点上。
一、准备工作
1.1 centOS6服务器3台
master 192.168.3.140 (master.hadoop.zjportdns.gov.cn)
node1 192.168.3.141 (node1.hadoop.zjportdns.gov.cn)
node2 192.168.3.142 (node2.hadoop.zjportdns.gov.cn)
因为之前配置了DNS,所以只要在DNS私服设置相关域名即可。
1.2 下载安装包
hadoop-2.7.3.tar.gz
上传到三台服务器/usr/local/目录下
1.3关闭防火墙
service iptables stop
1.4安装ntp服务
使用 rpm -q ntp 查询是否已安装,如未安装需要安装(略)
1.5安装JDK1.7 (略)
1.6使用hostname 命令查询主机名, 确保主机名能够被ping通。
1.7ssh免密操作
ssh-keygen -t rsa
一路回车,在/root/.ssh/目录下生成密钥文件。
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
将 id_rsa.pub 和 authorized_keys 文件拷贝到 node1和node2服务器的/root/.ssh/目录下,并修改权限。
chmod -R 700 /root/.ssh
验证:在master机器上执行命令,不需要输入密码能登录到node1就成功了。
ssh node1.hadoop.zjportdns.gov.cn
二、安装hadoop(如无特殊说明,三台服务器都要操作)
2.1 解压
cd /usr/local tar -xvf hadoop-2.7.3.tar.gz
2.2设置环境变量
echo "export HADOOP_HOME=/usr/local/hadoop-2.7.3" >> /etc/profile echo -e "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" >> /etc/profile source /etc/profile echo -e "export JAVA_HOME=/usr/local/jdk1.7.0_79" >> /usr/local/hadoop-2.7.3/etc/hadoop/hadoop-env.sh echo -e "export JAVA_HOME=/usr/local/jdk1.7.0_79" >> /usr/local/hadoop-2.7.3/etc/hadoop/yarn-env.sh
2.3查看hadoop版本
hadoop version
2.4创建工作目录
mkdir -p /hadoop/tmp mkdir -p /hadoop/hdfs/data mkdir -p /hadoop/hdfs/name
2.5修改配置文件(/usr/local/hadoop-2.7.3/etc/hadoop/目录下)
core-site.xml
hadoop.tmp.dir /hadoop/tmp Abase for other temporary directories. fs.defaultFS hdfs://master.hadoop.zjportdns.gov.cn:9000 io.file.buffer.size 4096
hdfs-site.xml
dfs.namenode.name.dir file:/hadoop/hdfs/name dfs.datanode.data.dir file:/hadoop/hdfs/data dfs.replication 2 dfs.namenode.secondary.http-address master.hadoop.zjportdns.gov.cn:9001 dfs.webhdfs.enabled true
复制mapred-site.xml.template为mapred-site.xml,并修改mapred-site.xml
mapreduce.framework.name yarn true mapreduce.jobtracker.http.address master.hadoop.zjportdns.gov.cn:50030 mapreduce.jobhistory.address master.hadoop.zjportdns.gov.cn:10020 mapreduce.jobhistory.webapp.address master.hadoop.zjportdns.gov.cn:19888 mapred.job.tracker http://master.hadoop.zjportdns.gov.cn:9001
yarn-site.xml
yarn.resourcemanager.hostname master.hadoop.zjportdns.gov.cn yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.address master.hadoop.zjportdns.gov.cn:8032 yarn.resourcemanager.scheduler.address master.hadoop.zjportdns.gov.cn:8030 yarn.resourcemanager.resource-tracker.address master.hadoop.zjportdns.gov.cn:8031 yarn.resourcemanager.admin.address master.hadoop.zjportdns.gov.cn:8033 yarn.resourcemanager.webapp.address master.hadoop.zjportdns.gov.cn:8088
slaves(去掉localhost,加上一下内容)
node1.hadoop.zjportdns.gov.cn node2.hadoop.zjportdns.gov.cn
2.6 启动(只在master机器执行)
初次先格式化
cd /usr/local/hadoop-2.7.3/bin/ ./hadoop namenode -format
启动
cd /usr/local/hadoop-2.7.3/sbin/ ./start-all.sh
2.7 验证
在master上执行jps
在node1上执行jps
在node2上执行jps
浏览器访问master的50070,比如http://master.hadoop.zjportdns.gov.cn:50070 或8088端口
2.8停止
/usr/local/hadoop-2.7.3/sbin/stop-all.sh
三常见问题
1. dataNode无法启动
可能是中途修改了hostname等因素造成, 需要将三台机器的初始化目录按2.4步骤清空,然后再执行格式化命令:./hadoop namenode -format。