(1)Ubuntu16.04 机子一台,尽量可以联网。
(2)已安装jdk,具体安装教程请看我以前的文章。
Hadoop下载地址,推荐下载2.7.7版本,因为它比较稳定。
使用wget下载:
root@instance-cqxyyrb2:/# mkdir Hadoop
root@instance-cqxyyrb2:/# cd Hadoop/
root@instance-cqxyyrb2:/Hadoop# wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
下载成功后如:
root@instance-cqxyyrb2:/Hadoop# ls
hadoop-2.7.7.tar.gz
将Hadopp解压到根目录下Hadoop文件夹内,解压时间大概半分钟。
root@instance-cqxyyrb2:/Hadoop# tar -xzvf hadoop-2.7.7.tar.gz
解压后如:
root@instance-cqxyyrb2:/Hadoop# ls
hadoop-2.7.7 hadoop-2.7.7.tar.gz
1.配置/etc/profile
在/etc/profile内配置Hadoop安装路径,在结尾加上下列内容
export HADOOP_HOME=/Hadoop/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
刷新配置文件:
root@instance-cqxyyrb2:/Hadoop/hadoop-2.7.7# source /etc/profile
2.修改hostname
查看本机ip:
root@instance-cqxyyrb2:/Hadoop/hadoop-2.7.7/etc/hadoop# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3e:0c:2c:e8
inet addr:172.18.118.58 Bcast:172.18.127.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:711983 errors:0 dropped:0 overruns:0 frame:0
TX packets:595554 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:394480464 (394.4 MB) TX bytes:158758390 (158.7 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1393574 errors:0 dropped:0 overruns:0 frame:0
TX packets:1393574 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:121113970 (121.1 MB) TX bytes:121113970 (121.1 MB)
得到本机ip为172.18.118.58
配置/etc/hosts和/etc/hostname文件实现修改本机的hostname
将/etc/hosts内容修改为:
173.18.118.58 master
127.0.0.1 localhost localhost.localdomain
将/etc/hostname内容修改为:
master
保存后重启查看hostname:
root@master:~# hostname
master
可以看到hostname修改成功
3.配置ssh
进入~目录:
root@master:~# cd
生成ssh秘钥,输入ssh-keygen -t rsa后一直按enter:
root@master:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:8C72/b14V6HCPSIEVRIHEgHClWNeUZK3bB4KDpWGCLo root@master
The key's randomart image is:
+---[RSA 2048]----+
|o o.oo+*B*+o |
|.. o.B +o.o |
|. = + + . |
| . . o o * . |
|E o . S o . . .|
| . o o + + .|
| o . . o . .|
| . o . o. .|
| . ..o.oo |
+----[SHA256]-----+
授权:
root@master:~# cat .ssh/id_rsa.pub >> .ssh/authorized_keys
检验ssh:
[root@master ~]# ssh master
Last login: Thu Mar 14 11:45:09 2019 from master
[root@master ~]#
表示配置成功。
4.配置Hadoop配置文件
进入解压后的文件夹:
root@master:/Hadoop# cd hadoop-2.7.7/
root@master:/Hadoop/hadoop-2.7.7# ls
bin etc include lib libexec LICENSE.txt NOTICE.txt README.txt sbin share
Hadoop需要配置的核心文件主要有以下几个:
1、hadoop-env.sh
2、core-site.xml
3、hdfs-site.xml
4、mapred-site.xml
5、yarn-site.xml
6、master
7、workers
8、slaves
这些文件都在Hadoop安装目录内的/etc/hadoop内,下面我们一个一个地来配置这些文件。
首先进入配置文件所在目录:
(1)hadoop-env.sh
hadoop-env.sh内配置的是JAVA_HOME,使用vi打开编辑:
root@master:/Hadoop/hadoop-2.7.7/etc/hadoop# vi hadoop-env.sh
找到下列内容:
# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=${JAVA_HOME}
将# export JAVA_HOME=修改为:
#修改前
export JAVA_HOME=${JAVA_HOME}
#修改后
export JAVA_HOME=/Java/jdk1.8
(2)core-site.xml
core-site.xml内存储的是Hadoop的核心配置,包括namenode的地址等。
修改
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
/Hadoop/tmp
(3)hdfs-site.xml
hdfs-site.xml内存储的是HDFS的配置
修改
dfs.http.address
hdfs://master:50070
dfs.namenode.secondary.http-address
master:50090
dfs.replication
1
dfs.name.dir
/Hadoop/data/name
dfs.data.dir
/Hadoop/data/datanode
hadoop.tmp.dir
/Hadoop/data/hadoop/tmp
(4)mapred-site.xml
mapred-site.xml内存储的是mapreduce使用的配置,包括计算框架,内存大小等等。
修改
mapreduce.framework.name
yarn
(5)yarn-site.xml
yarn-site.xml内存储的是yarn计算框架的配置,包括resourcemanager的hostname等等
修改
yarn.resourcemanager.hostname
master
(6)master
master文件存储的是namenode和secondarynamenode的hostname
添加:
master
(7)slaves
slaves文件存储的是datanode的hostname
添加:
master
(8)workers
workers文件存储的是所有在工作的机器的hostname,包括namenode、datanode、secondarynamenode的hostname
添加:
master
要成功启动Hadoop还需要配置以下几个文件:
1、start-dfs.sh
2、stop-dfs.sh
3、start-yarn.sh
4、stop-yarn.sh
这些文件在Hadoop安装目录下的sbin文件夹内。
下面依次配置这些文件。
1.start-dfs.sh、stop-dfs.sh
使用vi打开文件,在文件末尾追加内容:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
2.start-yarn.sh 、stop-yarn.sh
使用vi打开文件,在文件末尾追加内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
最后创建Hdoop运行时所需的文件夹:
root@master:/Hadoop/hadoop-2.7.7/sbin# mkdir -p /Hadoop/data/tmp
root@master:/Hadoop/hadoop-2.7.7/sbin# mkdir -p /Hadoop/data/name
root@master:/Hadoop/hadoop-2.7.7/sbin# mkdir -p /Hadoop/data/datanode
(3)启动Hadoop
第一次启动Hadoop之前需要格式化namenode:
root@master:/Hadoop# hdfs namenode -format
启动之前使用jps查看hadoop节点运行情况:
root@master:/Hadoop/hadoop-2.7.7# jps
37650 Jps
最紧张的时刻终于到来了,启动Hadoop,一起期待吧!
root@master:~# start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [master]
master: starting namenode, logging to /Hadoop/hadoop-2.7.7/logs/hadoop-root-namenode-master.out
master: starting datanode, logging to /Hadoop/hadoop-2.7.7/logs/hadoop-root-datanode-master.out
Starting secondary namenodes [master]
master: starting secondarynamenode, logging to /Hadoop/hadoop-2.7.7/logs/hadoop-root-secondarynamenode-master.out
starting yarn daemons
starting resourcemanager, logging to /Hadoop/hadoop-2.7.7/logs/yarn-root-resourcemanager-master.out
master: starting nodemanager, logging to /Hadoop/hadoop-2.7.7/logs/yarn-root-nodemanager-master.out
root@master:~# jps
26673 NameNode
27155 ResourceManager
27268 NodeManager
27622 Jps
26971 SecondaryNameNode
26783 DataNode
可以看到启动成功啦。