1.本地安装jdk

请参考linux安装jdk:juejin.im/post/5bc6f5…

2.安装SSH、配置SSH无密码登陆

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server

  1. 检查是否安装了SSH

rpm -qa | grep ssh

如果返回的结果如下图所示,包含了 SSH client 跟 SSH server,则不需要再安装。

openssh-7.4p1-13.el7_4.x86_64
openssh-server-7.4p1-13.el7_4.x86_64
libssh2-1.4.3-10.el7_2.1.x86_64
复制代码
  1. 若需要安装,则可以通过 yum 进行安装(安装过程中会让你输入 [y/N],输入 y 即可):

sudo yum install openssh-clients
sudo yum install openssh-server

  1. 测试 SSH 是否可用:

ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

  1. SSH无密码登录

首先输入 exit 退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

exit                           # 退出刚才的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,都按回车就可以
cat id_rsa.pub >> authorized_keys  # 加入授权
chmod 600 ./authorized_keys    # 修改文件权限
复制代码

~的含义 在 Linux 系统中,~ 代表的是用户的主文件夹,即 “/home/用户名” 这个目录,如你的用户名为 hadoop,则 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注释。

此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了。

  1. 远程免密登录
  • 将文件拷贝至远程服务器

scp ~/.ssh/id_rsa.pub root@<remote_ip>:pub_key

  • 将内容追加到authorized_keys文件中, 不过要登录远程服务器来执行这条命令

cat ~/pub_key >>~/.ssh/authorized_keys

3.安装 CDH5.7.0(Hadoop2.6.0)

  1. 解压hadoop-2.6.0-cdh5.7.0.tar.gz

tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz

  1. 修改hadoop-2.6.0-cdh5.7.0/etc/hadoop目录下的 hadoop-env.sh

#设置为Java安装的根目录
export JAVA_HOME=/usr/local/src/jdk1.7

至此独立模式已完成

伪分布模式

  1. 修改hadoop-2.6.0-cdh5.7.0/etc/hadoop目录下的 core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:8020</value>
    </property>
    <!-- Hadoop的临时存放目录 -->
    <property> 
        <name>hadoop.tmp.dir</name> 
        <value>/usr/local/src/tmp</value> 
    </property>
</configuration>
复制代码
  1. 修改hadoop-2.6.0-cdh5.7.0/etc/hadoop目录下的 hdfs-site.xml
<configuration>
    <!-- DataNode存储block的副本数量,默认值是3个 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
复制代码
  1. 格式化文件系统

bin/hdfs namenode -format

  1. 启动NameNode守护进程和DataNode守护进程

sbin/start-dfs.sh

  1. 检查是否启动

jsp

9100 Jps
8853 DataNode
8745 NameNode
9000 SecondaryNameNode
复制代码

访问页面:http://localhost:50070/ 6. 关闭NameNode守护进程和DataNode守护进程

sbin/stop-dfs.sh

YARN环境搭建

  1. 修改hadoop-2.6.0-cdh5.7.0/etc/hadoop目录下的 mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
复制代码
  1. 修改hadoop-2.6.0-cdh5.7.0/etc/hadoop目录下的 yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
复制代码
  1. 启动YARN相关的进程
sbin/start-yarn.sh
复制代码
  1. 验证

jps

1900 NodeManager
1802 ResourceManager
复制代码

访问页面:http://localhost:8088/ 5. 停止YARN相关的进程

sbin/stop-yarn.sh