阿里云服务器ESC搭建Hadoop坎坷历程

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。感觉都没啥问题,反正各种试吧浪费一天半时间终于知道哪里错了。阿里云安全组需要配置,放开端口号,其他节点访问 。(不了解网络,都是泪啊)坑啊!

你可能感兴趣的:(阿里云服务器ESC搭建Hadoop坎坷历程)