阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop2.5.0单节点以及多节点安装教程

226次阅读
没有评论

共计 12686 个字符,预计需要花费 32 分钟才能阅读完成。

1、安装 jdk
可通过 whereis java 命令,查看 java 的安装路径;或者通过 which java 查看 java 的执行路径;更新 /etc/profile 文件,在文件的末尾加入以下命令:
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_20
export JRE_HOME=/usr/lib/jdk/jdk1.8.0_20/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
使用 source /etc/profile 命令,更新系统的环境变量
最后,将系统默认 jdk 修改过来

$ sudo update-alternatives –install /usr/bin/java java /usr/lib/jdk/jdk1.8.0_20/bin/java 300
$ sudo update-alternatives –install /usr/bin/javac javac /usr/lib/jdk/jdk1.8.0_20/bin/javac 300
$ sudo update-alternatives –config java
$ sudo update-alternatives –config javac

————————————– 分割线 ————————————–

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

————————————– 分割线 ————————————–

2、安装 SSH(集群已安装配置好 SSH 免密码服务;若是搭建多台节点,需要节点户县之间均能免密码 SSH 登录)
      注意:
      Linux 系统中 $HOME 目录下的.ssh 目录为用户所有,权限必须为 700(只有用户自己可以全权访问)
    .ssh 目录下的授权文件“authorized_keys”为用户所有,权限必须为 644(只有权限为 644,才可以实现免密码,否则 ssh 连接时,仍需要输入密码)
    配置两台计算节点之间免密码登录(假设为 master 免密码登录 slave):
      1、先生成公钥和私钥:ssh-keygen -t rsa -P “”
      2、将 master 的公钥拷贝至 slave 的 authorized_keys 文件中:hduser@master:ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@slave

3、将 Hdoop 安装目录解压至 opt 目录
tar -zxvf archive_name.tar.gz

4、更改 Hadoop 目录权限和所有者
sudo chown -R hu:hu hadoop-2.5.0
sudo chmod -R 755 hadoop-2.5.0

5、配置 Hadoop(以下为单节点配置,多节点中,也只需要配置主节点的环境变量即可)

在 ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh 中,添加 JAVA 安装目录:
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_20/bin/java

设置用户环境变量,以方便使用 shell 操作 hadoop,将以下设置添加至~/.bashrc 文件中

export JAVA_HOME=$HOME/java
export HADOOP_DEV_HOME=$HOME/hadoop-0.23.1
export HADOOP_MAPRED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HADOOP_LOG_DIR=${HADOOP_DEV_HOME}/logs
export PATH=${HADOOP_DEV_HOME}/bin

修改 mapred-site.xml
在 ${HADOOP_HOME}/etc/hadoop/ 下,将 mapred-site.xml.templat 重命名成 mapred-site.xml,并添加以下内容

<configuration>
    <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
    </property>
</configuration>

修改 core-site.xml
在 ${HADOOP_HOME}/etc/hadoop/ 中,修改 core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000/</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/hadoop-data/tmp/hadoop-${user.name}</value>
                <description>A base for other temporary directories.</description>
        </property>
</configuration>

修改 yarn-site.xml

在 ${HADOOP_HOME}/etc/hadoop/ 中,修改 yarn-site.xml:

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

修改 hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
 <value>1</value>
 </property>
 <property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

修改 slaves

在 slaves 文件中添加你的节点 ip 或者 host;如:master
如果有多个 NodeManager,可一次添加到该文件中,每个占一行。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-12/110458p2.htm

6、配置 Hadoop(多节点配置)

流程如下:
1、配置好一台单节点后,如下修改该节点的 hadoop 配置文件,并将 hadoop 目录分发至其余节点
2、将其他节点的 hadoop 目录所有者改为 hadoop 的使用者,并将 hadoop 目录权限改为 755
3、在其他节点上创建 hdfs 的本地目录,将目录所有者改为 hadoop 的使用者,并将目录权限改为 755;此处为创建 /hdfs/name 和 /hdfs/data 文件夹,其中 /hdfs/name 文件夹用来存放系统元数据,/hdfs/data 用来存放数据块
4、创建 /opt/hadoop-data 目录,在该目录下创建 tmp 和 logs 文件夹。其中 logs 文件夹作为日志目录,tmp 文件夹作为临时目录;将 hadoop 的程序和 hadoop 生成的日志以及中间数据分开,有利于 hadoop 的维护
5、无需更改其他节点的~/.bashrc 文件

修改 core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000/</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
 <name>hadoop.tmp.dir</name>
<value>/opt/hadoop-data/tmp/hadoop-${user.name}</value>
<description>A base for other temporary directories.</description>
</property>
</configuration>

修改 hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value></value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hdfs/data</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

<property>
<name>dfs.federation.nameservices</name>
<value>master</value>
</property>

<property>
<name>dfs.namenode.rpc-address.master</name>
<value>192.168.168.101:9000</value>
</property>
<property>
 <name>dfs.namenode.http-address.master</name>
<value>192.168.168.101:23001</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address.master</name>
<value>192.168.168.101:23002</value>
</property>
</configuration>

修改 mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.168.101:10020</value>
</property>
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.168.101:19888</value>
</property>
</configuration>

修改 yarn-site.xml

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<property>
<description>
host is the hostname of the resource manager and port is the port on which the NodeManagers contact the Resource Manager
</description>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.168.101:8031</value>
</property>

<property>
<description>
the host is the hostname of the ResourceManager and the port is the port on which the clients can talk to the Resource Manager.
</description>
<name>yarn.resourcemanager.address</name>
<value>192.168.168.101:8032</value>
</property>

<property>
<description>
host is the hostname of the resourcemanager and port is the port on which the Applications in the cluster talk to the Resource Manager.
</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.168.101:8030</value>
</property>

<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.168.101:8033</value>
</property>

<property>
<description>Resource Manager 的 Web 访问地址 </description>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.168.101:50030</span></strong></value>
</property>

<property>
<name>yarn.nodemanager.local-dirs</name>
<value>${hadoop.tmp.dir}/nodemanager/local</value>
<description>the local directories used by the nodemanager to store the temp file</description>
</property>

<property>
<name>yarn.nodemanager.log-dirs</name>
<value>${hadoop.tmp.dir}/nodemanager/logs</value>
<description>the directories used by Nodemanagers as log directories</description>
</property>
</configuration>

7、启动 HDFS
先格式化集群(需要使用 root 用户格式化 namenode):bin/hadoop namenode -format&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

注意:hdfs 在本地的目录权限和所有者,若权限过低或者所有者与 hadoop 的使用者不是同一个用户,则 namenode 或者 datanode 将无法启动。
解决方法:将 hdfs 的本地目录所有者改为 hadoop 的使用用户,并将目录权限设为 755&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
注意:datanode 无法启动时,大多原因就是因为 hadoop 的 datanode 的 VERSION 文件中的 namespaceID 与 namenode 中的 version 文件中的 namespaceID 二者出现不一致。
解决办法:

1:首先停掉 namenode 上相关的进程:切换到 hadoop 的 /sbin 目录下:
sh  stop-dfs.sh
sh stop-yarn.sh
2:切换到 hdfs 本地目录,将 /name 和 /data 目录下的 /current 目录下的所有文件清除。
3:将 datanode 与 namenode 的 /current 下 VERSION 等相应文件文件清除后,回到 namenode 上,执行 bin/hadoop namenode -format 命令

如果 namenode 无法启动,查看日志,报错原因为权限不够,则将 hdfs 的本地 name 目录的所有者改为 hadoop 的使用用户(因为用 root 用户格式化,建立的 name 目录的所有者为 root 用户,普通用户没有写权限)

可以使用以下命令分别启动 NameNode 和 DataNode:
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode(如果有多个 datanode,需使用 hadoop-daemons.sh)
或者一次启动:sbin/ start-dfs.sh

8、启动 yarn

可以使用以下命令分别启动 ResourceManager 和 NodeManager:
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager(如果有多个 datanode,需使用 yarn-daemons.sh)
或者一次启动:sbin/start-yarn.sh

9、启动 historyserver
sbin/mr-jobhistory-daemon.sh start historyserver
关掉 historyserver 命令:sbin/mr-jobhistory-daemon.sh stop historyserver

10、检查是否运行成功
查看 MapReduce 任务信息:http://master:50030

查看 HDFS 信息:http://master:23001

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

1、安装 jdk
可通过 whereis java 命令,查看 java 的安装路径;或者通过 which java 查看 java 的执行路径;更新 /etc/profile 文件,在文件的末尾加入以下命令:
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_20
export JRE_HOME=/usr/lib/jdk/jdk1.8.0_20/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
使用 source /etc/profile 命令,更新系统的环境变量
最后,将系统默认 jdk 修改过来

$ sudo update-alternatives –install /usr/bin/java java /usr/lib/jdk/jdk1.8.0_20/bin/java 300
$ sudo update-alternatives –install /usr/bin/javac javac /usr/lib/jdk/jdk1.8.0_20/bin/javac 300
$ sudo update-alternatives –config java
$ sudo update-alternatives –config javac

————————————– 分割线 ————————————–

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

————————————– 分割线 ————————————–

2、安装 SSH(集群已安装配置好 SSH 免密码服务;若是搭建多台节点,需要节点户县之间均能免密码 SSH 登录)
      注意:
      Linux 系统中 $HOME 目录下的.ssh 目录为用户所有,权限必须为 700(只有用户自己可以全权访问)
    .ssh 目录下的授权文件“authorized_keys”为用户所有,权限必须为 644(只有权限为 644,才可以实现免密码,否则 ssh 连接时,仍需要输入密码)
    配置两台计算节点之间免密码登录(假设为 master 免密码登录 slave):
      1、先生成公钥和私钥:ssh-keygen -t rsa -P “”
      2、将 master 的公钥拷贝至 slave 的 authorized_keys 文件中:hduser@master:ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@slave

3、将 Hdoop 安装目录解压至 opt 目录
tar -zxvf archive_name.tar.gz

4、更改 Hadoop 目录权限和所有者
sudo chown -R hu:hu hadoop-2.5.0
sudo chmod -R 755 hadoop-2.5.0

5、配置 Hadoop(以下为单节点配置,多节点中,也只需要配置主节点的环境变量即可)

在 ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh 中,添加 JAVA 安装目录:
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_20/bin/java

设置用户环境变量,以方便使用 shell 操作 hadoop,将以下设置添加至~/.bashrc 文件中

export JAVA_HOME=$HOME/java
export HADOOP_DEV_HOME=$HOME/hadoop-0.23.1
export HADOOP_MAPRED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HADOOP_LOG_DIR=${HADOOP_DEV_HOME}/logs
export PATH=${HADOOP_DEV_HOME}/bin

修改 mapred-site.xml
在 ${HADOOP_HOME}/etc/hadoop/ 下,将 mapred-site.xml.templat 重命名成 mapred-site.xml,并添加以下内容

<configuration>
    <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
    </property>
</configuration>

修改 core-site.xml
在 ${HADOOP_HOME}/etc/hadoop/ 中,修改 core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000/</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/hadoop-data/tmp/hadoop-${user.name}</value>
                <description>A base for other temporary directories.</description>
        </property>
</configuration>

修改 yarn-site.xml

在 ${HADOOP_HOME}/etc/hadoop/ 中,修改 yarn-site.xml:

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

修改 hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
 <value>1</value>
 </property>
 <property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

修改 slaves

在 slaves 文件中添加你的节点 ip 或者 host;如:master
如果有多个 NodeManager,可一次添加到该文件中,每个占一行。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-12/110458p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计12686字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中