原文链接:hadoop完全分布式搭建
-
1.关闭防火墙 selinux (都要执行)
- 1.1关闭防火墙
-
1.2 关闭selinux
- 1.2.1 临时关闭
- 1.2.2永久关闭
-
2. 添加IP与主机名的映射关系 ( 都要修改 )
- 2.1. 修改主机名(都要修改)
-
3.设置免密登录
- 3.1方法一
- 3.2方法二
-
4.安装java环境 + 解压hadoop压缩包
- 上传gz包,解压
-
5.修改配置文件
- 5.1 slaves 文件
- 5.2 core-site.xml 文件
- 5.3 hdfs-site.xml文件
- 5.4 mapred-site.xml 文件
- 5.5 yarn-site.xml文件
- 5.6 hadoop-env.sh 文件
- 6.设置环境变量
-
7.另外两台环境
- 7.1创建文件夹(另外两台)
- 7.2发送文件给其他结点
- 7.3刷新另外两台的环境
- 7.4格式化namenode
- 7.5启动HDFS
- 7.6启动Yarn
- 7.7jps结果
-
8.操作
- 8.1.使用CRT把本地计算机中的 email_log.txt ,上传到centos中
- 8.2.创建文件夹,上传。
- 8.3.计算文件email_log.txt 文件中每个数据出现的次数,保存到 /user/output 下。
- 8.4.修改文件名字为 学号+姓名。
主机分配以及地址要求:
角色 | 主机名 | IP地址 |
---|---|---|
Namenode | master | 192.168.222.201 |
Datanode | slave1 | 192.168.222.202 |
datanode | slave2 | 192.168.222.203 |
要求:
- 正确完成搭建
- 将数据文件email_log.txt 传至HDFS系统的“/users”中
- 计算文件email_log.txt 文件中每个数据出现的次数,将最终结果文件重命名为“学号+姓名”
1.关闭防火墙 selinux (都要执行)
1.1关闭防火墙
执行关闭命令: systemctl stop firewalld.service
执行开机禁用防火墙自启命令 : systemctl disable firewalld.service
1.2 关闭selinux
1.2.1 临时关闭
setenforce 0 :用于关闭selinux防火墙,但重启后失效。
setenforce 0
1.2.2永久关闭
修改selinux的配置文件,重启后生效。
打开 selinux 配置文件
vi /etc/selinux/config
修改 selinux 配置文件
将SELINUX=enforcing改为SELINUX=disabled,保存后退出
2. 添加IP与主机名的映射关系 ( 都要修改 )
2.1. 修改主机名(都要修改)
设定主机名与网卡启动、网关配置
vi /etc/sysconfig/network
[root@host1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
需要注意的是Hadoop的集群中的主机名不能有_ (下划线)。如果存在_会导致Hadoop集群无法找到这群主机,从而无法启动!
经过上面的修改,主机名称不会马上改变,必须重启才能生效。
[root@master hadoop]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain
192.168.222.201 master
192.168.222.202 slave1
192.168.222.203 slave2
改完主节点之后,可以将hosts文件直接传到其他两个节点。
scp /etc/hosts 192.168.222.202:/etc/hosts
scp /etc/hosts 192.168.222.203:/etc/hosts
3.设置免密登录
让Master能够通过SSH无密码登录各个Slave节点
如果修改过主机名,需要重新生成的新的公钥。
3.1方法一
rm -r ~/.ssh
ssh-keygen -t rsa
ssh-copy-id localhost
ssh-copy-id slave1
ssh-copy-id slave2
3.2方法二
在master上执行如下命令:
cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
rm ./id_rsa* # 删除之前生成的公匙(如果已经存在)
ssh-keygen -t rsa # 执行该命令后,遇到提示信息,一直按回车就可以
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
接着将master中的id_rsa.pub文件复制到各个Slave节点中
scp ~/.ssh/id_rsa.pub slave01:/root
scp ~/.ssh/id_rsa.pub slave02:/root
在各个slave节点中执行如下命令:
mkdir ~/.ssh # 如果不存在该文件夹需先创建
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub # 用完以后就可以删掉
在master中验证是否可以无密码登录,各个Slave节点。
ssh Slave01 #如果成功登录,则配置完成
ssh Slave02 #如果成功登录,则配置完成
4.安装java环境 + 解压hadoop压缩包
上传gz包,解压
mkdir -p /simple/soft
cd /simple
tar -zxvf /simple/soft/jdk-7u79-linux-x64.tar.gz
tar -zxvf /simple/soft/hadoop-2.4.1.tar.gz
5.修改配置文件
cd /simple/hadoop-2.4.1/etc/hadoop
5.1 slaves 文件
将文件中原来的 localhost 删除,添加内容:
vi slaves
slave1
slave2
5.2 core-site.xml 文件
内容修改为:
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
/simple/hadoop-2.4.1/tmp
Abase for other temporary directories.
5.3 hdfs-site.xml文件
Hadoop的分布式文件系统HDFS一般采用冗余存储,一份文件通常保存3份副本,所以dfs.replication的值还是设置为3。 具体内容如下:
dfs.namenode.secondary.http-address
master:50090
dfs.replication
3
dfs.namenode.name.dir
/simple/hadoop-2.4.1/tmp/dfs/name
dfs.datanode.data.dir
/simple/hadoop-2.4.1/tmp/dfs/data
5.4 mapred-site.xml 文件
修改内容如下:
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.webapp.address
master:19888
5.5 yarn-site.xml文件
内容如下:
yarn.resourcemanager.hostname
master
yarn.nodemanager.aux-services
mapreduce_shuffle
5.6 hadoop-env.sh 文件
修改如下内容:
export JAVA_HOME=/simple/jdk1.7.0_79
# 可以不用
export HADOOP_HOME=/simple/hadoop-2.4.1/
6.设置环境变量
添加Hadoop、java的环境变量
vi /etc/profile
JAVA_HOME=/simple/jdk1.7.0_79
HADOOP_HOME=/simple/hadoop-2.4.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
刷新环境配置:
source /etc/profile
java环境变量配置完成,测试环境变量是否生效。
echo $JAVA_HOME
java -version
7.另外两台环境
7.1创建文件夹(另外两台)
mkdir /simple/
7.2发送文件给其他结点
scp -r hadoop-2.4.1/ slave1:/simple
scp -r hadoop-2.4.1/ slave2:/simple
scp -r jdk1.7.0_79/ slave2:/simple
scp -r jdk1.7.0_79/ slave1:/simple
scp /etc/profile slave1:/etc/profile
scp /etc/profile slave2:/etc/profile
7.3刷新另外两台的环境
source /etc/profile
7.4格式化namenode
hadoop namenode -format
7.5启动HDFS
start-dfs.sh
7.6启动Yarn
start-yarn.sh
7.7jps结果
master
2129 SecondaryNameNode
2530 Jps
1948 NameNode
2285 ResourceManager
slave1
1744 NodeManager
1841 Jps
1634 DataNode
slave2
1705 NodeManager
1803 Jps
1598 DataNode
打开浏览器输入 192.168.222.201:50070 与 192.168.222.201:8088 打开web验证页面。
8.操作
8.1.使用CRT把本地计算机中的 email_log.txt ,上传到centos中
8.2.创建文件夹,上传。
hdfs dfs -mkdir /users
hdfs dfs -put /simple/email_log.txt /users
8.3.计算文件email_log.txt 文件中每个数据出现的次数,保存到 /user/output 下。
hadoop jar /simple/hadoop-2.4.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount /users/email_log.txt /user/output
hadoop fs -cat /user/output/part-r-00000 (查看文件内容,文件很长,可以按 CTRL+C 停止)
8.4.修改文件名字为 学号+姓名。
hdfs dfs mv /user/output/part-r-00000 /user/output/18305105+×××
hdfs dfs -ls /user/output (查看文件夹下文件)
打开网页端,可以查看文件,点击Download下载统计后的文件,如果无法使用slave打开从节点,可以在本地物理机hosts中添加(因为无法解析):
192.168.222.202 slave1
192.168.222.203 slave2
原文链接:hadoop完全分布式搭建