大数据(hadoop-Hadoop2.7.3伪分布搭建)

原创
2019/04/16 20:23
阅读数 186

安装准备:

vmware10
Centos6.5 64位版本
JDK1.8linux32位版
Hadoop2.7.3版本

 

安装过程讲解:

 字符界面安装centos6.5,网络设置为主机模式或者桥连接
 配置静态ip 并测试能不能从主机ping的通虚拟机
 使用secureCRT进行远程ssh登陆
 配置etc/hosts 添加ip对应的主机名,比如192.168.17.2 master
 安装ssh 客户端,通过修改本地yum源来进行,成功后重启服务
 关闭防火墙 chkconfig
 创建普通用户 hadoop(名字可自定义)
 设置免密钥ssh登录(伪分布式其实可以省略
 上传jdk和hadoop2.7.3
 使用普通用户登陆,在home目录下创建bd文件夹(非必需)
 分别解压jdk和hadoop2.7.3,并测试
 配置普通用户的环境变量,.bashrc(也可以直接在etc/profile进行配置)
 测试echo $JAVA_HOME
 修改配置5个配置文件
 hadoop-env.sh
 core-site.xml
 hdfs-site.xml
 mapred-sit.xml(将mapred-sit.xml.template重命令)
 yarn-site.xml
 使用jdk下面的bin目录中的jps来查看下进程
 或者查看日志,在hadoop解压目录中logs里面
 在主机windows里面的system32/drivers/etc/hosts里面添加linux主机名对应的linux里面的ip
 通过浏览器进行访问8088端口和50070端口进行测试

具体操作:

1.添加hadoop用户

2.切换到hadoop用户

配置无密码ssh认证连接

...(自查)

获取hadoop安装包

从hadoop的官网获取你需要的版本,本教程采用2.8.X版本的安装包。

官网地址:http://hadoop.apache.org/releases.html

jdk

hadoop自身是用java编写的,所以需要java环境来运行它。需要下载一个和你选择的hadoop版本匹配的JDK安装包。Hadoop版本与java版本的对应关系如下:
    hadoop3.0                    java8
    hadoop2.7及后续版本        java7
    hadoop2.6及以前的版本    java6
为方便安装,我们到java的oracle官网下载一个64位的jdk8的rpm包。

 

安装jdk

...(省略)

 

安装hadoop

上传安装包

Hadoop用户操作:

查看上传的文件

配置hadoop环境变量

为hadoop配置JAVA_HOME

配置hadoop集群

集群配置文件下载地址:

链接:https://pan.baidu.com/s/1R5081Nd82B5u8DLMysnY7A 密码 :ldsq

 

Hadoop基础配置

core-site.xml  核心配置文件

它会被所有的hadoop进程使用。需在该配置文件中配置hadoop集群默认文件系统的访问uri(必需配置),可以指定IO缓冲区的大小等。

这个小集群的的配置如下:

<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://192.168.0.11:9000</value>
	</property>
</configuration>

 

HDFS集群配置

hdfs-site.xml  hdfs集群参数配置文件

在该文件配置hdfs集群的参数,常用的配置参数如下,如果都是使用的默认值,则不需进行配置。

  • NameNode相关的参数:

  • DataNode相关的参数:

小集群的配置如下:  

hdfs-site.xml

<configuration>
	<property>
		<description>文件的备份数量</description>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
	<property>
		<description>NameNode文件系统名称空间存放目录</description>
		<name>dfs.namenode.name.dir</name>
		<value>/home/hadoop/namespace</value>
	</property>
	<property>
		<description>DataNode上文件数据块的存放目录</description>
		<name>dfs.datanode.data.dir</name>
		<value>/home/hadoop/data</value>
	</property>
</configuration>

从节点(DataNode)列表配置:
在NameNode的etc/hadoop/slaves 文件列出所有的DataNode的ip,一个一行。

10.0.2.20
10.0.2.21
10.0.2.22

 

YARN集群配置

etc/hadoop/mapred-site.xml 配置

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

etc/hadoop/yarn-site.xml 配置

<configuration>

<!-- Site specific YARN configuration properties -->

	<property>
		<description>resourceManager节点的主机地址</description>
		<name>yarn.resourcemanager.hostname</name>
		<value>192.168.0.13</value>
	</property>
	
	<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

</configuration>

 

复制机器

1、复制

2、修改复制机器:
修改主机名:
    hostnamectl set-hostname xxx

修改ip地址:
    vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    修改 IPADDR=指定ip

重启网络服务
    systemctl restart network

 

启动集群

启动hdfs集群

1、格式化文件系统
$ hdfs namenode -format

2、在NameNode上启动hdfs集群
$ start-dfs.sh

hadoop进程的日志将输出在目录 $HADOOP_HOME/logs下  

3、通过浏览器浏览NameNode的web界面,默认的浏览地址为:
http://namenode-ip:50070
    如 http://192.168.0.111:50070 

可用jps命令查看各个节点上运行的java进程

4、在NameNode上关闭hdfs集群
$ stop-dfs.sh

启动yarn集群

1、启动:在ResourceManager上启动yarn集群
$ start-yarn.sh

2、通过浏览器浏览ResourceManager的web界面,默认的浏览地址为:
http:// ResourceManager-ip:8088
    如 http://192.168.0.111:8088

3、关闭:在ResourceManager上关闭yarn集群
$ stop-yarn.sh

启动jobHistoryServer
mr-jobhistory-daemon.sh start historyserver

 

测试

1、在HDFS上创建执行MapReduce作业所需的目录
$ hdfs dfs -mkdir /user
$ hdfs dfs -mkdir /user/<username>

2、将输入文件拷贝到分布式文件系统上:
$ hdfs dfs -mkdir input
$ hdfs dfs -put etc/hadoop/*.xml input

3、运行MapReduce示例作业:
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep input output 'dfs[a-z.]+'

4、查看输出结果文件:
方式一:将分布式文件系统的输出文件拷贝到本地文件系统上,再查看:
$ hdfs dfs -get output output
$ cat output/*

方式二:直接在分布式文件系统上查看输出文件:
    $ hdfs dfs -cat output/*

我们会发现,系统被卡死了,为什么呢?因为机器的内存只有512M,内存被耗尽了。用 ctrl+c强制结束(会等待好长一段时间),再来看一下内存使用情况:

其实我们在启动HDFS、yarn后,内存就用完了。重启系统后,我们启动hdfs、yarn,马上看一下内存的使用情况:

再要执行mapreduce任务又需要很多内存(不够用),根本就执行不了。
解决办法:
1、调高机器的内存到1G
2、运行作业时加入jvm重用参数,如下所示:

hadoop jar /usr/hadoop/latest/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep -Dmapreduce.job.ubertask.enable=true input output5 'hdf[a-z.]+'

 

 

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部