hadoop的安装及其注意事项
安装hadoop步骤:
一linux系统配置 两台主机都要配置 root用户
1)配置时钟同步
2)配置主机名
3)使用setup配置网络环境(ip地址关闭防火墙)
4)关闭防火墙
5)配置hosts列表(用主机名代替ip 建立主机名与ip一一对应的关系)
6)安装jdk(apache要用jdk hadoop基于apache)
7)免密钥登陆(一台服务器一个客户端)
二 hadoop系统配置 普通用户
1)hadoop安装包解压
2)配置环境变量haoop-env.sh
3)配置环境变量yarn-env.sh(资源调度)
4)配置核心组件core-site.xml
5)配置文件系统hdfs-site.xml
6)配置文件系统yarn-site.xml
7)配置计算框架mapred-site.xml
8)在master节点配置slaves文件
9)复制到从节点
三启动hadoop集群
配置hadoop启动的环境变量
创建数据目录
启动集群
具体实现:
将完整软件包“/home/zkpk/resources”下的 software 是相关的安装软件包,sogou-data 是数据包。
第一阶段(master slave都需要配置 root用户)
1)配置时钟同步
1、配置自动时钟同步
该项同时需要在 HadoopSlave 节点配置。
使用 Linux 命令配置
[root@master zkpk]$ crontab -e
该命令是 vi 编辑命令,按 i 进入插入模式,按 Esc,然后键入:wq 保存退出
键入下面的一行代码,输入 i,进入插入模式(星号之间和前后都有空格)
0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
2、手动同步时间
直接在 Terminal 运行下面的命令:
[root@master zkpk]$ /usr/sbin/ntpdate cn.pool.ntp.org
2)配置主机名
使用 gedit 编辑主机名,如果不可以使用 gedit,请直接使用 vi 编辑器(后面用到 gedit 的 地 方也同此处处理一致)
[root@master zkpk]$ gedit /etc/sysconfig/network
配置信息如下,如果已经存在则不修改,将 HadoopMaster 节点的主机名改为 master,即下面代 码的第
2 行所示。
NETWORKING=yes #启动网络
HOSTNAME=master #主机名
确实修改生效命令:
[root@master zkpk]$ hostname master
检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:
[root@master zkpk]$ hostname
执行完命令,会看到下图的打印输输出:
2、HadoopSlave 节点(基本同上)
使用 gedit 编辑主机名:
[root@slave zkpk]$ gedit /etc/sysconfig/network
配置信息如下,如果已经存在则不修改,将 Hadoopslave 节点的主机名改为 slave,即下面代码
3 使用 setup 命令配置网络环境
该项也需要在 HadoopSlave 节点配置。
在终端中执行下面的命令:
[zkpk@master ~]$ ifconfig
如果看到存在内网 IP、广播地址、子网掩码,说明该节点不需要配置网络,
否则进行下面的步骤。
在终端中执行下面命令:
[zkpk@master ~]$ setup
使用光标键移动选择“Network configuration”,回车进入该项
使用光标键移动选择 eth0,回车进入该项 输入ip各项内容
重启网络服务
[root@master zkpk]$ /sbin/service network restart
检查是否修改成功:
[zkpk@master ~]$ ifconfig
查看结果
4 关闭防火墙
该项也需要在 HadoopSlave 节点配置。
在终端中执行下面命令:
[zkpk@master ~]$ setup
光标移动选择“Firewall configuration”选项,回车进入选项
如果该项前面有“*”标,则按一下空格键关闭防火墙,如下图所示,然后光标移动选择“OK”保存
修改内容
选择 OK
5 配置 hosts 列表
该项也需要在 HadoopSlave 节点配置。
需要在 root 用户下(使用 su 命令)
,编辑主机名列表的命令:
[root@master zkpk]$ gedit /etc/hosts
将下面两行添加到/etc/hosts 文件中:
192.168.1.100 master
192.168.1.101 slave
注意:这里 master 节点对应 IP 地址是 192.168.1.100,slave 对应的 IP 是 192.168.1.101,而自己在做配置时,需要将这两个 IP 地址改为你的 master 和 slave 对应的 IP 地址。
查看 master 的 IP 地址使用下面的命令:
[zkpk@master ~]$ ifconfig
查看master 节点的 IP
slave 的 IP 地址也是这样查看。
验证是否配置成功的命令是:
[zkpk@master ~]$ ping master
[zkpk@master ~]$ ping slave
如果能够ping通表示成功
6 安装 JDK
该项也需要在 HadoopSlave 节点配置。
将 JDK 文件解压,放到/usr/java 目录下
[zkpk@master ~]$ cd /home/zkpk/resources/software/jdk
[zkpk@master jdk]$ mkdir /usr/java
[zkpk@master jdk]$ mv ~/resources/software/jdk/jdk-7u71-linux-x64.gz /usr/java/
[zkpk@master jdk]$ cd /usr/java
[zkpk@master java]$ tar -xvf /usr/java/jdk-7u71-linux-x64.gz
使用 gedit 配置环境变量
注意:JAVA_HOME等号左右不能出现空格
[zkpk@master java]$ gedit /home/zkpk/.bash_profile
复制粘贴以下内容添加到到上面 gedit 打开的文件中:
export JAVA_HOME=/usr/java/jdk1.7.0_71/
export PATH=$JAVA_HOME/bin:$PATH
使改动生效命令:
[zkpk@master java]$ source /home/zkpk/.bash_profile
测试配置:
[zkpk@master ~]$ java -version
如果出现java版本,表示 JDK 安装成功
7)免密钥登录(注意两个节点配置不同)
该部分所有的操作都要在 zkpk 用户下,切换回 zkpk 的命令是:
su -zkpk
密码是:zkpk
1、HadoopMaster 节点
在终端生成密钥,命令如下(一路点击回车生成密钥)
[zkpk@master ~]$ ssh-keygen -t rsa
生成的密钥在.ssh 目录下 cd .ssh
复制公钥文件
[zkpk@master .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
执行 ls -l 命令后会看到文件存在
修改 authorized_keys 文件的权限,命令如下:
[zkpk@master .ssh]$ chmod 600 ~/.ssh/authorized_keys
修改完权限后,文件列表情况如下:
将 authorized_keys 文件复制到 slave 节点,命令如下:
[zkpk@master .ssh]$ scp ~/.ssh/authorized_keys zkpk@slave:~/
如果提示输入 yes/no 的时候,输入 yes,回车
密码是:zkpk
2、HadoopSlave 节点
在终端生成密钥,命令如下(一路点击回车生成密钥)
[zkpk@slave ~]$ ssh-keygen -t rsa
将 authorized_keys 文件移动到.ssh 目录
[zkpk@slave ~]$ mv authorized_keys ~/.ssh/
修改 authorized_keys 文件的权限,命令如下:
[zkpk@slave ~]$ cd ~/.ssh
[zkpk@slave .ssh]$ chmod 600 authorized_keys
3、验证免密钥登陆
在 HadoopMaster 机器上执行下面的命令:
[zkpk@master ~]$ ssh slave
如果不用密码表示免密钥配置成功
二 Hadoop 配置部署
每个节点上的 Hadoop 配置基本相同,在 HadoopMaster 节点操作,然后完成复制到另一个节点。
下面所有的操作都使用 zkpk 用户,切换 zkpk 用户的命令是:
[root@master zkpk]$ su - zkpk
密码是:zkpk
将软件包中的 Hadoop 生态系统包复制到相应 zkpk 用户的主目录下(直接拖拽方式即可拷贝
1 Hadoop 安装包解压
进入 Hadoop 软件包,命令如下:
[zkpk@master ~]$ cd /home/zkpk/resources/software/hadoop/apache
复制并解压 Hadoop 安装包命令如下:
[zkpk@master apache]$ cp ~//resources/software/hadoop/apache/ hadoop-2.5.2.tar.gz ~/
[zkpk@master apache]$ cd
[zkpk@master ~]$ tar -xvf ~/hadoop-2.5.2.tar.gz
[zkpk@master ~]$ cd ~/hadoop-2.5.2
ls -l 可以看到bin etc include lib等表示解压成功
2 配置环境变量 hadoop-env.sh
环境变量文件中,只需要配置 JDK 的路径。
[zkpk@master hadoop-2.5.2]$ gedit /home/zkpk/hadoop-2.5.2/etc/hadoop/hadoop-env.sh
在文件的靠前的部分找到下面的一行代码:
export JAVA_HOME=${JAVA_HOME}
将这行代码修改为下面的代码:
export JAVA_HOME=/usr/java/jdk1.7.0_71/
然后保存文件。
3 配置环境变量 yarn-env.sh yarn 资源调度的使用
环境变量文件中,只需要配置 JDK 的路径。
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/yarn-env.sh
在文件的靠前的部分找到下面的一行代码:
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
将这行代码修改为下面的代码(将#号去掉)
export JAVA_HOME=/usr/java/jdk1.7.0_71/
然后保存文件。
4 配置核心组件 core-site.xml
core-site.xml 核心组件配置hadoop最核心的位置
fs.defaultFS 命名空间(hdfs:)相当于windows中file://
value 路径path
使用 gedit 编辑:
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/core-site.xml
用下面的代码替换 core-site.xml 中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/zkpk/hadoopdata</value>
</property>
</configuration>
5 配置文件系统 hdfs-site.xml
hdfs-site.xml
文件系统相关的内容
hadoop默认副本为3 副本存在于不同的机器
即dfs.replication 的value 值为3
使用 gedit 编辑:
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/hdfs-site.xml
用下面的代码替换 hdfs-site.xml 中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
6 配置文件系统 yarn-site.xml
yarn 调度命令,启一些服务和端口
yarn.resourcemanager.address 一个管理者。
使用 gedit 编辑:
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/yarn-site.xml
用下面的代码替换 yarn-site.xml 中的内容:
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
7 配置计算框架 mapred-site.xml
复制 mapred-site-template.xml 文件:
[zkpk@masterhadoop-2.5.2]$
cp
~/hadoop-2.5.2/etc/hadoop/mapred-site.xml.template
~/hadoop-2.5.2/etc/hadoop/mapred-site.xml
使用 gedit 编辑:
[zkpk@master ~]$ gedit ~/hadoop-2.5.2/etc/hadoop/mapred-site.xml
用下面的代码替换 mapred-site.xml 中的内容
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
8 在 master 节点配置 slaves 文件
使用 gedit 编辑:
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/slaves
用下面的代码替换 slaves 中的内容:
slave
9 复制到从节点
使用下面的命令将已经配置完成的 Hadoop 复制到从节点 HadoopSlave 上:
[zkpk@master hadoop-2.5.2]$ cd
[zkpk@master ~]$ scp -r hadoop-2.5.2 zkpk@slave:~/
注意:因为之前已经配置了免密钥登录,这里可以直接远程复制
三 启动集群
面所有的操作都使用 zkpk 用户,切换 zkpk 用户的命令是:
su - zkpk
密码是:zkpk
1 配置 Hadoop 启动的系统环境变量
该节的配置需要同时在两个节点(HadoopMaster 和 HadoopSlave)上进行操作,操作命令如下:
[zkpk@master hadoop-2.5.2]$ cd
[zkpk@master ~]$ gedit ~/.bash_profile
将下面的代码追加到.bash_profile 末尾:
#HADOOP
export HADOOP_HOME=/home/zkpk/hadoop-2.5.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
然后执行命令:
[zkpk@master ~]$ source ~/.bash_profile
2
创建数据目录
该节的配置需要同时在两个节点(HadoopMaster 和 HadoopSlave)上进行操作。
在 zkpk 的用户主目录下,创建数据目录,命令如下:
[zkpk@master ~]$ mkdir /home/zkpk/hadoopdata
3 启动 Hadoop 集群
1、格式化文件系统(只能格式化一次)
格式化命令如下,该操作需要在 HadoopMaster 节点上执行:
[zkpk@master ~]$ hdfs namenode -format
如果出现 Exception/Error,则表示出问提
2、启动 Hadoop
使用 start-all.sh 启动 Hadoop 集群,首先进入 Hadoop 安装主目录,然后执行启动 命令:
[zkpk@master ~]$ cd ~/hadoop-2.5.2
[zkpk@master hadoop-2.5.2]$ sbin/start-all.sh
执行命令后,提示出入 yes/no 时,输入 yes。
3、查看进程是否启动
在 HadoopMaster 的终端执行 jps 命令,在打印结果中会看到 4 个进程,分别是 ResourceManager、Jps、NameNode 和 SecondaryNameNode。如果出现了这 4 个 进程表示主节点进程启动成功。
在 HadoopSlave 的终端执行 jps 命令,在打印结果中会看到 3 个进程,分别是 NodeManager、DataNode
和 Jps。如果出现了这 3 个进程表示从节点进程启动成功。
4、Web UI 查看集群是否成功启动
在 HadoopMaster 上启动 Firefox 浏览器,在浏览器地址栏中输入输入 http://master:50070/,检查namenode 和 datanode 是否正常
在 HadoopMaster 上启动 Firefox 浏览器,在浏览器地址栏中输入输入 http://master:18088/,检查Yarn 是否正常
5、运行 PI 实例检查集群是否成功
进入 Hadoop 安装主目录,执行下面的命令:
cd
[zkpk@master ~]$ cd ~/hadoop-2.5.2/share/hadoop/mapreduce/
[zkpk@master
mapreduce]$
hadoop
~/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar pi 10 10
出现pi的值成功