1.检查环境
Hadoop需要JDK、ssh、rsync这些软件
输入如下指令
指令 | 用途 |
ssh -v | 可以检查 ssh的版本 |
java -version | 可以检查jdk的版本 |
rsync | 可以查看是否已安装rsync |
ssh、rsync通过yum就可以安装了。
jdk如果不会安装,可以看这里(http://blog.csdn.net/sunyx1130/article/details/50819068)
2.上传hadoop包到linux上
通过xftp就可以了,如果不会,可以看这里(http://blog.csdn.net/sunyx1130/article/details/50819766)
3.解压hadoop文件
4.将解压出的文件 移动到 /opt/hadoop下并重命名为hadopp272
mv hadoop-2.7.2/ hadoop272(因为担心程序会不识别-和.的符号,所以改了,不知道不改会怎么样,弄完了试试。)
5.集群的设置重点的东西要开始了~
5.1修改主机名和网络配置
NameNode改为master
DataNode改为 node1、node2
5.1.1清空/etc/hosts中的内容,再追加相关的节点信息进去(每台机器都要加)
x.x.x.x master
x.x.x.x node1
x.x.x.x node2
切记,是每一台,每一台,每一台。
ip地址最好是静态的,如果不会配置可以看这里(http://blog.csdn.net/sunyx1130/article/details/50824958)
每一台机器都分别设置下hostname
在/etc/hostname中修改。
如果不改的话,hdfs格式化的时候就会报错了。
5.1.2修改/etc/sysconfig/network中的信息。如果没有就新增相关条目。
NETWORKING=yes HOSTNAME=master NETWORKING_IPV6=yes IPV6_AUTOCONF=no
NETWORKING=yes HOSTNAME=node1 NETWORKING_IPV6=yes IPV6_AUTOCONF=no
NETWORKING=yes HOSTNAME=node2 NETWORKING_IPV6=yes IPV6_AUTOCONF=no
如果上面的两步不做,ssh就会找不到主机的。
5.2配置SSH,并让master免验证登陆自身服务器和node服务器
生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用“”空字符串表示无密码。
ssh-keygen -t rsa -P ""
将生成的密钥写入authorized_keys文件。
cat .ssh/id_rsa.pub >>.ssh/authorized_keys
最后检查
ssh master
5.3将密钥文件拷贝到其他的机器上。
在node1和node2上分别执行
先从master进入到node1
ssh master
使用scp拷贝master上的文件到 本地
scp root@master:~/.ssh/id_rsa.pub ~/.ssh/master_rsa.pub
将生成的密钥写入authorized_keys文件
这样从master登录到node1就可以不用密码了。
6.配置hadoop。
6.1配置hadoop主目录
vi /etc/profile
export HADOOP_HOME=/opt/hadoop/hadoop272
source /etc/profile
使用 cd $HADOOP_HOME 能够进入到你设置的目录下,那么你就安装配置成功啦~
6.2分别配置hadoop-env.sh、yarn-env.sh、slaves、core-site.xml、hdfs-site.xml和mapred-site.xml
进入到$HADOOP/etc/hadoop目录下
6.2.1配置hadoop-env.sh
一定要设置绝对路径。
6.2.2配置yarn-env.sh
默认exprot是被注释掉的,一定要设置绝对路径。
6.2.3配置slaves
将节点插入到slaves中,和hosts中的名字相同
6.2.4配置core-site.xml
添加以下信息
hadoop.tmp.dir 临时文件
fs.default.name hadoop的HDFS系统的命名,位置为主机的9000端口
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/data/hadoop-${user.name}</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://Master:9000</value>
</property>
</configuration>
6.2.5配置hdfs-site.xml
添加以下信息
dfs.http.address 配置了hdfs的http的访问位置
dfs.replication 配置了文件块的副本数,一般不大于从机的个数
<configuration>
<property>
<name>dfs.http.address</name>
<value>Master:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
6.2.4配置mapred-site.xml
由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn
mapred.map.tasks和mapred.reduce.tasks分别为map和reduce的任务数
其它属性为一些进程的端口配置,均配在主机下
注意:默认情况下没有mapred-site.xml,只有mapred.site.xml.template,需要cp mapred.site.xml.template mapred.site.xml
添加以下信息
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>Master:9001</value>
</property>
<property>
<name>mapred.map.tasks</name>
<value>20</value>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>4</value>
</property>
<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>
6.2.5配置yarn-site.xml
该文件为yarn框架的配置,主要是一些任务的启动位置
<configuration>
<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.webapp.address</name>
<value>Master:8088</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.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>
</configuration>
6.3将配置好的hadoop复制到其他节点
scp –r /opt/hadoop root@node1:/opt/
scp –r /opt/hadoop root@node2:/opt/
注意:数据节点一定也要安装好 jdk并且配置好环境,否则无法启动hdfs,不要问我为什么。
7启动hadoop
7.1格式化hdfs。
进入到$HADOOP_HOME/bin
输入:hdfs namenode -format;
7.2启动hdfs
进入到 $HADOOP_HOME/sbin
输入:start-dfs.sh
7.3启动yarn
继续沿用上一部的路径
输入:start-yarn.sh
jps通过java提供的工具查看到进程信息。
8查看运行情况
8.1查看集群状态
$HADOOP/bin/hdfs dfsadmin –report
8.2查看文件块组成
$HADOOP/bin/hdfs fsck / -files -blocks
8.3访问http://xxxxxx:50070端口访问
如果可以打开网站,说明配置成功了。
如果本地可以打开,其他机器不能访问,就很可能是防火墙引起的,如果是centos的话,可以看看这里(http://blog.csdn.net/sunyx1130/article/details/50833984)。