Hadoop集群搭建
目录结构
1. Centos安装之后基本配置
2. 安装和配置JDK
3. 集群网络环境介绍及快速部署
4. ssh免密码登录
5. 规划系统目录.
6. Hadoop集群配置
7. Hadoop集群启动
1. Centos安装之后基本配置
Ø 同步时间
root登陆
$ su -
$ ntpdate cn.pool.ntp.org
Ø 永久关闭防火墙(非常重要,一定要确认)
$ chkconfig iptables off (永久生效)
$ service iptables stop (临时有效)
Ø 关闭SELINUX,设置SELINUX=disabled
$vim /etc/selinux/config
Ø 检查机器名
$ hostname
Ø 修改机器名
root用户登陆,修改命令如下
$ vim /etc/sysconfig/network
Ø 修改/etc/hosts
$ vim /etc/hosts
2. 安装和配置JDK
Ø 下载解压JDK
在windows端下载jdk1.7,然后使用scp或者ftp软件传到Centos系统中/opt/下
下载到的文件是:jdk-7u65-linux-x64.tar.gz
切换到opt目录下,解压jdk-7u65-linux-x64.tar.gz
$ cd /opt/
$ tar -zxvf jdk-7u65-linux-x64.tar.gz
重命名jdk1.7.0_65为jdk1.7
$ mv jdk1.7.0_65/ jdk1.7
Ø Java环境变量配置
root用户登陆,命令行中执行命令”vim /etc/profile”,并加入以下内容,配置环境变量(注意/etc/profile这个文件很重要,后面Hadoop的配置还会用到)。
1 2 3 4 5 6 7 8 9 10 |
< font size = "3" >#set java environment
|
保存并退出,执行以下命令使配置生效
$ chmod +x /etc/profile
$ source /etc/profile
配置完毕,在命令行中使用命令“java -version”可以判断是否成功。在hadoop用户下测试java -version,一样成功。
3. ssh免密码登录
Ø 生成rsa密钥对
所有节点用hadoop用户登陆,并执行以下命令:
$ ssh-keygen -t rsa
这将在/home/hadoop/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。
$ su hadoop
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ hadoop /.ssh/id_rsa): 默认路径
Enter passphrase (empty for no passphrase): 回车,空密码
Enter same passphrase again:
Your identification has been saved in /home/ hadoop /.ssh/id_rsa.
Your public key has been saved in /home/ hadoop /.ssh/id_rsa.pub.
这将在/home/hd_space/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。
Ø 生成authorized_keys
$ cd /home/hadoop/.ssh/
$ cat id_rsa.pub >> authorized_keys
$ chmod 644 authorized_keys
Ø 将authorized_keys复制到datanode
使用SSH协议将namenode的公钥信息authorized_keys复制到所有DataNode的.ssh目录下。
$ scp authorized_keys data节点ip地址:/home/hd_space/.ssh
$ scp authorized_keys [email protected]:/home/hadoop/.ssh/authorized_keys
$ scp authorized_keys [email protected]:/home/hadoop/.ssh/authorized_keys
Ø 使用ssh命令测试是否成功
配置完毕,在namenode上执行“ssh NameNode,所有数据节点”命令,因为ssh执行一次之后将不会再询问。在各个DataNode上也进行“ssh NameNode,所有数据节点”命令。
4. 规划系统目录
安装目录和数据目录分开,且数据目录和hadoop的用户目录分开,如果需要重新格式化,则可以直接删除所有的数据目录,然后重建数据目录。
如果数据目录和安装目录或者用户目录放置在一起,则对数据目录操作时,存在误删除程序或者用户文件的风险。
完整路径 |
说明 |
/opt/hadoop |
hadoop的程序安装主目录 |
/home/hadoop/hd_space/tmp |
临时目录 |
/home/hadoop/hd_space/hdfs/name |
namenode上存储hdfs名字空间元数据 |
/home/hadoop/hd_space/hdfs/data |
datanode上数据块的物理存储位置 |
/home/hadoop/hd_space/mapred/local |
tasktracker上执行mapreduce程序时的本地目录 |
/home/hadoop/hd_space/mapred/system |
这个是hdfs中的目录,存储执行mr程序时的共享文件 |
Ø 开始建立目录
在NameNode下,root用户
$ rm -rf /home/hd_space
$ mkdir -p /home/hadoop/hd_space/tmp
$ mkdir -p /home/hadoop/hd_space/dfs/name
$ mkdir -p /home/hadoop/hd_space/dfs/data
$ mkdir -p /home/hadoop/hd_space/mapred/local
$ mkdir -p /home/hadoop/hd_space/mapred/system
$ chown -R hadoop:hadoop /home/hadoop/hd_space/
Ø 修改拥有着
修改目录/home/hadoop的拥有者(因为该目录用于安装hadoop,用户对其必须有rwx权限。)
$ chown -R hadoop:hadoop /home/hadoop
5. Hadoop集群配置
Hadoop用户登录。
下载hadoop-2.2.0(已编译好的64位的hadoop 2.2,可以加QQ群: 261039241,从群共享里下载),将其解压到/opt目录下.
Ø 配置/etc/profile
1 2 3 4 5 6 7 8 9 10 |
< font size = "3" >#set hadoop
|
$ source /etc/profile
Ø 配置hadoop-env.sh
$ vim $HADOOP_CONF_DIR/hadoop-env.sh
加入:
export JAVA_HOME=/opt/jdk1.7
Ø yarn-env.sh
$ vim $HADOOP_CONF_DIR/yarn-env.sh
加入:
export JAVA_HOME=/opt/jdk1.7
Ø core-site.xml
$ vim $HADOOP_CONF_DIR/core-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
< font size = "3" >< property >
|
Ø hdfs-site.xml
$ vim $HADOOP_CONF_DIR/hdfs-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
< font size = "3" >< configuration >
|
Ø mapred-site.xml
$ vim $HADOOP_CONF_DIR/mapred-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
< font size = "3" ><? xml version = "1.0" ?>
|
Ø hdfs-site.xml
1 2 3 4 5 6 7 8 |
< font size = "3" >< property >
|
Ø 配置slaves文件
删除localhost,加入所有datanode的主机名
7. Hadoop集群启动
Ø 格式化
$ hadoop namenode -format
—–因为配置了环境变量,此处不需要输入hadoop命令的全路径/hadoop/bin/hadoop
执行后的结果中会提示“dfs/namehas been successfully formatted”。否则格式化失败。
Ø 启动hadoop
$ start-dfs.sh
$ start-yarn.sh
启动成功后,分别在namenode和datanode所在机器上使用jps 命令查看,会在namenode所在机器上看到namenode,secondaryNamenode, ResourceManager
[[email protected] hadoop]$ jps
9097 Jps
8662 SecondaryNameNode
8836 ResourceManager
8459 NameNode
会在datanode1所在机器上看到datanode,tasktracker.否则启动失败,检查配置是否有问题。
[[email protected] .ssh]# jps
4885 Jps
4623 DataNode
4736 NodeManager
datanode1所在机器上看到datanode,NodeManager.
Ø 查看集群状态
$ hdfs dfsadmin -report
停止hadoop
$ ./sbin/stop-dfs.sh
$ ./sbin/stop-yarn.sh
查看HDFS
http://192.168.1.150:50070/dfshealth.jsp
Hadoop2.2_集群搭建