Hadoop 部署
hadoop部署步骤:
环境rhel8.2
1.配置主机网络信息
使物理机能和主机ping通
使用secureCRT与虚拟连接
设置网卡(dhcp)
[root@maoqiyang ~]# nmcli device connect ens160
Device 'ens160' successfully activated with '4a5b3266-42ad-4e0f-a17d-8f200cc67def'.
2.设置主机名,绑定主机名与ip地址
[root@maoqiyang ~]# hostnamectl set-hostname maoqiyang
[root@maoqiyang ~]# bash
[root@maoqiyang ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.0.99 maoqiyang
[root@maoqiyang ~]# ping maoqiyang
PING maoqiyang (172.16.0.99) 56(84) bytes of data.
64 bytes from maoqiyang (172.16.0.99): icmp_seq=1 ttl=64 time=0.062 ms
^C
3.开启sshd。关闭防火墙与selinux
systemctl enable --now sshd
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
4.创建hadoop并设置密码
[root@maoqiyang ~]# useradd hadoop && echo '123' | passwd --stdin hadoop
Changing password for user hadoop.
passwd: all authentication tokens updated successfully.
[root@maoqiyang ~]# cat /etc/shadow | grep hadoop
hadoop:$6$iQ9ZfF0I9gIglEZm$YLyxw22TvWnt63or457hOPBEkY6fCoBnEVpOcT7PcY2XDY3YhzBItoe23ecS5mpKID7x2iqpSbSv/r9s638Kn1:19062:0:99999:7:::
给hadoop提权
vi /etc/sudoers
hadoop maoqiyang=(root) NOPASSWD:ALL
5.安装java环境
1.卸载老版本,安装新版
rpm -qa | grep java
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64
查看删除结果再次键入命令 java -version
NO such file or directory则成功
2.传文件
(hadoop一会用)
物理机cmd scp
scp jdk-8u152-linux-x64.tar.gz root@172.16.0.99:/root
scp hadoop-2.7.1.tar.gz root@172.16.0.99:/root
3.解压文件
tar -zxvf jdk-8u152-linux-x64.tar.gz -C /usr/local/src
4.配置jdk环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/src/jdk1.8.0_152
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version
6.安装Hadoop软件
tar -zxvf ~/hadoop-2.7.1.tar.gz -C /usr/local/src/
配置环境变量
vi /etc/profile
export HADOOP_HOME=/usr/local/src/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
hadoop #查看是否生效
修改目录的所有者和拥有组让hadoop执行的时候不会有权限问题
chown -R hadoop:hadoop /usr/local/src
ll /usr/local/src
7.安装单机版的hadoop系统
进入hadoop安装的目录
cd /usr/local/src/hadoop-2.7.1/
告诉hadoop系统jdk的目录
vi etc/hadoop/hadoop-env.sh
更改export JAVA_HOME 这行
export JAVA_HOME=/usr/local/src/jdk1.8.0_152
到此设置好了hadoop本地模式
8.运行hadoop
使用hadoop用户来运行hadoop
su - hadoop
将输入的文件放在hadoop家目录的input下
mkdir ~/input
创建输入文件
vi ~/input/data.txt
输入内容
Hello World
Hello Hadoop
Hello Huasan
测试mapreduce运行
hadoop jar /usr/local/src/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount ~/input/data.txt ~/output
hadoop命令 jar包 要做什么(wordcount统计单词数量) 被统计的输入文件 和被统计的输出文件
注意:输出目录不能事先创建,如果已经有~/output 目录,就要选择另外的
输出目录,或者将~/output 目录先删除。删除命令如下所示。
[hadoop@maoqiyang ~]$ rm -rf ~/output
统计多个输入的单词数
hadoop jar /usr/local/src/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount ~/input/data.txt ~/input/abc ~/input/etc/* ~/output
~/input/data.txt ~/input/abc ~/input/etc/* 都会整合到输出文件output里面