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

来源:互联网 发布:ubuntu登录界面root 编辑:程序博客网 时间:2024/05/16 15:36

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


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,可一次添加到该文件中,每个占一行。

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                                      注意:hdfs在本地的目录权限和所有者,若权限过低或者所有者与hadoop的使用者不是同一个用户,则namenode或者datanode将无法启动。解决方法:将hdfs的本地目录所有者改为hadoop的使用用户,并将目录权限设为755                             注意: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

1 0
原创粉丝点击