来自 技术 2019-04-17 的文章

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

八年Java开发的感悟:什么才是程序员的立身之本>>>   

安装准备:

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=trueinput output5 'hdf[a-z.]+'

标签:   JDK      Hadoop      MapReduce      Yarn      HDFS      进程名称      php 返回code   
上一篇:Spring boot异步注解源码解析
下一篇:没有了