linux之hadoop

hadoop架构

MapReduce:分布式计算架构

HDFS:分布式文件系统

YARN:集群资源管理系统

HDFS结构:

hadoop单机模式

搭建步骤:

搭建四台服务器,分别为:server、node1、node2、node3

1、关闭防火墙和selinux

2、保证server到每一个node节点可以免密码登陆,配置无密码登陆

[[email protected] ~]# vim /etc/ssh/ssh_config

2、配置本地域名解析,每一台都需要配置

59  ssh [email protected] yum -y install rsync
   60  ssh [email protected] yum -y install rsync
   61  ssh [email protected] yum -y install rsync
   62  ssh [email protected] yum -y install rsync
   63  ssh [email protected] yum -y install rsync

把集群中的每一台设备的本地域名解析文件进行同步

[[email protected] ~]#  for i in {11..15} ; do rsync -a /etc/hosts [email protected]${i}:/etc/hosts -e ‘ssh‘ & done

3、安装java

查询java安装包

[[email protected] ~]# yum -y install java-1.8.0-openjdk-devel.x86_64

检测是否安装成功

 4、下载:hadoop-2.7.7.tar.gz

https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

下载后上传到 /usr/local/hadoop目录下并解压

[[email protected] hadoop]# tar -xf hadoop-2.7.7.tar.gz

5、修改环境变量

查找java路径

[[email protected] ~]# find / -name java

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre

[[email protected]]cd /usr/local/hadoop/hadoop-2.7.7/etc/hadoop

[[email protected] hadoop]# vim hadoop-env.sh

需要修改一下部分

退到主文件下,进行测试,有以下显示,表示修改成功

修改hadoop配置文件路径

6、测试执行

[[email protected] hadoop-2.7.7]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount  input/ output

jar:表示应用的时jar计算模块

share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar--------计算模块文件(程序)

wordcount:使用的计算方式,此方法为统计input文件中每个单词出现的数量,并将统计结果输出到output文件中

计算搜首字母不是h的nfs的数量

[[email protected] hadoop-2.7.7]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount grep input/ output ‘(?<=h)nfs‘

hadoop完全布式配置

按单机模式的配置好后,继续一下配置

----Xml文件配置方式

[[email protected] ~]# cd /usr/local/hadoop/hadoop-2.7.7/etc/hadoop/

配置vim core-site.xml文件的参考文档

https://hadoop.apache.org/docs/r2.8.5/hadoop-project-dist/hadoop-common/core-default.xml

[[email protected] hadoop]# vim core-site.xml---------在该文件下添加一下内容

<configuration>
     <property>
         <name>fs.defaultFS</name>------------------------------------------------------文件系统
         <value>hdfs://server:9000</value>-----------------------------------------------9000表示端口号,用的是集群文件系统,"file:///"表示用本地文件系统
     </property>
     <property>
         <name>hadoop.tmp.dir</name>
         <value>/var/hadoop</value>-------------------------------------------------------数据存放的路径,该路径下Hadoop文件需要进群中的每一台上都要创建
     </property>
     <property>
         <name>hadoop.proxyuser.nfsuser.groups</name>
         <value>*</value>
     </property>
     <property>
         <name>hadoop.proxyuser.nfsuser.hosts</name>
         <value>*</value>
     </property>
</configuration>

修改hdfs-site.xml文件,参考文档

https://hadoop.apache.org/docs/r2.8.5/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

[[email protected] ~]# vim /usr/local/hadoop/hadoop-2.7.7/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
         <name>dfs.namenode.http-address</name>
         <value>server:50070</value>----------------------------------------设置namenode地址(设置namenode的服务器是谁),端口号不能变
     </property>
    <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>server:50090</value>-----------------------------------------设置namenode.secondary地址,端口号不能变
     </property>
    <property>
         <name>dfs.replication</name>---------------------------------------设置文件备份数量
         <value>2</value>
     </property>
 <property>
         <name>nfs.exports.allowed.hosts</name>
         <value>* rw</value>          
     </property>
     <property>
         <name>nfs.namenode.accesstime.precision</name>
         <value>3600000</value>
     </property>
     <property>
         <name>nfs.dump.dir</name>
         <value>/var/hdfs-nfs</value>
     </property>
     <property>
         <name>nfs.rtmax</name>
         <value>4194304</value>
     </property>
     <property>
         <name>nfs.wtmax</name>
         <value>1048576</value>
     </property>
     <property>
         <name>nfs.port.monitoring.disabled</name>
         <value>true</value>
     </property>
</configuration>

如果在/usr/local/hadoop/hadoop-2.7.7/etc/hadoop/该目录下没有slaves这个文件,需要出创建这个文件--mkdir slaves

[[email protected] ~]# cd /usr/local/hadoop/hadoop-2.7.7/etc/hadoop/

[[email protected] hadoop]# vim slaves-----添加下面内容

node1
node2
node3

将配置好的hadoop文件整个文件夹分发发到每一个节点上

for i in node{1..3}; do rsync -a --delete /usr/local/hadoop ${i}:/usr/local/ -e ‘ssh‘ & done

启动相应服务:(只在master主服务器上执行)

[[email protected] ~]#cd /usr/local/hadoop/hadoop-2.7.7

[[email protected] hadoop-2.7.7]# ./bin/hdfs namenode -format-------------------------格式化

出现上面的显示,表示格式化成功

[[email protected] hadoop-2.7.7]# ./sbin/start-dfs.sh

在节点上可以看到

[[email protected] hadoop-2.7.7]# ./bin/hdfs dfsadmin -report-------可以看到三个节点的信息

至此hadoop集群配置成功

测试:

HDFS基本使用

[[email protected] hadoop-2.7.7]# ./bin/hadoop fs -ls /

[[email protected] hadoop-2.7.7]# ./bin/hadoop fs -mkdir /abc

[[email protected] hadoop-2.7.7]# ./bin/hadoop fs -put *.txt /abc/-------------------上传文件

[[email protected] hadoop-2.7.7]# ./bin/hadoop fs -get  /abc/--------------------------下载文件

配置mapred-site.xml文件,参考文档

https://hadoop.apache.org/docs/r2.8.5/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

[[email protected] ~]#  vim /usr/local/hadoop/hadoop-2.7.7/etc/hadoop/mapred-site.xml

<configuration>
     <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>-------------------------------------------------------------使用yarn管理进群系统
     </property>                                                 
     <property>                                                                  
         <name>mapreduce.jobtracker.http.address</name>          
         <value>server:50030</value>------------------------------------------------- 设置 jobtracker地址                          
     </property>                                                 
</configuration>

配置yarn-site.xml文件,参考手册

https://hadoop.apache.org/docs/r2.8.5/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

[[email protected] ~]# vim /usr/local/hadoop/hadoop-2.7.7/etc/hadoop/yarn-site.xml

<configuration>
     <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>server</value>----------------------------------------------配置yarn的主机
     </property>
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
     </property>                                                                           
</configuration>

配置好后测试:

进行数据分析

查看分析结果

NFS网关

1、新建一台虚机,命名为nfsgw,将hadoop文件拷贝得到/usr/local/hadoop/

查询这两个软件有没有安装,如果安装了,需要卸载掉

[[email protected] hadoop-2.7.7]# rpm -qa | grep nfs

[[email protected] hadoop-2.7.7]# rpm -qa | grep rpcbind

2、保证nfsgw网关服务器到每一个节点和主服务器都可以免密登陆

3、配置

3、添加用户

[[email protected] hadoop]# useradd  -g 10 nfsuser

4、配置文件

[[email protected] hadoop]# vim core-site.xml

<configuration>
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://server:9000</value>
     </property>
     <property>
         <name>hadoop.tmp.dir</name>
         <value>/var/hadoop</value>
     </property>
     <property>
         <name>hadoop.proxyuser.nfsuser.groups</name>----------------用户名:nfsuser,新建的用户是什么就用什么
         <value>*</value>---------------------------允许那些用户访问,*表示允许所用用户访问
     </property>
     <property>
         <name>hadoop.proxyuser.nfsuser.hosts</name>----------主机用户名:nfsuser,新建的用户是什么就用什么
         <value>*</value>---------------允许那些主机挂载,*表示允许所有主机挂载
     </property>
</configuration>

[[email protected] hadoop]# vim hdfs-site.xml

<configuration>
    <property>
         <name>dfs.namenode.http-address</name>
         <value>server:50070</value>
     </property>
    <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>server:50090</value>
     </property>
    <property>
         <name>dfs.replication</name>
         <value>2</value>
     </property>
     <property>
         <name>nfs.exports.allowed.hosts</name>-----------设置那些主机的读写权限
         <value>* rw</value> --------------“*” “rw”   表是给所有主机读写权限     
     </property>
     <property>
         <name>nfs.namenode.accesstime.precision</name>-------设置访问更新时间
         <value>3600000</value>-----1小时
     </property>
     <property>
         <name>nfs.dump.dir</name>----------------设置转储目录
         <value>/var/hdfs-nfs</value>
     </property>
     <property>
         <name>nfs.rtmax</name>-----------------设置读取文件的大小
         <value>4194304</value>
     </property>
     <property>
         <name>nfs.wtmax</name>-----------------设置写文件的大小
         <value>1048576</value>
     </property>
     <property>
         <name>nfs.port.monitoring.disabled</name>-------设置允许没有权限的客户端挂在
         <value>true</value>------true是允许。false表示不允许
     </property>
</configuration>

[[email protected] hadoop]mkdir /var/hdfs-nfs

[[email protected] hadoop]# chown nfsuser.10 /var/hdfs-nfs/

[[email protected] hadoop]# chmod 755 /var/hdfs-nfs/

5、在主服务器上配置

[[email protected] ]#cd /usr/local/hadoop/hadoop-2.7.7/etc/hadoop

[[email protected] hadoop]# mkdir nfs.map

[[email protected] hadoop]# vim nfs.map

uid 1000 0 # Map the remote UID 1000 to the local UID 0

[[email protected] hadoop-2.7.7]# id nfsuser
uid=1000(nfsuser) gid=10(wheel) 组=10(wheel)

[[email protected] hadoop-2.7.7]# ./sbin/stop-all.sh

[[email protected] hadoop-2.7.7]# ./sbin/start-dfs.sh

[[email protected] hadoop-2.7.7]# ./bin/hdfs dfsadmin -report-------------检测节点是否链接成功

[[email protected] ~]# adduser -g 10 -u 1000 nfsuser

在nfs服务器上

[[email protected] hadoop-2.7.7]# ./sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap-------启动服务

[[email protected] hadoop-2.7.7]# netstat -ltunp------------查看111端口是否被监听

启动nfs服务必须切换到nfsuser用户下启动,也就是在core-site.xml配置文件中定义的用户来启动

[[email protected] hadoop-2.7.7]# su -l nfsuser

[[email protected]~]$ cd /usr/local/hadoop/hadoop-2.7.7

[[email protected] hadoop-2.7.7]$ ./sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3

5、到测试机进行挂载

[[email protected] ~]# mount /dev/cdrom /mnt/iso/

[[email protected] ~]# mount -v -t nfs -o vers=3,proto=tcp,nolock,noatime,noacl,sync 192.168.1.14:/ /mnt/test/-------地址为nfs网关服务器地址

6、停止服务

[[email protected]~]$ cd /usr/local/hadoop/hadoop-2.7.7

[[email protected] hadoop-2.7.7]$ ./sbin/hadoop-daemon.sh --script ./bin/hdfs stop nfs3

[[email protected] hadoop-2.7.7]# ./sbin/hadoop-daemon.sh --script ./bin/hdfs stop portmap

增加节点node

1、在主节点server上变更配置

[[email protected] ~]# vim /usr/local/hadoop/hadoop-2.7.7/etc/hadoop/slaves------添加新增节点名字node5

[[email protected] ~]# vim /etc/hosts-----------------添加新增节点的主机名

2、到需要新增节点的主机上配置

从主节点上拷贝hadoop(含已配置的文件)文件

[[email protected]]# scp -r server:/usr/local/hadoop/ /usr/local/hadoop/

启动服务

[[email protected] hadoop-2.7.7]# ./sbin/hadoop-daemon.sh start datanode

3、到主服务器上配置

[[email protected] hadoop-2.7.7]# ./bin/hdfs dfsadmin -report------------------查看新增节点

[[email protected] hadoop-2.7.7]# ./bin/hdfs dfsadmin -setBalancerBandwidth 67108864----设置同步带宽为64M

[[email protected] hadoop-2.7.7]# ./sbin/start-balancer.sh -threshold 5-----启动5个线程同步数据

删除节点node

在主服务器配置

[[email protected] hadoop]# vim hdfs-site.xml-------在该文件中增加一个配置

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

保存

[[email protected] hadoop]# touch exclude----该文件名exclude需要和<value>/usr/local/hadoop/etc/hadoop/exclude</value>exclude里面的名字一致

[[email protected] hadoop]# vim exclude------------添加要删除的节点主机名

node5

[[email protected] hadoop-2.7.7]# ./bin/hdfs dfsadmin -refreshNodes---------更新节点数据

[[email protected] hadoop-2.7.7]# ./bin/hdfs dfsadmin -report

显示红框内容,表示数据已迁移结束,完整的从集群中删除

[[email protected] hadoop-2.7.7]# vim etc/hadoop/slaves-------在该文件中删除节点node5

删除exclude文件

[[email protected] hadoop]# vim hdfs-site.xml-------删除配置文件中的该内容

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

重启namenode服务

[[email protected] hadoop-2.7.7]# ./sbin/hadoop-daemon.sh stop namenode

[[email protected] hadoop-2.7.7]# ./sbin/hadoop-daemon.sh start  namenode

到删除的节点上停止服务

[[email protected] hadoop-2.7.7]# ./sbin/hadoop-daemon.sh stop datanode

修复节点

原文地址:https://www.cnblogs.com/scorpios/p/11675044.html

时间: 2024-11-13 10:34:57

linux之hadoop的相关文章

Linux下Hadoop 2.2.0 集群配置攻略

Hadoop 2.2.0 集群配置攻略 用户输入标识: chmod +x jdk-7u45-linux-x64.rpm  为黑色带底纹 系统输出标识: java version "1.7.0_51" 为绿色小字 2014年3月20-日 by lilihao Q 404536204 1. 安装sun jdk (1). 到Oracle的官方网站下载jdk,目前最新版本是7u51 安装包: http://www.oracle.com/technetwork/java/javase/downl

linux搭建hadoop环境

linux搭建hadoop环境 1.安装JDK (1)下载安装JDK:确保计算机联网之后命令行输入下面命令安装JDK sudo apt-get install sun-java6-jdk (2)配置计算机Java环境:打开/etc/profile,在文件最后输入下面内容 export JAVA_HOME = (Java安装目录) export CLASSPATH = ".:$JAVA_HOME/lib:$CLASSPATH" export PATH = "$JAVA_HOME

Win7下MyEclipse远程连接到Mac/Linux中Hadoop集群

Win7下MyEclipse远程连接到Mac/Linux中Hadoop集群(也可访问该网页查看:http://tn.51cto.com/article/562 ) 所需软件:(1)下载Hadoop2.5.1到Win7系统下,并解压缩Hadoop2.5.1下载地址:Indexof/dist/hadoop/core/hadoop-2.5.1http://archive.apache.org/dist/hadoop/core/hadoop-2.5.1/ 说明:Win7中下载的是Hadoop2.5.1,

Linux系统安装+hadoop环境搭配

Linux系统安装 在安装Linux系统之前,先来了解windows系统结构,windows系统一般是安装在C盘系统盘,同样Linux也有类似的系统盘(/根分区),Linux通常分区为(根分区/.swap分区),Linux系统以文件的存储方式,所有的文件都是存储在某个目录下的,类似于windows的文件夹. 对于文件系统的属性来说,windows文件系统类型一般是ntfs.fat32等,而Linux文件系统类型则为ext2.ext3.ext4等(文件系统:是操作系统用于明确磁盘或分区上的文件的方

Linux与hadoop相关命令

一:Linux基本命令: 1.查看ip地址: $ ifconfig 2.清空屏幕: $ clear 3.切换root用户: $ su 4.查看主机静态ip地址: $ more /etc/sysconfig/network-scripts/ifcfg-eth0 5.主机名称: 查看主机名称:  $ hostname      修改主机名: $ hostname 主机名 6.目录: 查看当前目录:$ pwd           进入当前目录下的子目录:$ cd (如$ cd data)       

Linux下Hadoop集群环境的搭建

本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安装与配置 现在直接到Oracle官网(http://www.oracle.com/)寻找JDK7的安装包不太容易,因为现在官方推荐JDK8.找了半天才找到JDK下载列表页的地址(http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html).因

(十二)linux下hadoop安装配置

1.准备Linux环境 1.1关闭防火墙 #查看防火墙状态 service iptables status #关闭防火墙 service iptables stop #查看防火墙开机启动状态 chkconfig iptables --list #关闭防火墙开机启动 chkconfig iptables off 1.2修改sudo su root vim /etc/sudoers 给hadoop用户添加执行的权限 hadoop  ALL=(ALL) ALL 关闭linux服务器的图形界面:vi /

Hadoop之—— Linux搭建hadoop环境(简化篇)

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/45771619 1.安装JDK(此处以安装JDK1.6为例,具体安装JDK的版本不限) (1)下载安装JDK:确保计算机联网之后命令行输入下面命令安装JDK      sudo apt-get install sun-java6-jdk (2)配置计算机Java环境:打开/etc/profile,在文件最后输入下面内容      export JAVA_HOME = (Java安装

Linux编译Hadoop成64位常见错误

[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.2.0:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: protoc version is 'libprotoc 2.4.1', expected version is '2.5.0' -> [Help 1]

hadoop搭建杂记:Linux下hadoop的安装配置

VirtualBox搭建伪分布式模式:hadoop的下载与配置 VirtualBox搭建伪分布式模式:hadoop的下载与配置 由于个人机子略渣,无法部署XWindow环境,直接用的Shell来操作,想要用鼠标点击操作的出门转左不送- 1.hadoop的下载与解压 wget http://mirror.bit.edu.cn/apache/hadoop/common/stable2/hadoop-2.7.1.tar.gzmkdir /usr/hadooptar -xzvf hadoop-2.7.1