ubuntu 14.04 hadoop部署

来源:互联网 发布:linux卸载分区 编辑:程序博客网 时间:2024/06/11 14:09

第一步:准备三台虚拟机并创建3个hadoop用户

修改hosts文件如下: sudo vim /etc/hosts
[python] view plain copy
  1. 127.0.0.1       localhost    
  2. #127.0.1.1      ubuntu-14.04-Server     ubuntu-14  #一定要注释掉    
  3. 192.168.1.100 Master    
  4. 192.168.1.101 Slave01    
  5. 192.168.1.102 Slave02  
并修改各台主机对应的主机名: sudo vim /etc/hostname
Master

第二步:三台主机创建新用户且都设置ssh免密码登陆

首先每台主机创建一个新用户叫hadoop。方法如下:
[python] view plain copy
  1. sudo useradd -m hadoop -s /bin/bash  
  2. sudo passwd hadoop  
  3. sudo adduser hadoop sudo  
  4. gpasswd -a hadoop root  
#这里的hadoop是自己随意设置的用户名 但3台服务器要统一用户名
其次每台机器上安装ssh:sudo apt-get install openssh-server

第三步:安装jdk1.8

将jdk安装到目录 /usr/local/java中

第四步:下载hadoop安装文件

hadoop安装文件地址:http://mirrors.hust.edu.cn/apache/hadoop/common/
下载到目录下~/hadoop/          三台主机都需要安装hadoop

一定要在hadoop用户下执行解压指令:tar -zxvf hadoop-2.7.3.tar.gz  将hadoop解压安装到目录~/hadoop

添加hadoop_home环境变量到:/etc/profile里

[python] view plain copy
  1. # Java Env  
  2. export JAVA_HOME=/usr/local/java/jdk1.8.0_121  
  3. export PATH=$JAVA_HOME/bin:$PATH  
  4. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
  5. # Hadoop Env  
  6. export HADOOP_HOME=/home/hadoop/hadoop-2.7.3  
  7. export HADOOP_PREFIX=${HADOOP_HOME}  
  8. export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin  
  9. export HADOOP_COMMON_HOME=${HADOOP_PREFIX}  
  10. export HADOOP_HDFS_HOME=${HADOOP_PREFIX}  
  11. export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}  
  12. export HADOOP_YARN_HOME=${HADOOP_PREFIX}  

每台机器执行:source /etc/profile  使环境变量生效
每台机器执行:hadoop version 查看hadoop是否安装成功。

第五步:关闭防火墙

[python] view plain copy
  1. $ sudo apt-get install ufw  
  2. $ sudo ufw disable  
  3. $ sudo ufw status  

第六步:需要在hadoop-2.6.0目录下创建一些目录

1. 创建core-site.xml中hadoop.tmp.dir 的目录:hadoop-2.7.3/tmp                                # 这个目录start-dfs.sh时不会自动创建
2. 创建hdfs-site.xml中dfs.namenode.name.dir的目录:hadoop-2.7.3/dfs/name        # 这个目录start-dfs.sh时会自动创建
3. 创建hdfs-site.xml中dfs.datanode.data.dir的目录:hadoop-2.7.3/dfs/data               # 这个目录start-dfs.sh时会自动创建
4. 创建hdfs-site.xml中dfs.journalnode.edits.dir的目录:hadoop-2.7.3/dfs/journal     # 这个目录start-dfs.sh时会自动创建

5. 创建journalnode的日志文件logs目录:hadoop-2.7.3/logs                                         # 这个目录start-dfs.sh时会自动创建

第七步:修改hadoop配置文件

同理配置其他两台机器
(1) hadoop-env.sh
增加如下两行配置:
[python] view plain copy
  1. export JAVA_HOME=/usr/local/java/jdk1.8.0_121  
(2) core-site.xml
[python] view plain copy
  1. <configuration>  
  2.     <property>  
  3.         <name>fs.defaultFS</name>  
  4.         <value>hdfs://Master:9000</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>hadoop.tmp.dir</name>  
  8.         <value>/home/hadoop/hadoop-2.7.3/tmp</value>  
  9.     </property>  
  10. </configuration>  
(3) hdfs-site.xml
[python] view plain copy
  1. <configuration>  
  2.     <property>  
  3.         <name>dfs.replication</name>  
  4.         <value>3</value>  
  5.     </property>  
  6. </configuration>  
数据有三个副本
(4) mapred-site.xml (需要用户新建文件,按照mapred-site.xml.default设置即可)
[python] view plain copy
  1. <configuration>  
  2.     <property>  
  3.         <name>mapreduce.framework.name</name>  
  4.         <value>yarn</value>  
  5.     </property>  
  6. </configuration>  
(5) yarn-env.sh
增加 JAVA_HOME 配置
[python] view plain copy
  1. export JAVA_HOME=/usr/local/java/jdk1.8.0_121  
(6) yarn-site.xml
[python] view plain copy
  1. <configuration>  
  2. <!-- Site specific YARN configuration properties -->  
  3.     <property>  
  4.         <name>yarn.nodemanager.aux-services</name>  
  5.         <value>mapreduce_shuffle</value>  
  6.     </property>  
  7.     <property>  
  8.         <name>yarn.resourcemanager.hostname</name>  
  9.         <value>Master</value>  
  10.     </property>  
  11. </configuration>  

(7) slaves

[python] view plain copy
  1. Slave01  
  2. Slave02  
Master(master) 即作为 NameNode 也作为 DataNode。
Slave01 Slave02 上做同样的配置

[python] view plain copy
  1. scp /home/hadoop/hadoop-2.7.3/etc/hadoop/*  hadoop@10.0.83.202:/home/hadoop/hadoop-2.7.3/etc/hadoop/ #并且在CDH1中修改蓝色部分数据  
  2. scp /home/hadoop/hadoop-2.7.3/etc/hadoop/*  hadoop@10.0.83.173:/home/hadoop/hadoop-2.7.3/etc/hadoop/ #并且在CDH2中修改蓝色部分数据  

第八步:启动HDFS

第一次启动HDFS集群:

1、执行如下命令:

[python] view plain copy
  1. $ start-dfs.sh  

目的是开启所有节点上的journalnode使得信息可以互联。

2、初始化Master节点上的namenode元数据+开启Master的namenode: 

[python] view plain copy
  1. $ hdfs namenode -format  
  2. $ start-dfs.sh  

3、其他Slave01Slave02等节点上同步Master的初始化namenode元数据信息+开启Slave01Slave02等节点的namenode:

[python] view plain copy
  1. $ hdfs namenode -bootstrapStandby  
  2. #在nn1节点上输入指令 $ start-dfs.sh  

4、将Master节点standby状态改成active状态:

[python] view plain copy
  1. $ hdfs haadmin -transitionToActive nn1  

5、查看hdfs的状态:

[python] view plain copy
  1. $ hdfs haadmin -getServiceState nn1  

顺序一定不要变。

6、为HDFS创建HDFS数据库中hadoop用户的工作环境: 

[python] view plain copy
  1. $ hdfs dfs -mkdir -p /user/hadoop  

非第一次启动HDFS集群:

[python] view plain copy
  1. $ start-dfs.sh  
  2. $ hdfs haadmin -transitionToActive nn1  
原创粉丝点击