Hadoop ~1:安装(包括集群)与简单的配置


本文用的是hadoop-2.6.0-cdh5.14.2.tar.gz

一:首先在虚拟机中进行解压

tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz -C ../bigdata

二:配置Hadoop ./etc/hadoop目录下的文件

配置hadoop-env.sh

# The java implementation to use.
export JAVA_HOME=/opt/greeinstall/jdk18111

配置core-site.xml (配置完此步,需要在hadoop260目录下建hadoop2目录)

<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://192.168.56.137:9000</value>
</property>
<property>
   <name>hadoop.tmp.dir</name>
   <value>/opt/greeinstall/hadoop260/hadoop2</value>
</property>
<property>
   <name>hadoop.proxyuser.root.hosts</name>
   <value>*</value>
 </property>
<property>
   <name>hadoop.proxyuser.root.groups</name>
   <value>*</value>
 </property>
</configuration>

配置hdfs-site.xml

<configuration>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>lijia1:50090</value>
</property>
</configuration>

配置mapred-site.xml

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>HostName:10020</value>
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>HostName:19888</value>
</property>
</configuration>

配置yarn-site.xml

<configuration>
<!-- reducer获取数据方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>HostName</value>
</property>
<!-- 日志聚集功能使用 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>
</configuration>

配置vi ./slaves

localhost

3.2Hadoop环境变量配置

vi /etc/profile
export HADOOP_HOME=/opt/greeinstall/hadoop260
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

刷新环境变量

source /etc/profile

启动之前:
需要更改主机名 hostname
hostnamectl set-hostname 主机名
需要 vi /etc/hosts 然后把自己本机的id地址和主机名写上
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.101.200 test200

还需要配置一下ssh免密服务
可以 hadoop fs -put ./*** / 上传,但不能打开WEB 50070,需要关闭防火墙

格式化HDFS (第一次启动要格式化,以后定期删除日志就好)

hadoop namenode -format

启动hadoop

start-all.sh
启动历史服务
[root@qx1 hadoop]# mr-jobhistory-daemon.sh start historyserver

在这里插入图片描述

配置native(可以进行配置,也可以不配置)

如果你也是hadoop2.6的可以下载下面这个:
  http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.6.0.tar
若是其他的hadoop版本,下载下面这个:
http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.*.0.tar
在这里插入图片描述
在这里插入图片描述
[hadoop@djt002 native]$ tar -xvf hadoop-native-64-2.6.0.tar -C H A D O O P H O M E / l i b / n a t i v e [ h a d o o p @ d j t 002 n a t i v e ] HADOOP_HOME/lib/native [hadoop@djt002 native] HADOOPHOME/lib/native[hadoop@djt002native] tar -xvf hadoop-native-64-2.6.0.tar -C $HADOOP_HOME/lib
以上,这两个命令都要执行。
自检hadoop checknative –a 指令检查

三:访问Hadoop

http://192.168.56.137:50070 HDFS页面

在这里插入图片描述
http://192.168.56.137:8088 YARN的管理界面

在这里插入图片描述
http://192.168.56.126:19888/

在这里插入图片描述

四:配置Hadoop 集群(需要先配置虚拟机之间的免密服务)

准备

Hadoop的集群部署和单节点部署类似,配置文件不同,另外需要修改网络方面的配置
  首先,准备3台虚拟机,系统为CentOS 7,其中一台为namenode 剩余两台为 datanode;
  修改主机名主节点为:hadoopha,数据节点主机名分别为hadoop1、hadoop2

本例中这3台虚拟机处于同一个局域网,网络连接设置为桥接,ip地址分别为是hadoopha为:192.168.1.42,hadoop1为:192.168.1.78、hadoop2为:192.168.1.44,实际中可以设置静态ip为连续的
  然后修改hosts网络指向,用vim /etc/hosts打开文件,后面添加3行记录:

   192.168.1.42 hadoopha
  192.168.1.78 hadoop1
  192.168.1.44 hadoop2

然后保存退出

在这里插入图片描述
 上面那些localhost指向不用改,新添加3行即可,这三台主机都要修改hosts文件保持一致

以上是主机之间网络通信的基础,接下来在hadoopha上单独配置hadoop环境,hadoop1和hadoop2不用安装hadoop,只有jdk即可

同样把hadoop解压到指定目录,配置一下HADOOP_HOME到环境变量中,然后进入hadoop安装目录,修改配置

执行vim etc/hadoop/hadoop-env.sh

把JAVA_HOME前面的注释去掉,值改成jdk的安装目录,并保存

在这里插入图片描述

执行vi etc/hadoop/core-site.xml

在之间添加如下配置:

<property> 
<name>fs.defaultFS</name> 
<value>hdfs://hadoopha</value>
</property> 
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop</value>
</property> 
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/name</value>
</property>
执行vim etc/hadoop/hdfs-site.xml,同样位置添加如下配置:
 <property> 
      	   <name>dfs.replication</name> 
    	   <value>2</value>  
</property>   
<property>     
	     <name>dfs.namenode.name.dir</name>          	<value>file:///usr/hadoop/hdfs/name</value>   
</property>   
<property>    
 	   <name>dfs.datanode.data.dir</name>         				
<value>file:///usr/hadoop/hdfs/data</value>  
</property>   
	  <property>    
 	   <name>dfs.nameservices</name>       
 	 <value>hadoopha</value>    
 </property>

第一个配置项是datanode的节点数,这里是2个,就算这里写3也不起什么作用,因为不能超过实际的最大节点数,其中的存放目录可以自己定义

执行vim etc/hadoop/mapred-site.xml,同样位置添加如下配置:
<property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
</property>
执行vim etc/hadoop/yarn-site.xml,添加如下配置:
<property> 
        <name>yarn.resourcemanager.hostname</name> 
        <value>hadoopha</value> 
</property> 
<property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
</property>
<property>
         <name>yarn.resourcemanager.address</name>
         <value>hadoopha:8032</value>
</property>
<property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>hadoopha:8030</value>
</property>
<property>         	<name>yarn.resourcemanager.resource-tracker.address</name>         		
<value>hadoopha:8031</value>
</property>
<property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>hadoopha:8033</value>
</property>
<property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>hadoopha:8088</value>
</property>
编辑slaves文件,执行etc/hadoop/slaves

之前默认只有一行内容localhost,把之前的删除添加下面配置:
hadoop1
hadoop2

到这里文件就配置完了,

然后退到上一层目录,把配置好的hadoop目录和profile发送到hadoop1和hadoop2中(需要在datanote上刷新profile)
$ scp -r /opt/bigdata/hadoop260/ root@ware2:/opt/bigdata/
$ scp -r /etc/profile root@ware2:/etc/      (需要source /etc/profile)

这样三个主机的hadoop文件就实现了同步,然后格式化namenode节点
bin/hadoop namenode -format
  只对主节点hadoopha进行格式化即可,格式化之后启动hadoop
sbin/start-all.sh
  等待hadoop集群运行起来,然后用jps命令分别查看3个主机的hadoop进程

hadoopha运行NameNode:
在这里插入图片描述
 hadoop1和hadoop2运行DataNode:

在这里插入图片描述
这时候hadoop集群就启动成功了,然后打开浏览器通过web访问主节点可以管理集群
  HDFS管理:http://192.168.1.42:50070/
在这里插入图片描述

可以看到详细的参数
  Map/Reduce管理:http://192.168.1.42:8088/
在这里插入图片描述
 可以看到详细的作业情况,和具体哪台机器的作业的情况
  通过命令行:bin/hdfs dfsadmin -report可以查看集群的运行状态
  需要注意:
  1、在hadoop2.x系列版本中,hdfs默认文件直接存放在根目录下,不在和1.x一样存放在/user/root/下了
  2、执行hdfs操作文件系统所有的命令时,比如bin/hdfs dfs -ls /会报错:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

在这里插入图片描述
 虽然不影响使用,原因是从apache官网下载的hadoop-2.6.0.tar.gz是在32位机器上编译的,而集群机器是64位的,所以加载.so文件时出错,但是不影响使用,解决办法是下载64位编译包,解压到hadoop安装目录下lib/native下更新文件即可
在这里插入图片描述

因为是./所以直接解压到本目录下,不用进行其他任何操作就可以了,下载链接:http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.6.0.tar

接下来使用WordCount例子来测试集群的运行:

首先进入hadoop安装目录,执行下面命令测试:
$ mkdir input
$ echo “Hello world bye jj” >> file1
$ echo “Hello Hadoop bye hadoop” >> file2
$ bin/hdfs dfs -mkdir /input
$ bin/hdfs dfs -put input/* /input

这样文件就上传到了HDFS文件系统中,执行下面命令开始运行作业
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /input /output

在这里插入图片描述

然后等待作业执行完毕,完毕之后可以使用命令bin/hdfs dfs -ls /output/查看是否生成结果文件,使用cat查看文件内容即可
bin/hdfs dfs -cat /output/part-r-00000

在这里插入图片描述

可以看到,结果正确的输出了,到这里基本的hadoop集群就部署完成了

5.测试

5.1HDFS
[root@qx1 ~]# hdfs dfs -mkdir /input2
[root@qx1 ~]# hadoop fs -mkdir /input3

[root@qx1 ~]# hdfs dfs -ls /
[root@qx1 ~]# hadoop fs -ls /

[root@qx1 ~]# hadoop fs -put ./wordcount.csv /input2
[root@qx1 mapreduce2]# hadoop fs -put /root/wordcount.txt /input2
[root@qx1 mapreduce2]# hadoop fs -rm /input2/*.csv

[root@qx1 mapreduce2]# hadoop jar ./hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /input2 /outputcsv

[root@qx1 mapreduce2]# hadoop fs -cat /outputcsv/part-r-00000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值