Hadoop 集群规划
HDFS:
NN NameNode组成,这是一个主服务器,它管理文件系统名称空间并控制客户端对文件的访问。此外,还有许多数据节点,通常是群集中每个节点一个,它们管理连接到它们运行的节点的存储,NameNode执行文件系统命名空间操作,如打开、关闭和重命名文件和目录。它还确定块到数据节点的映射。数据节点负责为来自文件系统客户端的读写请求提供服务。
DN DataNodes还根据NameNode的指令执行块创建、删除和复制。
YARN:
RM 全局资源管理器
NM NodeManager是每台机器的框架代理,负责容器、监视其资源使用(cpu、内存、磁盘、网络)并将其报告给ResourceManager/Scheduler。
hadoop000 192.168.1.233
NN RM
DN NM
hadoop001 192.168.1.234
DN NM
hadoop002 192.168.1.235
DN NM
1、配置每台机器的/etc/hostname文件:对应的我们的主机名称(hadoop000/hadoop001/hadoop002)
机器:192.168.1.233 主机名:hadoop000
修改 /etc/hostname为hadoop000
机器:192.168.1.234 主机名:hadoop001
修改 /etc/hostname为hadoop001
机器:192.168.1.235 主机名:hadoop002
修改 /etc/hostname为hadoop002
2、配置每台机器的/etc/hosts文件:
机器:192.168.1.233 主机名:hadoop000
修改 /etc/hosts
192.168.1.233 hadoop000
192.168.1.234 hadoop001
192.168.1.235 hadoop002
192.168.1.233 localhost
机器:192.168.1.234 主机名:hadoop001
修改 /etc/hosts
192.168.1.234 hadoop001
192.168.1.233 hadoop000
192.168.1.235 hadoop002
192.168.1.234 localhost
机器:192.168.1.235 主机名:hadoop002
修改 /etc/hosts
192.168.1.235 hadoop002
192.168.1.233 hadoop000
192.168.1.234 hadoop001
192.168.1.235 localhost
前置条件安装
1、每台机器安装ssh面密码登陆:在每台机器执行 ssh-keygen -t rsa 命令
2、在hadoop000机器上操作以下命令
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop000
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop001
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop002
JDK安装
1、现在hadoop000主机器上部署jdk
1.1 :下载jdk安装包 我们这里下载到/home/hadoop/software目录
1.2: 安装版本是jdk-8u91-linux-x64.tar.gz
1.3解压安装包到指定安装目录我们这里安装目录统一/home/hadoop/app目录下
tar -zxvf /home/hadoop/software/jdk-8u91-linux-x64.tar.gz -C /home/hadoop/app
2、将jdk bin 配置到系统环境变量
2.1:打开根目录下文件.bash_profile
2.2:写入环境变量
#Java Path
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_91
export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH
3、将jdk拷贝到其他节点上去(从hadoop000节点上出发)
3.1:将hadoop000上已安装的jdk复制到各个节点上
scp -r jdk1.8.0_91 hadoop@hadoop001:~/app/
scp -r jdk1.8.0_91 hadoop@hadoop002:~/app/
3.2:将hadoop000上的环境变量复制到各个节点上
scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/
3.3:复制完成后在每个结点上 source ~/.bash_profile 下让其立刻生效 然后在每台机器上执行java -version 和 echo $JAVA_HOME 验证下
开始hadoop集群的部署
hadoop000
1、下载hadoop安装包 此处我们实用的是hadoop-2.6.0-cdh5.15.1.tar.gz版本存放在/home/hadoop/software下
2、将下载的hadoop-2.6.0-cdh5.15.1.tar.gz的安装包解压到/home/hadoop/app下
tar -zxcv /home/hadoop/software/hadoop-2.6.0-cdh5.15.1.tar.gz -C /home/hadoop/app
3、将hadoop bin写入到环境变量 .bash_profile 并执行命令生效 source ~/.bash_profile
#Hadoop Path
export HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.15.1
export PATH=
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:PATH
4、修改/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/etc/hadoop/core-site.xml文件
在和之间加入一下代码
fs.default.name
hdfs://hadoop000:8020
5、修改/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/etc/hadoop/hdfs-site.xml文件
在和之间加入一下代码
dfs.replication
3
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/app/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/app/tmp/dfs/data</value>
</property>
6、修改/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/etc/hadoop/yarn-site.xml文件
在和之间加入一下代码
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop000
7、修改/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/etc/hadoop/mapred-site.xml文件
在和之间加入一下代码
mapreduce.framework.name
yarn
8、修改/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/etc/hadoop/slaves文件
加入一下内容
hadoop000
hadoop001
hadoop002
9、把在hadoop000上安装好配置好的hadoop分发到各个节点,把又新加了内容的.bash_profile分发到各个节点并在各个节点生效下
scp -r /home/hadoop/app/hadoop-2.6.0-cdh5.15.1 hadoop@hadoop001:~/app/
scp -r /home/hadoop/app/hadoop-2.6.0-cdh5.15.1 hadoop@hadoop002:~/app/
scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/
hadoop001 上执行source ~/.bash_profile
hadoop002上执行source ~/.bash_profile
10、在各个节点检查基础环境是否准备好
再每个节点执行 echo $$HADOOP_HOME
11、格式化 在/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/bin 下执行 hadoop namenode -format (第一次启动前执行就好之后再启动千万别再执行)
12、启动HDFS 只在Hadoop000上启动就行了 在/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/bin 下执行 ./start-dfs.sh
13、启动YARN 只在Hadoop000上启动就行了 在/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/bin 下执行 ./start-yarn.sh
14、可以以页面的方式查看下 HDFS 是 http:192.168.1.233:50070 YARN 是 http:192.168.1.233:8088
15、用jps 在各个节点查看是否启动都启动那些进程
在Hadoop集群上提交作业测试运行
1、在安装完hadoop后目录下会有一个叫/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/share的目录里面存放了些官方给的测试案例
2、找到/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/share/hadoop/mapreduce 这个是YARN的案例文件目录
3、运行下 这个jar包hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar
运行的大概命令:hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar pi 2 3
运行的大概命令:hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar wordcount /1.txt /out/out1