原生态hadoop2.6平台搭建
hadoop2.6平台搭建
一、条件准备
软件条件:
Ubuntu14.04 64位操作系统,jdk1.7 64位,Hadoop 2.6.0
硬件条件:
1台主节点机器,配置:cpu 8个,内存32G,硬盘200G
5台从节点机器,配置均为:cpu 4个,内存16G,硬盘200G
各个节点IP如下:
服务器名字 |
Ip地址 |
备注(为方便操作将hostname改为如下) |
Hd-Name Node |
192.168.0.10 |
master |
192.168.0.16 |
slave1 |
|
Hd-Data Node 2 |
192.168.0.12 |
slave2 |
Hd-Data Node 3 |
192.168.0.18 |
slave3 |
Hd-Data Node 4 |
192.168.0.13 |
slave4 |
Hd-Data Node 5 |
192.168.0.14 |
slave5 |
注(1)以上机器的登录名密码均为:root 2015
(2)由于只有一台集群外的机器绑定公网,所以通过它,才能访问这6个节点。公网ip:10.120.21.116 用户名:root 密码:2015
二、搭建过程:
1》修改主机名字
通过xshell,远程登录主机10.120.21.116,输入用户名:root,密码2015.登录成功后。执行命令:ssh 192.168.0.10。进入Hd-Name Node机器。然后执行命令:
vi /etc/hosts 进入文件编辑,加入以下内容:
192.168.0.10 master
192.168.0.16 slave1
192.168.0.12 slave2
192.168.0.18 slave3
192.168.0.13 slave4
192.168.0.14 slave5
然后保存退出。然后继续执行命令:
vi /etc/hostname 编辑主机名字为:master
接着执行命令:hostname master。
分别执行命令远程拷贝hosts文件到各个节点,覆盖掉本身的hosts文件。
scp –r /etc/hosts root@192.168.0.16:/etc/
scp –r /etc/hosts root@192.168.0.12:/etc/
scp –r /etc/hosts root@192.168.0.18:/etc/
scp –r /etc/hosts root@192.168.0.13:/etc/
scp –r /etc/hosts root@192.168.0.14:/etc/
然后执行ssh 192.168.0.** 分别登录到各个子节点,修改他们的hostname。进入hostname文件。名字分别改成,slave1,slave2,slave3,slave4,slave5.保存退出。然后分别执行命令:hostname slave1 ,hostname slave2,…这样可以ssh master 这样登录了。
注意:1.如果ssh命令不能用,可能机器本身没有ssh,需要安装:执行命令:
apt-get install ssh。
2.确保各个节点能相互ping通,如果ping不通,查看下防火墙是否关闭。
2》设置节点间的远程无密码登录
执行命令:ssh master 切换到主节点。执行命令:
- ssh-keygen –t rsa ,进入目录/root/.ssh/,发现多了三文件:authorized_keys,id_rsa,id_rsa.pub(copy rsa.pub,然后加入授权列表文件:authorized_keys,cat rsa.pub >> auhorized.key)
- 执行命令cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys.
- 满足authorized_keys的权限要严格按照 权限 -rw-------
- 验证执行:ssh localhost,查看本节点是否可以无密码登录。
将授权文件拷贝到其他节点,执行命令:
scp authorized_keys root@slave1:~/.ssh/
可选s
scp id_rsa root@slave1:~/.ssh/
scp id_rsa.pub root@slave1:~/.ssh/,同样其他节点也执行这样的操作。执行完毕后,测试一下。节点之间能否相互之间无密码登录。
3》拷贝文件
通过WinSCP软件,登录主机10.120.21.116,输入用户名:root,密码2015。实现本地机器与远程机器的文件共享。将本机下的:hadoop2.6和jdk 1.7复制到主机10.120.21.116机器的 /usr/local/目录下。
通过xshell,远程登录主机10.120.21.116,输入用户名:root,密码2015.登录成功后,执然后将10.120.21.116下/usr/local/下的文件:hadoop2.6和jdk1.7安装包复制到,master机器上:/usr/local目录下。
执行命令:scp /usr/local/Hadoop-2.6.0-x64.tar.gz root@192.168.0.10:/usr/local/
scp /usr/local/jdk-7u79-linux-x64.gz root@192.168.0.10:/usr/local/
4》解压文件
执行:ssh 192.168.0.10,登录到master机器。
切换到目录:cd /usr/local 。执行命令:盘
tar -xvzf hadoop-2.6.0-x64.tar.gz
tar –xvzf jdk-7u79-linux-x64.gz。将两个文件解压。执行重命名命令:
mv hadoop-2.6.0-x64 hadoop
mv jdk-7u79-linux-x64 jdk
在/usr/local/hadoop下创建文件目
mkdir tmp
mkdir dfs/data
mkdir dfs/name
5》配置hadoop文件
进入目录:/usr/local/hadoop/etc/hadoop/
配置文件:hadoop-env.sh,打开它修改JAVA_HOME值为(export JAVA_HOME=/usr/local/jdk)
配置文件:yarn-env.sh,打开它修改JAVA_HOME值为(export JAVA_HOME=/usr/local/jdk)
配置文件:slaves,打开它写入内容:
slave1
slave2
slave3
slave4
slave5
配置文件:core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
配置文件:hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
配置文件:mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
配置文件:yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
注:红色部分需要自己根据实际情况修改
6》hadoop和jdk文件夹的复制
将mater节点。/usr/local/hadoop和/usr/local/jdk文件目录远程复制到其他节点,执行命令:
scp –r /usr/local/hadoop root@slave1:/usr/local/
scp –r /usr/local/jdk root@slave1:/usr/local/
…其它节点同样复制。
7》配置环境变量
在master,slave1,slave2,slave3,slave4,slave5,配置环境变量。在/etc/profile目录下添加:
export PATH=$PATH:/usr/local/jdk/bin:/usr/local/jdk/jre/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
保存退出,执行命令:source /etc/profile让其立即生效。
8》验证与运行ssh
执行命令:ssh master
格式化namenode节点,执行命令:hadoop namenode –format
启动hadoop,执行命令:start-all.sh
在master节点和其他从节点下执行命令:jps。查看相关进程是否启动:
在/usr/local/hadoop/share/hadoop/mapreduce目录下执行测试程序:
jadoop jar hadoop-mapreduce-exmaple-2.6.0.jar pi 2 19 ,观察测试结果。至此所有搭建过程完毕