(二)Hadoop集群配置安装

集群规划

hadoop配置安装.png

NameNode、ResourceManager、SecondaryNameNode三者分别放在三个节点上,因为都要占用内存的资源,不要重复出现在一个节点上。

插一句--在secureCRT7.3版本上,如果使用xterm模式,那么小键盘在vim编辑器里就不能使用,这时做如下配置:
Session Optionn–>Terminal—>Emulation–>modes选项下不要勾选Enable keypad mode switching

(一)问题
sudo执行命令时提示找不到该命令?
(二)解决办法
1、切换到root用户, 以root用户身份来编辑文件/etc/sudoers:
vim /etc/sudoers
找到Defaults env_reset, 将其改为Defaults !env_reset,
然后wq!强制保存退出。
2、 切换回普通用户如用户名为xx, 编辑/etc目录下的配置文件bashrc:
vim bashrc
在文件内最后追加:
alias sudo='sudo env PATH=$PATH'
使修改后的配置文件生效:
source bashrc

创建组:groupadd 组名
查看现在的组:groups
查看所有组:cat /etc/group
创建用户到组中:useradd -g 组名 用户名
给用户添加密码:passwd 用户名(输入密码即可)
查看组中的用户:groups shsxt
切换用户:su 用户名
切换超级用户:su
将文件添加给用户:sudo chown shsxt:shsxt module/ software/
其他命令参考菜鸟教程:https://www.runoob.com/linux/linux-user-manage.html

修改/etc/sudoers,允许普通用户进行免密操作:
Linux中普通用户用sudo执行命令时报”xxx is not in the sudoers file.This incident will be reported”错误,解决方法就是在/etc/sudoers文件里给该用户添加权限。如下:
1.切换到root用户下
  方法为直接在命令行输入:su,然后输入密码(即你的登录密码,且密码默认不可见)。
2./etc/sudoers文件默认是只读的,对root来说也是,因此需先添加sudoers文件的写权限,命令是:
即执行操作:chmod u+w /etc/sudoers
3.编辑sudoers文件
即执行:vi /etc/sudoers
找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
ps:这里说下你可以sudoers添加下面四行中任意一条
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
4.撤销sudoers文件写权限,命令:
chmod u-w /etc/sudoers

安装框架之前,先安装jdk

在secureCRT中按alt+p,上传文件
cd /opt/software
拖拽linux环境下的jar包到sftp窗口,上传
同理将hadoop和lzo的jar包拖拽上传


上传hadoop和jdk、izo的jar包.png

解压缩到指定目录:
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
复制路径,配置环境变量:
/opt/module/jdk1.8.0_144
创立新文件:sudo vim /etc/profile.d/env.sh,免去后续频繁进行sourec /etc/profile操作
编辑:
.#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=JAVA_HOME/bin
退出:source /etc/profile.d/env.sh
查看版本,是否安装成功:java -version

安装hadoop

cd /opt/software
tar -zxf hadoop-2.7.2.tar.gz -C /opt/module/
编辑:
.#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=HADOOP_HOME/bin
export PATH=HADOOP_HOME/sbin
退出:source /etc/profile.d/env.sh
查看是否安装成功,直接输入:hadoop

hadoop安装成功提示.jpg

配置文件:
cd /opt/module/hadoop-2.7.2/etc/hadoop
1.core-site.xml
2.hdfs-site.xml
3.yarn-site.xml
4.mapred-site.xml

5.hadoop-env.sh
6.yarn-env.sh
7.mapred-env.sh

8.salves(不能有空格和空行,主机名称)

配置core-site.xml
vi core-site.xml
在该文件中编写如下配置


fs.defaultFS
hdfs://hadoop002:9000



hadoop.tmp.dir
/opt/module/hadoop-2.7.2/data/tmp

(2)HDFS配置文件
配置hadoop-env.sh:
vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置hdfs-site.xml
vi hdfs-site.xml
在该文件中编写如下配置副本数(生产环境下一般是3个)

dfs.replication
1



dfs.namenode.secondary.http-address
hadoop004:50090

配置yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

(3)YARN配置文件
配置yarn-env.sh
vi yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置yarn-site.xml
vi yarn-site.xml
在该文件中增加如下配置


yarn.nodemanager.aux-services
mapreduce_shuffle



yarn.resourcemanager.hostname
hadoop003



yarn.log-aggregation-enable
true



yarn.log-aggregation.retain-seconds
604800

(4)MapReduce配置文件
配置mapred-env.sh
vi mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
在该文件中增加如下配置


mapreduce.framework.name
yarn



mapreduce.jobhistory.address
hadoop002:10020



mapreduce.jobhistory.webapp.address
hadoop002:19888

(5)slaves配置文件/opt/module/hadoop-2.7.2/etc/hadoop/slaves
vi slaves
在该文件中增加如下内容:
hadoop002
hadoop003
hadoop004

编写集群同步分发脚本xsync
(1)脚本实现
(a)在/home/任意自定义目录下创建bin目录,并在bin目录下xsync创建文件,文件内容如下:
mkdir bin
cd bin/
vi xsync
在该文件中编写如下代码
.#!/bin/bash
.#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi

.#2 获取文件名称
p1=p1`
echo fname=$fname

.#3 获取上级目录到绝对路径
pdir=cd -P $(dirname $p1); pwd
echo pdir=$pdir

.#4 获取当前用户名称
user=whoami

.#5 循环
for host in hadoop002 hadoop003 hadoop004
do
echo ------------------- pdir/user@pdir
done
(b)修改脚本 xsync 具有执行权限
chmod 777 xsync
(c)调用脚本形式:xsync 文件名称
xsync /home/atguigu/bin

注:如果出现bash: rsync: command not found报错
所有节点执行命令,进行安装rsync:
sudo yum install rsync -y

进行分发:
/home/shsxt/bin/xsync hadoop-2.7.2/
/home/shsxt/bin/xsync jdk1.8.0_144/

每个节点配置环境变量:
sudo vim /etc/profile.d/env.sh
.#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=JAVA_HOME/bin

.#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=HADOOP_HOME/bin
export PATH=HADOOP_HOME/sbin
最后进行source:source /etc/profile.d/env.sh

SSH无密登录配置

cd /home/.ssh
ssh-keygen -t rsa
三次回车,生成对应的公钥与私钥

先将公钥id发送给自己:ssh-copy-id hadoop002
尝试登录:ssh hadoop002
退出:exit
另外两个节点同理复制即可(可以只给配置了namenode和resourcemanager的节点做免密设置)

对namenode格式化:
cd /opt/module/hadoop-2.7.2
bin/hdfs namenode -format

002启动hdfs顺序,先namenode再datanode
sbin/start-dfs.sh
003启动yarn的话,先resourcemanager再nodemanager
sbin/start-yarn.sh

以下命令最好是在root下进行
安装wget
yum install wget -y
修改yum源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
安装常用软件
yum install telnet man man-pages ntp vim lrzsz zip unzip perl net-tools -y

1、检查服务器是否已安装NTP服务,有下述内容输出表示已安装
rpm -qa | grep ntp
ntpdate-4.2.6p5-29.el7.centos.x86_64
ntp-4.2.6p5-29.el7.centos.x86_64
2.安装ntpdate
sudo yum install ntpdate -y
3、查看NTP服务是否开启
systemctl status ntpd
4、启动NTP服务并设置开机启动
systemctl start ntpd
systemctl enable ntpd

Tips:用的是MarkDown的编辑模式,因此如果直接复制本文代码,格式需要进行一些微调。

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3khyzn5k9q80k

你可能感兴趣的:((二)Hadoop集群配置安装)