大数据开发系列(一)----Hadoop详细配置

http://www.bubuko.com/infodetail-3137033.html

cd
1、/ 代表根目录

2、. 当前目录

3、.. 上级目录

4、~ 当前用户的默认工作目录

/.. /. 直接返回根目录
安装Linux教程:
参考: https://www.cnblogs.com/frankdeng/p/9027037.html

VMnet1对应仅主机模式
VMnet8对应NAT模式
以 VMnet8的IP作为基础

进入root模式才能修改
进入root命令
su 或者 su root

修改主机名:
sudo vim /etc/sysconfig/network
删除network文件其他内容,添加:
NETWORKING=yes
HOSTNAME=hadoop101

执行命令 sudo hostname hadoop101
exit重启终端,主机名称修改成功

E325: 注意 发现交换文件 “*.swp“ 解决方法
解决法案:

1、用命令恢复非正常文件,vim -r 非正常文件,然后再删除.swap文件,再次编辑文件时,不会再提示警告。

2、用ls -al命令查询出.swap隐藏文件,并删除,下载再编辑文件时,不会再提示警告。

一、IP修改
1:
hadoop101 IP修改:
vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改 BOOTPROTO="static"
添加:
IPADDR=192.168.25.101
GATEWAY=192.168.25.2
NDS1=192.168.25.2
DNS2=8.8.8.8
2:
vim /etc/hostname
添加 hadoop101

3:
vim /etc/hosts
添加
192.168.25.101 hadoop101
192.168.25.102 hadoop102
192.168.25.103 hadoop103
4:
重启
service network restart

二、jdk 解压
将文件 jdk-8u301-linux-x64.tar.gz和hadoop-3.3.1.tar.gz上传到/opt/software_2021(software_2021文件夹是自己建立的)
jdk-8u301-linux-x64.tar.gz和hadoop-3.3.1.tar.gz解压到文件夹 /usr/lib/JDK_2021(JDK_2021文件夹是自己建立的)
读写权限:
chmod 777 software_2021
chmod 777 JDK_2021
解压:
tar -xzvf jdk-8u301-linux-x64.tar.gz -C /usr/lib/JDK_2021
tar -xzvf hadoop-3.3.1.tar.gz -C /usr/lib/JDK_2021

1、配置环境变量:
vim /etc/profile
(2)编辑模式下,在结尾或开头添加如下:java

JAVA_HOME

export JAVA_HOME=/usr/lib/JDK_2021/jdk1.8.0_301
export PATH=PATH
export CLASSPATH=.:JAVA_HOME/lib/tools.jar

HADOOP_HOME

export HADOOP_HOME=/usr/lib/JDK_2021/hadoop-3.3.1
export PATH=HADOOP_HOME/bin
export PATH=HADOOP_HOME/sbin

2、更新
source /etc/profile

hadoop version
java -version
pwd 显示当前你在什么位置

(1)bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
(3)lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
(4)sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
(5)share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例

三、关闭防火墙
关闭防火墙命令
sudo systemctl disable firewalld.service
systemctl disable firewalld.service
systemctl disable firewalld
systemctl stop firewalld

查看防火墙状态
sudo firewall-cmd --state

四、SSH安装授权
ssh 安装 授权
https://www.jb51.net/article/137194.htm
CentOS 默认已安装了 SSH client、SSH server,可打开终端执行如下命令进行检验:
rpm -qa | grep ssh
安装ssh:
yum install openssh-clients

yum install openssh-server

命令测试一下 SSH 是否可用:
ssh localhost

进入ssh
cd /root/.ssh

生成公匙的命令 ssh-keygen -t rsa

私匙 id_rsa
公匙 id_rsa.pub

新建 vim authorized_keys

加入授权

cat id_rsa.pub >> authorized_keys

修改文件权限

chmod 600 ./authorized_keys

登录ssh命令
ssh localhost

退出ssh命令
exit

/usr/lib/JDK_2021/hadoop-3.3.1
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop

五、CentOS 7 + Hadoop3.3.1 搭建分布式集群: 可以利用xsync /usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
参考 https://www.cnblogs.com/thousfeet/p/8618696.html

hadoop配置路径为 :
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
1、core-site.xml文件配置: vim core-site.xml




fs.defaultFS
hdfs://hadoop101:8020



hadoop.tmp.dir
/usr/lib/JDK_2021/hadoop-3.3.1/data

2、hdfs-site.xml文件配置:vim hdfs-site.xml



dfs.namenode.http-address
hadoop101:9870



dfs.namenode.http-address
hadoop103:9868

3、mapred-site.xml文件配置:vim mapred-site.xml




mapreduce.framework.name
yarn

4、yarn-site.xml文件配置:vim yarn-site.xml




yarn.nodemanager.aux-services
mapreduce_shuffle



yarn.resourcemanager.hostname
hadoop102


yarn.nodemanager.env-whitelist
JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME

5、修改hadoop-env.sh,配置java jdk路径,大概在27行配置,如下:
export JAVA_HOME=/usr/lib/JDK_2021/jdk1.8.0_301
export HADOOP_HOME=/usr/lib/JDK_2021/hadoop-3.3.1

六、利用hadoop101克隆hadoop102,hadoop103
参考 https://www.cnblogs.com/frankdeng/p/9027037.html
https://blog.csdn.net/weixin_43160263/article/details/88074318

3 台 服务器需要ssh相互授权
命令测试一下 SSH 是否可用:
ssh localhost

进入ssh cd ~/.ssh/

生成公匙的命令 ssh-keygen -t rsa

私匙 id_rsa
公匙 id_rsa.pub

新建 vim authorized_keys

加入授权

cat id_rsa.pub >> authorized_keys

修改文件权限

chmod 600 ./authorized_keys

公匙

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRmEYNkF2R3dyE3/GGxrOby8UCsNLY5K1u2aUtwxEi7YZF+AZaFHbEFmbJKTh56VPfCsjLiOiVS4zRJ87D09wOOn7E4TZOjaQ8YZDZeGmISiZEBw4ggZKxnq/hL7icCTR2u/5IcNemcgTPZ9kQGH+SI+y69hspy+nVXijVzBAcMxAkdQXPhU/PFSOiMJJau/k8h2AeIKiYDQwRe4DJvI96wU1WvTn3aR285V2HGJ18Vp1s1v9ASAdLp75PMrZRktkJnqth8OIgyqM6R4G/34NtsFbvhA/eOOMZbePa6MlAGN5IXCPfyxfoafkqfW5xFgaoJWr8gUl89hjSwksC5Xgh root@hadoop102

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzLk9GSR9ID39q6JomirKmyEdunSbGAsKjyw0BxUT6t7o9eLE6d6kXJ8V0ppHGTayX9+Txrg7d8Fay5T12Z8pEiC2IWvBd5Ni0u5r9hsTDejEvLqJ92ZjosOvsQc/ywCaTkJj50gdacAubpZjbYPewfzSwQKPnwD7ExpYARBLvDK0nw05Wa5pREXeaJCngJ7PInMf6hhdGpirdFA+hQn7pNAXXJ9qq6UQ3lwrcImmk6pQeIDUGcXTUTa0rDfYZ9UC/CW+IfqP/dvuYtwt4OrpeRG4/Z9uve5Hg775kgv/2a8dFjbuSSQQXwyFTSa+XrfPcoiwnXUL5GjYsQJkEtNTX root@hadoop101

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIsczifiKogF4U2GrkeoviWmaoFkiGLZ4oHCLZnw1sfP9rgsBitELKvsEz1SD5xC4j2WjVpDRHTumnV0lEUVsxhQjtsCWCNXc4cBEyYUt39C2K+ElayNxwYDX+bbIg4yhGdl/OPkDSXMdWDYPKdjFUrgJ1KcLnLaZ6tvip8nxk3KZTFszY4Kk7KzORZ5ypAr0apTNl6a7qE+JCeCicj8LRryz6tbwA8H2OT7Sb17YnLvJY//oRWHXKA9hEZOiG2XSa09f6J5+cS7ycNpo2xzH3yOED+1zQrNH+sXQXBg5FO8aVA8lVf6krgPbkRmkS0uAgb0Qd2P8HhnzZu81ag4Rf root@hadoop103

cd /root/.ssh/
1、权限不足,需要将读写权限传递给日志目录
sudo chmod -R 777 /usr/lib/JDK_2021/hadoop-3.3.1/logs
scp authorized_keys root@hadoop101:/root/.ssh/

[root@xiaoye004 .ssh]# scp authorized_keys root@xiaoye003:/root/.ssh/

远程复制传输文档:将authorized_keys文件复制传输到hadoop103的xiaoye文件夹下面
scp -r authorized_keys root@hadoop103:/xiaoye

远程同步传输文档:
rsync -av authorized_keys root@xiaoye003:/xiaoye_2021103/

删除文件夹
rm -rf xxx

查看文件大小
du -sh

/usr/lib/JDK_2021/hadoop-3.3.1
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop

1、进入桌面路径为:vim /home/xiaoye/bin
在/home/xiaoye/bin文件夹下新建xsync脚本,内容如下:

!/bin/bash

获取输入参数个数,如果没有参数,直接退出

pcount=$#
if((pcount==0)); then
echo no args...;
exit;
fi

获取文件名称

p1=p1`
echo fname=$fname

获取上级目录到绝对路径

pdir=cd -P $(dirname $p1); pwd
echo pdir=$pdir

获取当前用户名称

user=whoami

循环

for((host=1; host<=3; host++)); do
echo fname host:host==================
rsync -rvl fname host:$pdir
done

备注:这里的ni对应自己主机名,需要做相应修改。另外,for循环中的host的边界值

2、修改脚本 xsync 具有执行权限,添加一个权限即可:
chmod 777 rsync

3、调用脚本形式:xsync 文件名称

xsync /home/xiaoye/bin

3台服务器同时配置workers ,路径是:cd /usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop

配置内容
hadoop101
hadoop102
hadoop103

二、初始化集群:
cd /usr/lib/JDK_2021/hadoop-3.3.1
格式化namenode, [root@xiaoye004 hadoop-3.3.1]#
1、命令:hdfs namenode -format

2、启动集群

hadoop101主机hadoop启动命令:sbin/start-dfs.sh

hadoop102主机hadoop启动命令:sbin/start-yarn.sh

hadoop101主机停止命令: sbin/stop-dfs.sh
hadoop102主机停止命令:sbin/stop-yarn.sh

异常:
两种解决ERROR: Attempting to operate on hdfs namenode as root的方法
https://www.cnblogs.com/nihilwater/p/13849396.html
解决方案一:可以利用xsync /etc/profile
输入如下命令,在环境变量中添加下面的配置

vi /etc/profile

然后向里面加入如下的内容

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
输入如下命令使改动生效

source /etc/profile

解决方案二: 可以利用xsync /etc/profile
将start-dfs.sh,stop-dfs.sh(在hadoop安装目录的sbin里)两个文件顶部添加以下参数

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
将start-yarn.sh,stop-yarn.sh(在hadoop安装目录的sbin里)两个文件顶部添加以下参数

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

******hadoop 异常处理1-4步:
1.停止进程
sbin/stop-dfs.sh

2.删除所有集群中hadoop-3.3.1文件夹中的data和logs文件

/usr/lib/JDK_2021/hadoop-3.3.1/data_save/dfs

rm -rf data/ logs/
格式化namenode, [root@xiaoye004 hadoop-3.3.1]#
命令:hdfs namenode -format

4.启动集群 cd /usr/lib/JDK_2021/hadoop-3.3.1

hadoop101主机hadoop启动命令:sbin/start-dfs.sh

hadoop102主机hadoop启动命令:sbin/start-yarn.sh

hadoop101主机停止命令: sbin/stop-dfs.sh
hadoop102主机停止命令:sbin/stop-yarn.sh
启动页面
http://hadoop101:9870
http://hadoop102:8088

hadoop 上传小文件
hadoop fs -mkdir /uploadFile

hadoop fs -put /opt/Software/jdk-8u301-linux-x64.tar.gz /

yarn

hadoop jar share/hadoop/

hadoop jar example110.jar /uploadFile/NOTICE.txt /output/helloCount.txt

https://blog.csdn.net/m0_46413065/article/details/116378004
六、集群时间同步:xiaoye004为时间服务器

服务器在外网环境,不需要时间同步

服务器在内网环境,必须时间同步

1.查看时间状态
systemctl status ntpd

2.开启时间
systemctl status ntpd

3.开机就开启时间
systemctl is-enabled ntpd

4.配置ntp.conf文件 路径 在 /etc

停止其他服务器ntpd

sudo systemctl stop ntpd

sudo systemctl disable ntpd

每分钟同步一次

sudo crontab -e

注意空格
*/1 * * * * /usr/sbin/ntpdate xiaoye004

sudo systemctl start ntpd

HDFS 对大数据进行储存
上传下载

hadoop fs -copyFromLocal ./shuguo.txt /sanguo

方法一:Usage:hadoop fs - copyFromLocal 本地文件 /本地文件的路径

hadoop fs -copyFromLocal ./shuguo.txt /sanguo

方法二:Usage:hadoop fs -put /本地文件 /本地文件的路径/重命名的文件

               hadoop fs -put  ./shuguo.txt    /sanguo/shuguo1.txt

方法三:Usage:hadoop fs - moveFromLocal /本地文件/本地文件的路径/重命名的文件

             hadoop fs -moveFromLocal   ./shuguo.txt    /sanguo/shuguo2.txt

hadoop fs -ls /sanguo
hadoop fs -cat /sanguo/wuguo.txt

hadoop fs -du -s -h /sanguo

hadoop fs -du -h /sanguo

hadoop fs -rm /sanguo/shuguo2.txt

hadoop-3.3.1.tar.gz
hadoop fs -copyFromLocal ./hadoop-3.3.1.tar.gz /jinguo

你可能感兴趣的:(大数据开发系列(一)----Hadoop详细配置)