1.准备工作
a. 5台服务器,1个主节点,4个子节点。
b.用Mac自带终端 Shell配置多账号管理
ssh 的用户配置文件是放在当前用户根目录下的 .ssh 文件夹里(~/.ssh/config,不存在则新创建一个),其配置写法如下:
Host master
Hostname 10.18.6.46
Port 22
User root
多个账户依次写出即可,这样在登录的时间就可以不用在输入ssh root@IP, 直接ssh master 回车输入密码,感觉输入密码还不爽,那就配置免密码登录,免密码登录配置入下:
ssh-keygen 一路回车
ssh-copy-id(先自己后其他机器 ,这里没有操作自己,用着也没啥影响) 主机名称(或者IP地址)
这个时候就可以直接在终端输入 ssh master 直接登录进来了。
c.检查防火墙是否关闭,阿里云的默认给关闭了,查了下是关闭的。
d.修改主机名称(在配置本地登录的时候已修改过)
e.配置映射文件 (此处很坑,坑了半天)
vim /etc/hosts
192.168.50.183 hd09-01
192.168.50.184 hd09-02
192.168.50.185 hd09-03
此处要注意:如果你用的是云服务器,需要把自己的IP设置为内网IP,其他IP设置为外网IP,同理在其他节点上主节点IP为外网自己的子节点为内网其他子节点为外网,如果不这样设置就会出现端口被占用。
2.安装java jdk
a.去官网下载jdk,下载Linux系统的,根据自己是32位还是64位下载对应的安装包。下载到桌面
b.通过shell把桌面的jdk发送个主机master上
scp -r /桌面地址 master: /
c.在master上解压jdk
tar -zxvf -C /root/hd
d.配置jdk的环境变量
vim /etc/profile
export JAVA_HOME=/root/hd/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
配置完毕生效环境变量
source /etc/profile
e.其他机器同样需要jdk 和 配置环境变量
scp -r hd/jdk1.8.0_141/ hd09-03:hd/jdk1.8.0_141
scp -r /etc/profile hd09-02:/etc
配置完毕需要加载环境变量
source /etc/profile
通过这种复制比较慢,也可以直接上传jdk压缩包 解压 再配置环境变量 然后加载配置好的环境变量, 这种方式比较快。
3.安装HDFS集群
a.去官网下载Hadoop压缩包
b.把压缩包通过scp的方式发送到master上
c.把压缩包解压到hd文件夹下
d.修改Hadoop-env.sh (配置Hadoop的java jdk环境)
vim hd/hadoop-2.8.5/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/root/hd/jdk1.8.0_181
e.修改core-site.xml(配置通信地址)
vim hd/hadoop-2.8.5/etc/hadoop/core-site.xml
fs.defaultFS
hdfs://master:9000
f.修改hdfs-site.xml (配置namenode 和 datanode的信息存储位置)
vim hd/hadoop-2.8.5/etc/hadoop/hdfs-site.xml
dfs.namenode.name.dir
file:/root/hd/dfs/name
dfs.datanode.data.dir
file:/root/hd/dfs/data
g.配置Hadoop的环境变量
vim /etc/profile
export JAVA_HOME=/root/hd/jdk1.8.0_181
export HADOOP_HOME=/root/hd/hadoop-2.8.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
以上配置需要在每天机器操作,可以scp 方式发送解压好 和 配置好的文件夹 也可以发送压缩包 再解压 配置 根据个人喜欢吧
h.初始化namenode (创建配置中的/root/hd/dfs/name)
hadoop namenode -format
k.在主机上启动namenode
hadoop-daemon.sh start namenode
kk.在子节点启动datanode
hadoop-daemon.sh start datanode
kkk.访问namenode提供的web端口:50070(用阿里云服务始终访问不了404,各种查啊,没有查到,搞到半夜,发现问题了 ,50070端口没开放,去阿里云安全组设置吧)
4.批量启动节点
a.修改配置文件slaves (各子节点的名称配置与此)
vim hd/hadoop-2.8.5/etc/hadoop/slaves
hd09-02
hd09-03
b.执行启动命令
start-dfs.sh (启动)
stop-dfs.sh (停止)
jps(查看是否启动/关闭)
注意:以上配置看着很顺利,检查各节点都启动好了,但是在网页上始终不显示lives node,始终显示为0,各种百度。各种查看配置文件。各种jps。感觉都没啥问题,反正各种试吧浪费一天半时间终于知道哪里错了。阿里云安全组需要配置,放开端口号,其他节点访问 。(不了解网络,都是泪啊)坑啊!