Hadoop集群安装配置实验

2022-05-07 12:45:48 浏览数 (1)

一、环境 四台 VirtualBox上的Linux虚机,每台硬盘20G,内存768M。 IP与主机名: 192.168.56.101 master 192.168.56.102 slave1 192.168.56.103 slave2 192.168.56.104 slave3 主机规划: 192.168.56.101做master,运行NameNode和ResourceManager进程。其它三台主机做slave,运行DataNode和NodeManager进程。 操作系统:CentOS release 6.4 (Final) java版本:jdk1.7.0_75 hadoop版本:hadoop-2.7.2 二、安装前准备 1. 分别在四台机器上建立grid用户 useradd -d /home/grid -m grid usermod -G root grid 2. 分别在四台机器上的/etc/hosts文件中添加如下内容 192.168.56.101 master 192.168.56.102 slave1 192.168.56.103 slave2 192.168.56.104 slave3 以下的操作均使用grid用户执行。 3. 分别在四台机器上安装java(安装包下载已经到grid用户主目录): cd ~ tar -zxvf jdk-7u75-linux-x64.tar.gz 4. 配置免密码ssh(这里配置了任意两台机器都免密码) (1)分别在四台机器上生成密钥对: cd ~ ssh-keygen -t rsa 然后一路回车 (2)在master上执行: cd ~/.ssh/ ssh-copy-id 192.168.56.101 scp /home/grid/.ssh/authorized_keys 192.168.56.102:/home/grid/.ssh/ (3)在slave1上执行: cd ~/.ssh/ ssh-copy-id 192.168.56.102 scp /home/grid/.ssh/authorized_keys 192.168.56.103:/home/grid/.ssh/ (4)在slave2上执行: cd ~/.ssh/ ssh-copy-id 192.168.56.103 scp /home/grid/.ssh/authorized_keys 192.168.56.104:/home/grid/.ssh/ (5)在slave3上执行: cd ~/.ssh/ ssh-copy-id 192.168.56.104 scp /home/grid/.ssh/authorized_keys 192.168.56.101:/home/grid/.ssh/ scp /home/grid/.ssh/authorized_keys 192.168.56.102:/home/grid/.ssh/ scp /home/grid/.ssh/authorized_keys 192.168.56.103:/home/grid/.ssh/ 至此,免密码ssh配置完成。 三、安装配置hadoop 以下的操作均使用grid用户在master主机上执行。 1. 安装hadoop(安装包下载已经到grid用户主目录): cd ~ tar -zxvf hadoop-2.7.2.tar.gz 2. 建立目录 cd ~/hadoop-2.7.2 mkdir tmp mkdir hdfs mkdir hdfs/data mkdir hdfs/name 3. 修改配置文件 (1)编辑~/hadoop-2.7.2/etc/hadoop/core-site.xml文件,添加如下内容,如图1所示。 <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.56.101:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/grid/hadoop-2.7.2/tmp</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> </configuration>

图1 (2)编辑~/hadoop-2.7.2/etc/hadoop/hdfs-site.xml文件,添加如下内容,如图2所示。 <configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/grid/hadoop-2.7.2/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/grid/hadoop-2.7.2/hdfs/data</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>192.168.56.101:9001</value> </property> <property> <name>dfs.namenode.servicerpc-address</name> <value>192.168.56.101:10000</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>

图2

注意:dfs.namenode.servicerpc-address参数必须设置。 (3)编辑~/hadoop-2.7.2/etc/hadoop/yarn-site.xml文件,添加如下内容,如图3所示。 <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>192.168.56.101:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>192.168.56.101:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>192.168.56.101:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>192.168.56.101:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>192.168.56.101:8088</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> </configuration>

图3 注意:yarn.nodemanager.resource.memory-mb不能小于1024。 (4)编辑~/hadoop-2.7.2/etc/hadoop/mapred-site.xml文件,添加如下内容,如图4所示。 <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>192.168.56.101:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>192.168.56.101:19888</value> </property> </configuration>

图4 (5)编辑~/hadoop-2.7.2/etc/hadoop/slaves文件,添加如下内容,如图5所示。 192.168.56.102 192.168.56.103 192.168.56.104

图5 (6)编辑~/hadoop-2.7.2/etc/hadoop/hadoop-env.sh文件,修改如下内容,如图6所示。 export JAVA_HOME=/home/grid/jdk1.7.0_75

图6 (7)编辑~/hadoop-2.7.2/etc/hadoop/yarn-env.sh文件,修改如下内容,如图7所示。 export JAVA_HOME=/home/grid/jdk1.7.0_75

图7

(8)将hadhoop主目录复制到各个从服务器上 scp -r ./hadoop-2.7.2 192.168.56.102:/home/grid/ scp -r ./hadoop-2.7.2 192.168.56.103:/home/grid/ scp -r ./hadoop-2.7.2 192.168.56.104:/home/grid/ 四、安装后配置 使用root用户分别在四台机器上的/etc/profile文件中添加如下环境变量,如图8所示。 export JAVA_HOME=/home/grid/jdk1.7.0_75 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export HADOOP_HOME=/home/grid/hadoop-2.7.2 export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native

图8 五、初始化及运行 以下的操作均使用grid用户在master主机上执行。 hdfs namenode -format 结果如图9所示

图9 start-dfs.sh 结果如图10所示

图10

start-yarn.sh 结果如图11所示

图11

查看主节点Java进程,可以看到主节点上启动了NameNode、SecondaryNameNode、ResourceManager守护进程,如图12所示

图12 查看从节点Java进程,可以看到从节点上启动了DataNode、NodeManager守护进程,如图13所示

图13 通过web接口查看NameNode,如图14所示

图14 参考:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html

0 人点赞