本文使用了一台ECS标配服务器,同时部署了namenode,secondary namenode,datanode等。(学生优惠只给买一台。。大写的抠门)
1、环境与准备
阿里云ECS服务器,centOS7。
SecureCRT 8.3.0
jdk1.8.0_162:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
hadoop-2.7.4.tar.gz:http://www.apache.org/dyn/closer.cgi/hadoop/common/
2、开始搭建
① 上传并解压。tar -x *.tar.gz 或者 unzip *.zip(习惯不是很好,最好不要放在根目录下)
② ./bin/hadoop version 查看hadoop版本信息
java -version 查看java版本信息
③ 配置ssh免密码登录本机
阿里云给的系统自带ssh
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
④ 配置文件设置
修改配置文件,配置文件在该目录下面:~/hadoop2.7.2/etc/hadoop/
a.vim core-site.xml:注释信息不要复制进去
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> //设置hdfs的ip和端口,ip最好写成主机的真实ip,因为以后会用到。
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/username/tmp_hadoop2.7</value> //该目录存放hdfs的重要信息,默认是在/tmp下,但有的主机重启后会清空/tmp,故指定一个新地址。
</property>
</configuration>
b.vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name> //指定hadoop创建文件时的复制数量,默认是3
<value>2</value>
</property>
<property>
<name>dfs.permissions.enabled</name> //将该项的值置为false,方便读写hdfs。
<value>false</value>
</property>
</configuration>
c.vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name> //c,d两步是配置yarn来管理mapreduce资源。
<value>yarn</value>
</property>
</configuration>
d.vim yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>heguozi</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
e.vim hadoop-env.sh,修改下面一行:
export JAVA_HOME=${JAVA_HOME}
为:
export JAVA_HOME=(你的jdk地址)//将JAVA_HOME改为你主机上的地址,不然启动的时候会报错:找不到JAVA_HOME
⑤ 在localhost上初始化文件系统
bin/hdfs namenode -format
⑥ 配置好,格式化后就可以启动集群了
a.可以一个一个启动
$ sbin/hadoop-daemon.sh start namenode
b.可以start-all
sbin/start-all.sh
在这之后,就可以愉快的玩耍了~
Ps.
① 如果有多台机器,可以在修改好配置文件后,将配置文件传给其他节点
$scp etc/hadoop/* root@node2:/root/hadoop-2.7.2/etc/hadoop
$scp etc/hadoop/* root@node3:/root/hadoop-2.7.2/etc/hadoop
$scp etc/hadoop/* root@node4:/root/hadoop-2.7.2/etc/hadoop
.....................
② 至于在一台机器上同时部署所有的服务有什么影响,可以移步论坛:http://bbs.csdn.net/topics/390887079
注意坑点:
① 如果使用java9的版本,会在初始化format的时候报错,建议通过上面的地址下载java8。
② 在sbin/start-all.sh 的时候,如果没有成功,一定要记得用 sbin/stop-all.sh 把其他已经成功启动的服务kill掉。