ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Ubuntu下配置伪分布式Hadoop(个人学习仅供参考)

2021-09-19 19:00:10  阅读:151  来源: 互联网

标签:xml Hadoop site export Ubuntu HOME localhost 分布式


Ubuntu下Hadoop伪分布搭建

文章目录

Hadoop的三种集群环境

1、单机版环境

-默认模式。

-不对配置文件进行修改。

-使用本地文件系统,而不是分布式文件系统。

-Hadoop不会启动NameNode、DataNode、ResourceManager、NodeManager等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。

-用于对MapReduce程序的逻辑进行调试,确保程序的正确。

2、伪分布式环境

-在一台主机模拟多主机。

-Hadoop启动NameNode、DataNode、ResourceManager、NodeManager这些守护进程都在同一台机器上运行,是相互独立的Java进程。

-在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由ResourceManager服务,来管理的独立进程。在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。类似于完全分布式模式,因此,这种模式常用来开发测试Hadoop程序的执行是否正确。

-修改5个配置文件:core-site.xml(Hadoop集群的特性,作用于全部进程及客户端)、hdfs-site.xml(配置HDFS集群的工作属性)、mapred-site.xml(配置MapReduce集群的属性)、yarn-site.xml(简单配置MapReduce)、hadoop-env.sh(配置java环境变量)

-格式化文件系统

3、完全式环境

-Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的生产环境。

-在所有的主机上安装JDK和Hadoop,组成相互连通的网络。

-在主机间设置SSH免密码登录,把各从节点生成的公钥添加到主节点的信任列表。

-修改7个配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml,yarn-site.xml、hadoop-env.sh、yarn-env.sh指定NameNode和ResourceManager的位置和端口,设置文件的副本等参数

-格式化文件系统

安装前环境准备

1、我使用的是Ubuntu16.04的版本

2、使用远程连接工具上传Hadoop-2.4.1的tar以及jdk-7u65的Linux的tar包

3、Ubuntu可以正常连接外网

设置ssh免密登录

sudo apt-get install openssh-server   #安装SSH server
ssh localhost                         #登陆SSH,第一次登陆输入yes
exit                                  #退出登录的ssh localhost
cd ~/.ssh/                            #如果没法进入该目录,执行一次ssh localhost
ssh-keygen -t rsa                     #使用指令后需要连续三次回车

cat ./id_rsa.pub >> ./authorized_keys #加入授权
ssh localhost                         #此时已不需密码即可登录localhost,如果失败则可以搜索SSH免密码登录来寻求答案

安装java、Hadoop,配置环境变量

在上传安装包的当前目录下解压到指定目录

tar -zxvf jdk-(Tab键补齐) -C /opt/software        #-C后面跟上解压的指定目录
tar -axvf hadoop0-(Tab键补齐) -C /opt/software    #如果Tab不了,可以切换到root权限试试

#在software目录下
mv jdk------ jdk          #将安装解压后jdk重命名,方便配置环境变量时不用写一大串
mv hadoop--- hadoop       #重命名Hadoop

我是在系统变量/etc/profile中进行配置,也可以在用户变量环境中进行配置,使用vi进行编辑(使用不了可以使用apt-get isntall vim下载)

vi /etx/profile

在最底部进行配置

#java env
export JAVA_HOME=/opt/software/jdk                                      #路径是你解压后的位置
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#hadoop env
export HADOOP_HOME=/opt/software/hadoop                                 #路径是你加压后的位置 
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH      
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

修改Hadoop的配置文件

Hadoop可修改的配置文件有7个,但伪分布修改5个即可

#修改hadoop-env.sh的环境变量
export JAVA_HOME={XXXX}     #将{xxxx}写成java加压后的绝对路径  
#修改 core-site.xml 
		<property>
			<name>fs.defaultFS</name>
			<value>hdfs://XXXX:9000</value>
		</property>
		<property>
			<name>hadoop.tmp.dir</name>
			<value>file:xxxx</value>
		</property>
#xxxx代表你当前的主机名,伪分布可用localhost  0000代表临时文件的路径,只需写出Hadoop的解压路径后的/tmp
#修改hdfs-site.xml
        <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
        <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/xxxx/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/xxxx/tmp/dfs/data</value>
        </property>
#上面的数字代表你部署的节点,伪分布一个。xxxx是指Hadoop的解压路径
#添加mapred-site.xml (注意移除.template)
<configuration>
		<property>
			<name>mapreduce.framework.name</name>
			<value>yarn</value>
		</property>
</configuration>
#修改yarn-site.xml
		<property>
			<name>yarn.resourcemanager.hostname</name>
			<value>XXXXX</value>
		</property>
#xxxx代表当前主机名,伪分布可以是localhost

格式化文件,启动集群

格式化文件

 ./bin/hdfs namenode -format  

启动所有集群,Hadoop的bin目录下

start-all.sh
jps                          #查看守护进程
http://localhost:50070       #网址访问hdfs监控界面
http://localhost:8088        #网址访问yarn监控界面

关闭所有集群

stop-all.sh

标签:xml,Hadoop,site,export,Ubuntu,HOME,localhost,分布式
来源: https://blog.csdn.net/m0_56363537/article/details/120383374

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有