hadoop1

hadoop1

hadoop1

 

 

## 重新分配物理地址

'''    rm -rf /etc/udev/reules.d/70......    '''

 

## 修改静态IP

 

  • 直接修改ip可能会被改回来

    '''    ~bash

    systemctl disable NetworkManager.service

    chkconfig network on

    systemctl stop NetworkManager

    systemctl restart network

    '''

  • 修改文件 /etc/systemconfig/network-script 

        

'''    ~config

ONBOOT="yes" #系统将在启动时开启该接口。

IPADDR=192.168.1.122 #静态IP

GATEWAY=192.168.1.1 #默认网关

NETMASK=255.255.255.0 #子网掩码

#DNS1=192.168.7.1 #DNS 配置

TYPE="Ethernet"

BOOTPROTO="static"

NM_CONTROLLED=no #表示该接口将通过该配置文件进行设置,而不是通过网络管理器进行管理

 

'''

  • 修改后重启网络 并双ping

 

## 修改主机名

  • hostname hostnamectl status

  •  vi /etc/hosts hadoop主机; 修改本机host

 

## 使用moba xshell 连接had主机

 

## 获取管理员权限

  • vi /etc/sudoers   name ALL=(ALL) ALL

 

 

## 命令扩充

  • ll 查看目录内权限

  • chown user:group xx/ xx/ 修改所有者

  • vi / n N

  • ps aux

  • ls xx/ 查看指定目录

  • tab X2 直接查看本文件夹

  • cat 命令  连接文件并打印到输出设备

  • 使用touch创建文件

  • 查找二进制 whereis

  • 查找文件 locate find grep 

  • 使用grep  ls sbin/ |grep mr......

 

## yum配置

  • 配置阿里云

  1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

  2. curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

  3. sudo yum clean all

  4. sudo yum makecache

  • 解决yum锁:  sudo yum makecache

  • 安装C++ yum install gcc-c++

  • 安装jdk

  1. tar -zxvf software/jdk-8u201-linux-x64.tar.gz -C ./module/

  2. vi /etc/profile 

'''    ~bash

##JAVA_HOME

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

export PATH=$PATH:$JAVA_HOME/bin

 


source /etc/profile    生效

'''

 

## 安装hadoop

  1. 脚本

'''

## HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-2.9.2

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

'''

 

## 案例 grep

'''    ~bash

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input/ output/ 'dfs[a-z.]+'

'''

 

## 案例 wordcount 

''' ~bash

mkdir wcinput

vi wcinput/wc.input

    '''

        hadoop yarn

        hadoop mapreduce

        lee

        lee

    '''

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount wcinput/ wcoutput/

cat wcoutput/part-r-0000 

'''

 

 

## hadoop 伪分布式配置

  • 修改java路径 etc/hadoop/hadoop-env.sh

'''

    export JAVA_HOME=....

'''

  • 配置core-site.xml 修改hdfs://hadoop.... 指定tmp路径 

  • 修改hdfs-site.xml 修改hdfs副本数目

  • 启动集群

'''

    bin/hdfs namenode -node #第一次格式化

    sbin/hadoop-daemon.sh start namenode

    sbin/hadoop-daemon.sh start datanode    #启动名字和数据节点

'''

  • 检查集群

'''

jps

 

cat logs/...

web端访问50070

 

#解决不可访问

vi /etc/selinux/config

SELINUX=disabled

systemctl stop firewalld.service

systemctl disabled firewalld.service #禁止防火墙重启

 

'''

 

  • hadoop操作示例

'''

bin/hdfs dfs -mkdir -p /user/atguigu/mapreduce/wordcount/input        #创建目录

bin/hdfs dfs -put wcinput/wc.input  /user/atguigu/mapreduce/wordcount/input/        #上传文件

bin/hdfs dfs -ls  /user/atguigu/mapreduce/wordcount/input/    #查看

bin/hdfs dfs -cat  /user/atguigu/mapreduce/wordcount/input/    #查看

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/mapreduce/wordcount/input/ /user/atguigu/mapreduce/wordcount/output    #执行mapreduce

 

hadoop fs -get /user/atguigu/mapreduce/wordcount/output/part-r-00000 ./wcoutput/        #下载

hdfs dfs -rmr /user/atguigu/mapreduce/wordcount/output    #删除

'''

 

## 配置yarn

  • 配置yarn-env.sh yarn-site.xml

  • 配置mapred-env.sh mapred-site.xml(template重命名)

'''

# 指定java路径

<!-- reducer获取数据的方式 -->

<property>

 <name>yarn.nodemanager.aux-services</name>

 <value>mapreduce_shuffle</value>

</property>

 

<!-- 指定YARNResourceManager的地址 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop101</value>

</property>

 

<!-- 指定mr运行在yarn -->

<property>

       <name>mapreduce.framework.name</name>

       <value>yarn</value>

</property>

 

'''

  •  启动集群

'''

sbin/yarn-daemon.sh start resourcemanager

sbin/yarn-daemon.sh start nodemanager

 

'''

  • 查询 8080端口

### 案例

'''

# 删除原有结果

bin/hdfs dfs -rm -R ..

# 执行

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount  ..input  ..output

# 查看结果

bin/hdfs dfs -cat /user/....

 

'''

 

## 启动历史服务器

  • 配置mapred-site.xml

<property>

<name>mapreduce.jobhistory.address</name>

<value>had001:10020</value>

</property>

<property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>had001:19888</value>

</property>

 

  • 启动服务器 sbin/mr-jobhistory-daemon.sh start historyserver

  • 查看端口 19888

 

 

#启用日志聚合

  • 配置yarn-site.xml

'''

<!-- 日志聚集功能使能 -->

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

<!-- 日志保留时间设置7天 -->

<property>

<name>yarn.log-aggregation.retain-seconds</name>

<value>604800</value>

</property>

'''

 

  • 关闭并重启nodemanager resoucremanager historymanager

'''

sbin/yarn-daemon.sh stop resourcemanager

sbin/yarn-daemon.sh stop nodemanager

sbin/mr-jobhistory-daemon.sh stop historyserver

...

 

'''

 

 

## 组建集群

  • 按照上述步骤修改物理地址 静态IP 和 主机名, 并 重启 双ping

  • 确保ssh联通

 

### 无密登陆

  • 使用ssh登陆另外一台主机,使用rsa加密key可以免去密码环节

  • ssh-******-t rsa 回车三次,生成本主机的id_rsa和id_rsa.pub

  • ssh-copy-id 到对端主机,将本地pub_key拷贝到对端机器,建立ssh授权,即可登陆对端机器

hadoop1

  • 文件~/.ssh/known_hosts 记录访问过的计算机的pub

  • authorized_keys 记录授权过的公钥

 

 

## 集群分发脚本

  • rsync -rvl $pdir/$fname [email protected]$host:$pdir  从本地文件路径/名称 到目的主机:路径 同步过程

  • 创建xsync 脚本

'''

 

#!/bin/bash

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

pcount=$#

if((pcount==0)); then

echo no args;

exit;

fi

 

#2 获取文件名称

p1=$1

fname=`basename $p1`

echo fname=$fname

 

#3 获取上级目录到绝对路径

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

echo pdir=$pdir

 

#4 获取当前用户名称

user=`whoami`

 

#5 循环

for((host=103; host<105; host++)); do

        #echo $pdir/$fname [email protected]$host:$pdir

        echo --------------- hadoop$host ----------------

        rsync -rvl $pdir/$fname [email protected]$host:$pdir

done

 

'''

 

 

## 配置集群

hadoop1

  • 编写一份配置文件 :

  1. core-site.xml nameNode地址 和存储文件

  2. hdfs-site.xml 备份数目 可不写

  3. yarn-site.xml 获取数据方式 和 RM地址

  4. slave 配置集群  数据节点

  5. mapred-site.xml 配置在yarn上运行 历史 日志位置

  • 在集群上分发文件 xsync xcall

  • 配置节点免ssh登陆

  • 启动前rm -rf 数据和日志 jps的停掉

  • sbin/start-dfs.sh

  • sbin/start-yarn.sh 在对应的机器上启动

  •  测试文件

 

##注意事项

  • 一定不能用root账户启用hadoop

  • 遇到权限问题sudo chown username:root 注意各个节点中/tmp中的权限

 

 

## 停机命令

  • stop-yarn.sh

  • start-yarn.sh