Hadoop实战
模拟部署Hadoop集群
-
创建三台虚拟机 master slave slave1
-
配置时钟同步
1
crontab -e
会自动打开/tmp/crontab.HNLfTD文件
1
2* * * /user/sbin/ntpdate cn.pool.ntp.org
* * * /user/sbin/ntpdate aliyun.com星号是cron时间表达式,也可以直接输入后面的命令进行手动同步时间
-
配置主机名
1
2
3
4
5vim /etc/sysconfig/network
#确认修改生效
hostname master
#验证
hostname -
配置网络环境
1
2
3
4
5
6
7#配置ip
setup
Network configuration
#重启网络服务
service network restart
#查看状态
ifconfig -
关闭防火墙
1
2setup
Firewall configuration -
配置hosts列表
1
2
3
4#修改host
vim /etc/hosts
#验证
ping master -
安装JDK
1
2
3
4mkdir /usr/java
cp /home/ydh/jdk-7u71-linux-x64.gz /usr/java
cd /usr/java
tar –zxvf jdk-7u71-linux-x64.gz -
配置环境变量
1
2
3
4
5
6
7#配置给普通用户
vim /home/ydh/.bash_profile
export JAVA_HOME=/usr/java/jdk1.7.0_71
export PATH=$JAVA_HOME/bin:$PATH
source /home/ydh/.bash_profile
#验证是否安装成功
javac -
设置SSH免密登陆
1
2
3
4
5
6
7
8
9
10
11
12
13
14#master普通用户下生成密钥
ssh-keygen –t rsa
#生成的密钥在/home/ydh/.ssh/目录下,私钥为id_rsa,公钥为id_rsa.pub
#复制公钥文件到authorized_keys文件中
cat /home/ydh/.ssh/id_rsa.pub >> /home/ydh/.ssh/authorized_keys
#修改authorized_keys文件的权限,只有当前用户ydh有权限操作authorized_keys文件
chmod 600 /home/ydh/.ssh/authorized_keys
#将 HadoopMaster 主节点生成的 authorized_keys 公钥文件复制到 HadoopSlave 和HadoopSlave1从节点
scp /home/ydh/.ssh/authorized_keys ydh@slave:/home/ydh/.ssh/
scp /home/ydh/.ssh/authorized_keys ydh@slave1:/home/ydh/.ssh/
#在从节点修改文件权限为当前用户可读可写
chmod 600 /home/ydh/.ssh/authorized_keys
#主节点验证免密登陆
ssh slave -
上传hadoop安装文件并解压
1
2
3tar –zxvf hadoop-2.5.2.tar.gz
cd hadoop-2.5.2
ls –l -
1
2vim /home/ydh/Hadoop-2.5.2/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_71 -
1
2vim /home/ydh/Hadoop-2.5.2/etc/hadoop/yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_71 -
配置核心组件core-site.xml
1
vim /home/ydh/Hadoop-2.5.2/etc/hadoop/core-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!— Put site-specific property overrides in this file. —> <configuration>
<!—HDFS文件系统的入口地址信息—>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!—HDFS 文件系统数据落地到本地磁盘的路径信息,/home/ zkpk/hadoopdata 该目录需要单独创建,后面将在启动hadoop集群时统一 创建 —>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/ zkpk/hadoopdata</value>
</property>
</configuration> -
配置文件系统hdfs-site.xml
1
vim /home/ydh/hadoop-2.5.2/etc/hadoop/hdfs-site.xml
1
2
3
4
5
6
7
8
9
<!— Put site-specific property overrides in this file. —> <configuration>
<property>
<!—配置数据块的副因子(即副本数)为2–>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration> -
配置配置YARN资源系统yarn-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
<configuration>
<!— yarn.nodemanager.aux-services 是 NodeManager 上运行的附属服务,其值需要配置成mapreduce_shuffle,才可以运行MapReduce程序—>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!— yarn.resourcemanager.address 是ResourceManager对客户端暴露的访问地址,客户端通过该地址向ResourceManager提交或结束MapReduce应用程序—>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<!-yarn.resourcemanager.scheduler.address是ResourceManager对ApplicationMaster (客户端将MapReduce应用程序提交到集群中,ResourceManager接受客户端应用程序的提交后,将该应用程序分配给某一个NodeManager,对该MapReduce应用程序进行初始化,进而产生一个应用程序初始化Java对象,将这个Java对象称为ApplicationMaster)暴露的访问地址,ApplicationMaster通过该地址向ResourceManager申请MapReduce应用程序在运行过程中所需要的资源,以及程序运行结束后对使用资源的释放等—>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<!— yarn.resourcemanager.resource-tracker.address 是ResourceManager对NodeManager暴露的访问地址,NodeManager通过该地址向ResourceManager发送心跳数据,汇报资源使用情况以及领取ResourceManager将要分配给自己的任务等—>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<!— yarn.resourcemanager.admin.address 是ResourceManager对管理员admin暴露的访问地址,管理员可通过该地址向ResourceManager发送管理命令等—>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<!— yarn.resourcemanager.webapp.address 是 ResourceManager YARN 平台提供用户查看正在运行的MapReduce程序的进度和状态的WEB UI系统的访问地址,可通过该地址在浏览器中查看应用程序的运行状态信息 —>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration> -
配置计算框架mapred-site.xml
1
vim /home/ydh/hadoop-2.5.2/etc/hadoop/mapred-site.xml
1
2
3
4
5
6
7
8
9
<configuration>
<!—MapReduce计算框架的资源交给YARN来管理—>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration> -
在HadoopMaster节点配置slaves
1
2
3
4vim /home/ydh/hadoop-2.5.2/etc/hadoop/slaves
#写入以下内容
slave
slave1 -
复制到从节点
1
2scp –r /home/ydh/hadoop-2.5.2 ydh@slave:~/
scp –r /home/ydh/hadoop-2.5.2 ydh@slave1:~/ -
配置Hadoop主节点和从节点启动的系统环境变量
1
2
3
4
5
6
7vim /home/ydh/.bash_profile
#追加以下内容
#Hadoop Path configuration
export HADOOP_HOME=/home/ydh/hadoop-2.5.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#生效配置
source /home/ydh/.bash_profile -
主从节点创建数据目录
1
mkdir /home/ydh/hadoopdata
-
格式化分布式文件系统
1
hdfs namenode –format
-
启动hadoop
1
2cd /home/ydh/hadoop-2.5.2
sbin/start-all.sh -
查看是否启动成功
1
2
3jps
cd hadoop-2.5.2/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-2.5.1.jar pi 10 10