Hadoop 单机与完全分布式配置

Hadoop 单机模式安装配置

• Hadoop 的单机模式安装非常简单,只需要配置好环境变量即可运行,这个模式一般用来学习和测试hadoop 的功能。

1、获取软件

http://hadoop.apache.org/

tar  -xf   hadoop-2.7.6.tar.gz   -C  ./

 

2、安装配置 java 环境,安装 jps 工具

yum -y install java-1.8.0-openjdk-devel java-1.8.0-openjdk

 

3、设置环境变量,启动运行

vim  etc/hadoop/hadoop-env.sh

export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre"
export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"

 

查看版本

cd  /usr/local/hadoop
./bin/hadoop version

 

测试  《 分析/etc/passwd 里面 的数据 把结果保存到 /passwd 里面 》

cd  /usr/local/hadoop/
./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /etc/passwd /passwd

 

搭建完全分布式

HDFS 分布式文件系统
完全分布式

 

 

• 系统规划

=======================================================
主机                                                 角色                      软件
10.211.55.10                                 NameNode                HDFS
Nn01                                       SecondaryNameNode
=======================================================
10.211.55.11                                DataNode                   HDFS
Node1
=======================================================
10.211.55.12                                DataNode                   HDFS
Node2
=======================================================
10.211.55.13                                DataNode                   HDFS
node3
=======================================================

 

 

Hadoop 配置文件及格式
• 文件格式
– Hadoop-env.sh
JAVA_HOME
HADOOP_CONF_DIR
– Xml 文件配置格式
<property>
       <name>关键字</name>
       <value>变量值</value>
       <description> 描述 </description>
</property>

 

– 禁用 selinux
SELINUX=disabled

– 禁用 firewalld
systemctl stop firewalld
systemctl mask firewalld


– 安装 java-1.8.0-openjdk-devel
yum install -y java-1.8.0-openjdk-devel

 

• 基础环境准备
– 在3台机器上配置 /etc/hosts
– 注: 所有主机都能 ping 同 namenode 的主机名
– namenode 能 ping 同所有节点
– java -version 验证 java 安装
– jps 验证角色

 

• 配置 SSH 信任关系(namenode)
– 注意:不能出现要求输入 yes 的情况,每台机器都要能登录成功,包括本机!!!
– ssh_config
StrictHostKeyChecking no
– ssh-keygen -b 2048 -t rsa -N  ''  -f key
– ssh-copy-id  -i  ./key.pub  root@ip.xx.xx.xx

 

• HDFS 完全分布式系统配置
– 环境配置文件 hadoop-env.sh
– 核心配置文件 core-site.xml
– HDFS配置文件 hdfs-site.xml
– 节点配置文件 slaves

 

完全分布式
• 环境配置文件 hadoop-env.sh
– openjdk 的安装目录
– JAVA_HOME
– hadoop 配置文件的存放目录
– HADOOP_CONF_DIR

 

完全分布式
• 核心配置文件 core-site.xml
– fs.defaultFS 文件系统配置参数
– hadoop.tmp.dir 数据目录配置参数

vim   /usr/local/hadoop/etc/core-site.xml
<configuration>
    <property>
     <name>fs.defaultFS</name>
     <value>hdfs://nn01:9000</value>
   </property>
   <property>
     <name>hadoop.tmp.dir</name>
     <value>/var/hadoop</value>
   </property>
</configuration>

  

完全分布式
• HDFS 配置文件 hdfs-site.xml
– namenode 地址声明
– dfs.namenode.http-address
– secondarynamenode 地址声明
– dfs.namenode.secondary.http-address
– 文件冗余仹数
– dfs.replication

 

• HDFS 配置文件 hdfs-site.xml

vim   /usr/local/hadoop/etc/hdfs-site.xml
<configuration>
   <property>
      <name>dfs.namenode.http-address</name>
      <value>nn01:50070</value>
   </property>
   <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>nn01:50090</value> 
   </property>
   <property>
      <name>dfs.replication</name>
      <value>2</value>    
   </property>
</configuration>

  

• 节点配置文件 slaves
– 只写 datanode 节点的主机名称
node1
node2
node3
– 同步配置
– hadoop 所有节点的配置参数完全一样,我们在一台配置好以后,要把配置文件分发到其它所有主机上去

for i in {11..13} ;do scp -r /usr/local/hadoop/etc/hadoop/* 10.211.55.$i:/usr/local/hadoop/etc/hadoop/ ; done

  

NN01: 格式化 namenode

cd    /usr/local/hadoop
./bin/hdfs namenode -format

  

NN01: 启动集群

 ./sbin/start-dfs.sh

停止集群可以使用

 ./sbin/stop-dfs.sh

ALL: 验证角色 jps

 

NN01: 验证集群是否组建成功

./bin/hdfs dfsadmin -report

  

服务启动日志路径

/usr/local/hadoop/logs

 

配置秘书管理   SecondaryNameNode

   秘书配置文件不存在,需要把源文件拷贝一个新的配置文件

 

 cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

 

  

mapred-site.xml 配置

vim  /usr/local/hadoop/etc/mapred-site.xml

<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
</property> </configuration>

yarn-site.xml 配置

vim  /usr/local/hadoop/etc/yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>nn01</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

ALL: 同步配置到主机

for i in {11..13} ;do scp /usr/local/hadoop/etc/hadoop/* 192.168.1.$i:/usr/local/hadoop/etc/hadoop/ ;done

 

NN1: 启动服务 

 

cd  /usr/local/hadoop/

 

./sbin/start-yarn.sh

  

ALL: 验证角色 :   jps

NN1: 验证节点状态

 

cd  /usr/local/hadoop/

 

 ./bin/yarn node -list

  

测试集群结果

namenode web             地址 http://10.211.55.10:50070 
sedondary namenode web   地址 http://10.211.55.10:50090
yarn resourcemanager     管理地址 http://10.211.55.10:8088
datanode web             地址 http://10.211.55.11:50075
nodemanager web          地址 http://10.211.55.11:8042

  

增加修复节点
按照单机方法安装一台机器,部署运行的 java 环境
拷贝 namenode 的文件到本机
启动 datanode

./sbin/hadoop-daemons.sh start datanode

 

设置同步带宽

./bin/hdfs dfsadmin -setBalancerBandwidth 60000000
./sbin/start-balancer.sh

  


删除节点
在主节点操作添加
]# vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml

<property>
     <name>dfs.hosts.exclude</name>
     <value>/usr/local/hadoop/etc/hadoop/exclude</value>
</property>

增加 exclude 配置文件,写入要删除的节点 主机名

touch    /usr/local/hadoop/etc/hadoop/exclude

  

 

开始导出数据

 

cd  /usr/local/hadoop/

 

./bin/hdfs dfsadmin -refreshNodes

 

  

查看状态
Normal 正常状态
Decommissioned in Program 数据正在迁移
Decommissioned 数据迁移完成


yarn 增加 nodemanager

./sbin/yarn-daemon.sh start nodemanager

 

yarn 停止 nodemanager

./sbin/yarn-daemon.sh stop nodemanager

  

yarn 查看节点状态

./bin/yarn node -list

  

 

HDFS 基本使用
HDFS 使用
• HDFS 基本命令

cd  /usr/local/hadoop/

  

查看
– ./bin/hadoop fs –ls /
– 对应 shell 命令 ls /

 

创建目录
– ./bin/hadoop fs –mkdir /abc
– 对应 shell 命令 mkdir /abc

 

删除目录
– ./bin/hadoop fs –rmdir /abc
– 对应 shell 命令 rmdir /abc

 

创建文件
– ./bin/hadoop fs –touchz /urfile
– 对应 shell 命令 touch /urfile

 

查看文件里的内容
– ./bin/hadoop fs –cat /urfile
– 对应 shell 命令 cat /urfile

 

删除文件
– ./bin/hadoop fs –rm /urfile
– 对应 shell 命令 rm /urfile

 

 上传文件

 ./bin/hadoop fs –put localfile /remotefile

 

下载文件

 ./bin/hadoop fs –get /remotefile

 

• 创建文件夹

./bin/hadoop fs -mkdir /input

 

• 上传要分析的文件

./bin/hadoop fs -put *.txt /input

  

• 提交分析作业

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

 

 

• 查看结果

./bin/hadoop fs –cat output/*

  

 

NFS 网关

1 、新添加一台服务器     写入所有集群节点的  /etc/hosts 文件中

10.211.55.14      nfsgw

 

2、(nfsgw, nn01)在这两台服务器添加用户

groupadd -g 500 nsd1804
useradd -u 500 -g   500 nsd1804

  

3、NN01:  停止集群

 

cd  /usr/local/hadoop/

 

./sbin/stop-all.sh

 

4、NN01:  增加配置 core-site.xml

vim  /usr/local/hadoop/etc/core-site.xml
<property>
     <name>hadoop.proxyuser.nsd1804.groups</name>
     <value>*</value>
</property>
<property>
     <name>hadoop.proxyuser.nsd1804.hosts</name>
     <value>*</value>
</property>

 

5、NN01:  同步配置 core-site.xml   

node1 node2 node3


6、NN01:  启动集群

./sbin/start-dfs.sh

  

7、NN01:  查看状态

./bin/hdfs dfsadmin -report

  

在新服务器配置 nfsge 上

安装 java-1.8.0-openjdk-devel

同步 nn01 的 /usr/local/hadoop 到 nfsge 的相同目录下
 hdfs-site.xml 增加配置

vim  /usr/local/hadoop/etc/hdfs-site.xml
<property>
       <name>nfs.exports.allowed.hosts</name>
       <value>* rw</value>
</property>
<property>
       <name>nfs.dump.dir</name>
       <value>/var/nfstmp</value>
</property>

  

nfsge :服务器上

创建转储目录,并给用户 nsd1804 赋权

mkdir /var/nfstmp
chown nsd1804:nsd1804 /var/nfstmp

  

nfsge服务器: 给 /usr/local/hadoop/logs 赋权

setfacl -m u:nsd1804:rwx  /usr/local/hadoop/logs

 

 

创建数据根目录 /var/hadoop

 

mkdir /var/hadoop

 

  

必须用 root 启动,必须先启动 !!!

 

cd  /usr/local/hadoop/

 

./sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap

  

必须用代理用户启动,必须后启动 !!!

 在nfsge服务器上 登录代理服务器   nsd1804

 

su  -  nsd1804

 

 

cd  /usr/local/hadoop/
./sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3

  

Client: 安装 nfs-utils
mount 共享目录

mount -t nfs -o vers=3,proto=tcp,nolock,noatime,sync,noacl 10.211.55.14:/  /mnt/

  

查看注册服务

rpcinfo -p 192.168.1.15

  


查看共享目录

showmount -e 192.168.1.15

  

 

 那里不对 老铁请指出 大家一起学习

end  !!!!!!!!!

posted @ 2018-09-05 21:50  zzclog  阅读(177)  评论(0编辑  收藏  举报