大数据应用(一)hadoop集群搭建

大数据应用(一)hadoop集群搭建

最近在学习大数据技术,我把实验过程写在csdn上,以帮助我以后快速的复习。

实验环境:

centos7
Xshell6
jdk-1.8.0_261
hadoop-2.7.1

已知配置:
用户:root,hadoop

普通用户获取sudo功能
我的网络配置在另一篇文章有详细的介绍就不说啦,添加链接描述
通过Xshell连接后我们修改用户的sudo功能
先进入root账号

sudo
vim /etc/sudoers

修改sudoers文件,添加内容 hadoop ALL=(ALL) NOPASSWD:ALL

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
hadoop ALL=(ALL) NOPASSWD:ALL

关闭防火墙
返回hadoop用户,关闭防火墙,并且禁止开机启动

sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

查看防火墙是否关闭

sudo firewall-cmd --state

成功界面:
在这里插入图片描述

sudo systemctl status firewalld.service

成功界面:在这里插入图片描述
修改主机名

系统永久修改主机名

sudo vim /etc/hostname

修改文件内容为

centos01

然后使用reboot重启

sudo reboot

新建资源目录
在目录/opt下创建两个文件夹softwares和modules,分别存放软件安装包和软件安装后的程序文件,并修改/opt/的所有者

提一下,chown是修改所属用户和所属组,chmod是修改(用户个人,用户组,其他人的)读、写、执行的权限

sudo mkdir /opt/softwares
sudo mkdir /opt/modules
sudo chown -R hadoop:hadoop /opt/*

安装JDK

删除系统自带的jdk

rpm -qa | grep java
#以下是输出结果
javapackages-tools-3.4.1-11.el7.noarch
tzdata-java-2019c-1.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64
java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.251-2.6.21.1.el7.x86_64
python-javapackages-3.4.1-11.el7.noarch
java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64

执行一下命令(下面是补全的命令,不完整但是可以正常运行),卸载以上查询出的自带jdk

sudo rpm -e --nodeps javapackages-tools
sudo rpm -e --nodeps tzdata-java 
sudo rpm -e --nodeps java-1.8.0-openjdk
sudo rpm -e --nodeps java-1.8.0-openjdk-headless
sudo rpm -e --nodeps java-1.7.0-openjdk
sudo rpm -e --nodeps java-1.7.0-openjdk-headless
sudo rpm -e --nodeps python-javapackages

使用rz把java和Hadoop安装包(因为后面安装我们就一起上传啦)上传到/opt/softwares中
在这里插入图片描述
上传之后把安装包解压到/opt/modules中

tar -zxvf jdk-8u261-linux-x64.tar.gz -C /opt/modules/
tar -zxvf hadoop-2.7.1.tar.gz -C /opt/modules/

现在修改配置位置profile

sudo vim /etc/profile

在profile文件头上加入下面代码

export JAVA_HOME=/opt/modules/jdk1.8.0_261
export PATH=$PATH:$JAVA_HOME/bin

执行以下命令,刷新profile文件,使修改生效:

source /etc/profile

运行java -version查看是否成功

java -version
#以下是输出
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

修改一下主机映射

sudo vim /etc/hosts
#添加以下内容
192.168.10.51 centos01
192.168.10.52 centos02
192.168.10.53 centos03

克隆出两个节点,命名为centos02,centos03,修改他们的主机名和ip,就不多赘述了
免密登陆
分别在三个节点上执行以下命令:

ssh localhost
cd ~/.ssh/
ssh-keygen -t rsa
ssh-copy-id centos01
ssh-copy-id centos02
ssg-copy-id centos03

配置Haddop
在centos01上修改profile环境变量,其他两个节点不需要

sudo vim /etc/profile
#以下是修改内容
export JAVA_HOME=/opt/modules/jdk1.8.0_261
export HADOOP_HOME=/opt/modules/hadoop-2.7.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

可以直接复制粘贴修改之前的内容
现在进入hadoop-2.7.1/etc/hadoop目录,修改以下配置文件:

cd /opt/modules/hadoop-2.7.1/etc/hadoop/
vim hadoop-env.sh
vim mapred-env.sh
vim yarn-env.sh
#在头部加入以下内容
export JAVA_HOME=/opt/modules/jdk1.8.0_261

下面修改core-site.xml文件

vim core-site.xml 
#修改为以下内容
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://centos01:9000</value>
        </property>
        <property>

                <name>hadoop.tmp.dir</name>
                <value>file:/opt/modules/hadoop-2.7.1/tmp</value>
        </property>
</configuration>

fs.defaultFS: HDFS的默认访问路径,也是NameNode的访问地址
hadoop.tmp.dir: Hadoop临时数据文件的存放文件,如果不配置,默认指向/tmp目录,linux系统重启之后会被自动清空

下面修改hdfs-site.xml

vim hdfs-site.xml
#修改为以下内容
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.permissions.enabled</name>
                <value>false</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/opt/modules/hadoop-2.7.1/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/opt/modules/hadoop-2.7.1/tmp/dfs/data</value>
        </property>
</configuration>

dfs.replication: 文件在HDFS系统中的副本数
dfs.permissions.enabled: 检查用户权限
dfs.namenode.name.dir: NameNode节点数据在本地文件系统的存放位置
dfs.datanode.data.dir: DataNode节点数据在本地问及那系统的存放位置

下面修改slaves文件

vim slaves
#修改为以下内容
centos01
centos02
centos03

下面复制mapred-site.xml.template为mapred-site.xml,并修改内容

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
#修改为以下内容
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

修改 vim yarn-site.xml

vim yarn-site.xml 
#修改为以下内容
<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
       			<name>yarn.resourcemanager.address</name>
       			<value>centos01:8032</value>
        </property>
</configuration>

将修改好的hadoop包传给其他节点(所以上面多解压了几次,不过就不管了,不影响)

scp -r /opt/modules/hadoop-2.7.1/ hadoop@centos02:/opt/modules/
scp -r /opt/modules/hadoop-2.7.1/ hadoop@centos03:/opt/modules/

格式化namenode

hadoop namenode -format

开启hadoop集群!

start-all.sh

查看java进程

jps

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三个节点情况应该是上面这种情况,不使用集群要记得使用命令关闭:

stop-all.sh

测试 HDFS
在主节点上执行以下命令,在HDFS根目录创建input,并将hadoop安装目录下的文件README.txt上传到新建input文件夹中

hdfs dfs -mkdir /input
hdfs dfs -put /opt/modules/hadoop-2.7.1/README.txt /input

测试 MapReduce
测试hadoop自带的mapreduce单词计数程序,统计/input文件夹中的所有文件的单词数目

cd /opt/modules/hadoop-2.7.1/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output

统计完成之后,用以下命令检查

hdfs dfs -cat /output/*

你将会看到所有的单词以及它们的数目,到此就说明hadoop搭建成功啦!

注意:

1、上面的scp -r命令是不能覆盖文件夹内容的,所以你重新修改hadoop的配置文件和删改文件(夹)之后要先把其他节点的hadoop文件删除了之后再用scp命令
2、使用mapreduce命令时,要严格的使用上面的代码,否则会出现路径出错问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值