centos7中进行hadoop搭建全过程

1.模版虚拟机环境准备

1.安装模版虚拟机,(以下地址均为实例,具体情况具体应用)IP地址192.168.10.100,主机名称hadoop100,内存4G,硬盘50G

2.配置要求

1)确认虚拟机联网,ping www.baidu.com试试,ping的同即可

2)安装epel-release

epel-release全称Extra Packages for Enterprise Linux,为"红帽系"的操作系统提供的额外的软件包,适用于RHEL,Centos和Scientific Linux.相当于一个软件仓库.安装原因为大多数rpm包在官方repository中是找不到的

(采用yum方式安装,-y为对所有回答都回答yes)

yum install -y epel-release

如果Linux安装的是最小系统版,还需要安装net-tool和vim

net-tool:工具包集合,包含ifconfig等命令

yum install -y net-tools

vim:编辑器

yum install -y vim

3)关闭防火墙

systemctl stop firewalld

systemctl disable firewalld.service

在企业开发中,公司一般都会对外设置安全的防火墙,所以单个服务器防火墙关闭是无影响的,具体情况具体对待

4)创建用户(这里示例为user1),并修改user1的密码

useradd user1

passwd user1

5)给用户配置root权限,方便后期加sudo执行root权限的命令

(在root账户下修改/etc/sudoers文件)       vim /etc/sudoers

在%wheel下添加(

具体位置为:

##Allows people in group wheel to run all commands

%wheel        ALL=(ALL)        ALL的下方)

user1        ALL=(ALL)        NOPASSWD:ALL

不要放在root行下,因为所有的用户都属于wheel组,你在root下配置user1具有免密功能,但按行执行到%wheel行时,又会被覆盖为普通用户,需要密码,所以切记user1要放到%wheel下

6)在/opt目录下创建文件夹,并修改所属主和所属组

在/opt目录下创建module,software文件夹

mkdir /opt/module

mkdir /opt/software

修改module,software文件夹的所有者和所属组均为user1用户

chown user1:user1 /opt/module

chown user1:user1 /opt/module

查看module,software文件夹的所有者和所属组

cd /opt/

ll

7)卸载虚拟机自带的JDK

如果安装的是Linux最小版跳过这步

rpm -qa | grep -i java | xargs -n1 rpm -e --nodes

解释:

  • rpm -qa:查询所有安装的rpm软件包
  • grep -i:忽略大小写
  • xargs - n1:每次只传递一个参数
  • rpm -e -nodeps:强制卸载软件

8)重启

reboot

2.克隆虚拟机

1.利用模版机hadoop100,克隆三台:hadoop102,hadoop103,hadoop104(克隆时关闭hadoop100)

2.修改克隆机IP,以hadoop102举例

1)修改克隆机的静态IP

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改为:

DEVICE=ens33

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=static

NAME="ens33"

IPADDR=192.168.10.102

PREFIX=24

GATEWAY=192.168.10.2

DNS1=192.168.10.2

2)查看Linux虚拟机的虚拟网络编辑器,编辑>虚拟网络编辑器>VMnet8

 

3)查看Windows系统适配器VMware Network Adapter VMnet8的IP地址

 

 4)保证Linux系统ifcfg-ens33文件中IP地址,虚拟网络编辑器地址和Windows系统VM8网络IP地址相同

3.修该克隆机主机名,以hadoop102为例

1)修改主机名

vim /etc/hostname        为hadoop102

2)配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts

vim /etc/hosts

添加如下内容:

192.168.10.100 hadoop100

192.168.10.101 hadoop101

192.168.10.102 hadoop102

192.168.10.103 hadoop103

192.168.10.104 hadoop104

4.重启hadoop102

reboot

5.修改windos的主映射文件(hosts文件)

1)进入C:\Windows\System32\driver\etc

2)打开hosts文件添加如下内容

192.168.10.100 hadoop100

192.168.10.101 hadoop101

192.168.10.102 hadoop102

192.168.10.103 hadoop103

192.168.10.104 hadoop104

注意window10无法直接修改,建议将hosts文件复制到桌面修改后再复制回C:\Windows\System32\driver\etc替换

6.在hadoop102中安装JDK

1)卸载JDK:上文有

2)使用XShell将JDK导入/opt/software下

这里我使用的是jdk-8u212-linux-x64.tar.gz

3)解压JDK到/opt/module目录下

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module

4)配置JDK环境变量

新建/etc/profile.d/my_env.sh文件

sudo vim /etc/profile.d/my_env.sh

添加以下内容:

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_212

export PATH=$PATH:$JAVA_HOME/bin

保存后退出(:wq)

source以下/etc/profile文件,让环境变量生效

5)测试JDK是否安装成功

java -version

如果有java version "1.8.0_212"类似出现则成功(没有出现但确认上面无错reboot一下)

4.在hadoop102中安装Hadoop

1.用XShell文件将hadoop-3.1.3.tar.gz导入opt目录下的software下

2.解压到/opt/module下

tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

3.将Hadoop添加到环境变量

1)获取Hadoop安装路径

pwd

显示:/opt/module/hadoop-3.1.3

2)打开/etc/profile.d/my_env.sh文件

sudo vim /etc/profile.d/my_env.sh

在文末添加:

#HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-3.1.3

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

3)source /etc/profile

4.测试是否安装成功hadoop version

显示:Hadoop 3.1.3

5.重启

sudo reboot

5.完全分布式搭建

截止目前还需做:配置集群,单点启动,配置ssh,群起并测试集群

1.编写集群分发脚本(便捷我们搭建)

1)这里要了解两个工具scp和rsync

scp为拷贝工具,rsync为同步工具,两者区别在于scp为全复制,rsync为只复制被更改文件

语法规则:

scp -r $user@$host:$pdir/$fname $user@$host:$pdir/$fname

rsync -av $user@$host:$pdir/$fname $user@$host:$pdir/$fname

命令 选项参数 被拷贝用户@主机:要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

-r是递归,-a是归档拷贝,-v显示复制过程

如果是拷贝(同步)的是本地用户则被拷贝用户@主机:都可以省略,如果目的地用户为本地则目的用户@主机:可写为./

2)了解完来实现脚本

cd /home/atguigu

mkdir bin(选择这里创建时方便我们,声明在了全局环境变量的路径里了 可以用echo $PATH查看全局环境变量)

cd bin

vim xsync

在文件编写如下

#!/bin/bash

if [ $# -lt 1 ]
then
    echo Not Enough Argument!
    exit;
fi
for host in hadoop102 hadoop103 hadpoop104
do
    echo ========= $host =========
    for file in $@
    do
        if [ -e $file ]
            then
                pdir=$(cd -P $(dirname $file); pwd)
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

3)修改权限

chmod 777 xsync

4)将脚本复制到/bin中,以便全局调用

sudo cp xsync /bin/

5)同步环境变量

sudo ./bin/xsync /etc/profile.d/my_env.sh

6)hadoop103,hadoop104刷新一下

source /etc/profile

2.ssh免密配置

1)cd /home/atguigu/.ssh

2)生成公钥

ssh-keygen -t rsa

3)拷贝发送公钥

ssh-copy-id hadoop102(一定要给自己也搞一下免密,不然后面会出错)

ssh-copy-id hadoop103

ssh-copy-id hadoop104

4)完成后可以cat authorized_keys看看是不是都配齐整了

5)介绍一下.ssh文件夹下的几个文件

known_hosts        记录ssh访问过计算机的公钥

id_rsa        生成的私钥

id_rsa.pub        生成的公钥

authorized_keys        存放授权过的无密登录服务器公钥

3.集群配置

计划这么安排

Haoop配置文件分为默认配置文件和自定义配置文件,想修改某一默认配置值时应该去修改自定义配置文件,更改相应属性值

默认配置文件有

  • core-default.xml         hadoop-common-3.1.3.jar/core-default.xml
    • hdfs-default.xml        hadoop-hdfs-3.1.3.jar/hdfs-default.xml
      • yarn-default.xml        hadoop-yarn-common-3.1.3.jar/yarn-default.xml
        • mapred-default.xml        hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml

对应的有自定义配置文件:core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml,他们都存放在$HADOOP_HOME/etc/hadoop中

1)配置core-site.xml

cd #HADOOP_HOME/etc/hadoop

vim core-site.xml

在<configuration></configuration>标签内添加如下内容

<!--指定NameNode的地址-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop102:8020</value>
</property>

<!--指定hadoop数据的存储目录-->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-3.1.3/data</value>
</property>

<!--配置HDFS网页登录使用的静态用户为User1-->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>user1</value>
</property>

2)配置hdfs-site.xml

vim hdfs-site.xml

<!-- nn web 端访问地址-->
 <property>
 <name>dfs.namenode.http-address</name>
 <value>hadoop102:9870</value>
 </property>
<!-- 2nn web 端访问地址-->
 <property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>hadoop104:9868</value>
 </property>

3)YARN配置文件

vim yarn-site.xml

<!-- 指定 MR 走 shuffle -->
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <!-- 指定 ResourceManager 的地址-->
 <property>
 <name>yarn.resourcemanager.hostname</name>
 <value>hadoop103</value>
 </property>
 <!-- 环境变量的继承 -->
 <property>
 <name>yarn.nodemanager.env-whitelist</name>
 
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
 </property>

4)MapReduce配置文件

vim mapred-site.xml

<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>

5)分发Hadoop配置文件

xsync /opt/module/hadoop-3.1.3/etc/hadoop/

6)配置workers

vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

增加:

hadoop102

hadoop103

hadoop104

7)同步

xsync /opt/module/hadoop-3.1.3/etc

4.启动集群

1)第一次启动需要再102节点格式化NameNode

hdfs namenode -format

5.配置历史服务器

1)vim mapred-site.xml

<!-- 历史服务器端地址 -->
<property>
 <name>mapreduce.jobhistory.address</name>
 <value>hadoop102:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>hadoop102:19888</value>
</property>

2)分发配置

xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml

3)在hadoop102启动历史服务器

mapred --daemon start historyserver

4)查看JobHistory

http://hadoop102:19888/jobhistory

6.开启日志聚集功能

1)vim yarn-site.xml

<!-- 开启日志聚集功能 -->
<property>
 <name>yarn.log-aggregation-enable</name>
 <value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property> 
 <name>yarn.log.server.url</name> 
 <value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
 <name>yarn.log-aggregation.retain-seconds</name>
 <value>604800</value>
</property>

2)老样子分发

xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml

3)使用前要重启NodeManager,ResourceManager和HistoryServer

sbin/stop-yarn.sh

mapred --daemon stop historyserver

start-yarn.sh

mapred --daemon start historyserver

4)历史服务器地址

http://hadoop102:19888/jobhistory

至此,Hadoop搭建结束

(至此,源稚生小队全灭)

附加两个脚本便捷日后操作

vim myhadoop.sh
#!/bin/bash
if [ $# -lt 1 ]
then
 echo "No Args Input..."
 exit ;
fi
case $1 in
"start")
 echo " =================== 启动 hadoop 集群 ==================="
 echo " --------------- 启动 hdfs ---------------"
 ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
 echo " --------------- 启动 yarn ---------------"
 ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
 echo " --------------- 启动 historyserver ---------------"
 ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start 
historyserver"
;;
"stop")
 echo " =================== 关闭 hadoop 集群 ==================="
 echo " --------------- 关闭 historyserver ---------------"
 ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop 
historyserver"
 echo " --------------- 关闭 yarn ---------------"
 ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
 echo " --------------- 关闭 hdfs ---------------"
 ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
 echo "Input Args Error..."
;;
esac
vim jpsall
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
 echo =============== $host ===============
 ssh $host jps 
done

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你想知道如何在CentOS 7上搭建Hadoop吗?以下是一些基本步骤: 1. 首先,确保你已经安装了CentOS 7,并且具有root访问权限。 2. 更新系统:运行以下命令进行系统更新: ``` sudo yum update ``` 3. 安装Java:Hadoop需要Java环境,你可以通过以下命令安装Java: ``` sudo yum install java-1.8.0-openjdk-devel ``` 4. 配置环境变量:编辑`/etc/profile`文件,并添加以下行以配置JAVA_HOME和HADOOP_HOME环境变量: ``` export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_HOME=/path/to/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 5. 下载和解压Hadoop:你可以从Apache Hadoop的官方网站下载最新版本的Hadoop,并将其解压到你选择的目录: ``` wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-X.X.X/hadoop-X.X.X.tar.gz tar -xzvf hadoop-X.X.X.tar.gz ``` 6. 配置Hadoop:进入Hadoop的目录,并编辑`etc/hadoop/hadoop-env.sh`文件,将`export JAVA_HOME`的路径更改为你的Java安装路径。 7. 配置Hadoop集群:编辑`etc/hadoop/core-site.xml`文件,并添加以下配置: ``` <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 8. 编辑`etc/hadoop/hdfs-site.xml`文件,并添加以下配置: ``` <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` 9. 格式化HDFS:运行以下命令以格式化HDFS: ``` hdfs namenode -format ``` 10. 启动Hadoop:运行以下命令启动Hadoop: ``` start-all.sh ``` 这些步骤会将Hadoop成功部署在CentOS 7上。请注意,这只是一个简单的指南,你可能需要根据你的具体需求进行一些调整和配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值