Hadoop——安装与部署
一、安装前提
安装版本:Hadoop 2.6.0—CDH 5.14.0
- 源码网站
http://archive.cloudera.com/cdh5/cdh/5/
源码包:hadoop-2.6.0-cdh5.14.0-src.tar.gz
二进制安装包:hadoop-2.6.0-cdh5.14.0.tar.gz
1. 配置好各虚拟机的网络(采用NAT联网模式)
- 第一种:通过Linux图形界面进行修改(桌面版本Centos)
进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections-> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual ->
点击add按钮 -> 添加IP:192.168.1.101 子网掩码:255.255.255.0 网关:192.168.1.1 -> apply
- 第二种:修改配置文件方式
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static" ###
HWADDR="00:0C:29:3C:BF:E7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
IPADDR="192.168.1.101" ###
NETMASK="255.255.255.0" ###
GATEWAY="192.168.1.1" ###
2. 修改各个虚拟机主机名
vim /etc/sysconfig/network
#添加
NETWORKING=yes
HOSTNAME=主机名n
3. 修改主机名和IP的映射关系
vim /etc/hosts
#添加IP和主机名
192.168.xxx.201 主机名1
192.168.xxx.202 主机名2
192.168.xxx.203 主机名3
......
4. 关闭防火墙
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
5. 配置ssh免登陆
#生成ssh免登陆密钥
ssh-keygen -t rsa (四个回车)
#执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
#将公钥拷贝到要免密登陆的目标机器上
ssh-copy-id cluster02/cluster03
6. 同步集群时间
#1. 常用的手动进行时间的同步
date -s "2017-03-03 03:03:03"
#2. 网络同步:
yum install ntpdate
ntpdate cn.pool.ntp.org
7. 安装jdk 1.8
#上传jdk
rz jdk-8u65-linux-x64.tar.gz
#解压jdk
tar -zxvf jdk-8u65-linux-x64.tar.gz -C /root/apps
#将java添加到环境变量中
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/root/apps/jdk1.8.0_65
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#刷新配置
source /etc/profile
二、CDH版本Hadoop重新编译
#上传hadoop的安装包到service下
cd /export/software/
rz hadoop-2.6.0-cdh5.14.0-with-centos6.9.tar.gz
#解压
tar -zxvf hadoop-2.6.0-cdh5.14.0-with-centos6.9.tar.gz -C /export/servers
#创建软链接
cd /export/servers
ln -s hadoop-2.6.0-cdh5.14.0 hadoop
三、修改Hadoop配置文件
-
hadoop-env.sh
cd /export/servers/hadoop/etc/hadoop vim hadoop-env.sh #将“export JAVA_HOME=${JAVA_HOME}”行修改 export JAVA_HOME=/export/servers/jdk
-
core-site.xml
cd /export/servers/hadoop/etc/hadoop vim core-site.xml #将以下内容放入<configuration>标签中 <!-- 指定hadoop所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://cluster01:8020</value> </property> <!-- 指定hadoop运行时产生文件的存储目录,默认/tmp/hadoop-${user.name} --> <property> <name>hadoop.tmp.dir</name> <value>/export/data/hadoop_data</value> </property>
-
hdfs-site.xml
cd /export/servers/hadoop/etc/hadoop vim hdfs-site.xml #将以下内容放入<configuration>标签中 <!-- 指定HDFS文件副本的数量 --> <property> <name>dfs.replication</name> <value>2</value> </property> <!-- 指定secondarynamenode运行的机器和端口 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>cluster02:50090</value> </property>
-
mapred-site.xml
cd /export/servers/hadoop/etc/hadoop #修改mapred-site.xml名称 mv mapred-site.xml.template mapred-site.xml vim mapred-site.xml #将以下内容放入<configuration>标签中 <!-- 指定mr运行时框架,这里指定在yarn上,默认是local --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
-
yarn-site.xml
cd /export/servers/hadoop/etc/hadoop vim yarn-site.xml #将以下内容放入<configuration>标签中 <!-- 指定yarn主角色resourcemanager运行的机器主机名 --> <property> <name>yarn.resourcemanager.hostname</name> <value>cluster02</value> </property> <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序默认值:"" --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
-
slaves
cd /export/servers/hadoop/etc/hadoop vim slaves #将主机名都写入文件中 cluster01 cluster02 cluster03 ......
-
把修改好的安装包scp给其他机器
scp -r /export/servers/hadoop-2.6.0-cdh5.14.0/ cluster02:/export/servers/ scp -r /export/servers/hadoop-2.6.0-cdh5.14.0/ cluster03:/export/servers/
配置hadoop环境变量(3台机器都要做)
vim /etc/profile
#将以下内容添加至末尾
#HADOOP_HOME
export HADOOP_HOME=/export/servers/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#重新加载环境变量文件 立即生效
source /etc/profile
四、对NameNode进行初始化
初始化操作是在首次搭建集群第一次启动时候进行,只能进行一次初始化操作!!!!!!!
hadoop namenode -format
日志显示如下:
Storage directory /export/data/hadoopdata/dfs/name has been successfully formatted.
-rw-r--r-- 1 root root 321 Sep 24 14:46 fsimage_0000000000000000000
-rw-r--r-- 1 root root 62 Sep 24 14:46 fsimage_0000000000000000000.md5
-rw-r--r-- 1 root root 2 Sep 24 14:46 seen_txid
-rw-r--r-- 1 root root 207 Sep 24 14:46 VERSION
五、Hadoop启动关闭方式
1. 单节点逐个启动
-
hdfs集群
#分别对namende、datanode、secondarynamenode进行操作 #开启 hadoop-daemon.sh start namende/datanode/secondarynamenode #关闭 hadoop-daemon.sh stop namende/datanode/secondarynamenode
-
yarn集群
#分别对namende、datanode、secondarynamenode进行操作 #开启 yarn-daemon.sh start resourcemanager/nodemanager #关闭 yarn-daemon.sh stop resourcemanager/nodemanager
2. 脚本一键启动
-
hdfs集群
#开启 start-dfs.sh #关闭 stop-dfs.sh
-
yarn集群
#开启 start-yarn.sh #关闭 stop-yarn.sh
-
一键全部开启
#开启 start-all.sh #关闭 stop-all.sh
六、hadoop集群web ui页面
-
hdfs集群
http://namenode_host:50070
-
yarn集群
http://resourcemanager_host:8088