Hadoop-单节点配置

Posted 人塞不能怨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop-单节点配置相关的知识,希望对你有一定的参考价值。

Hadoop单节点安装和配置

介绍Hadoop单节点配置
版本选择
hadoop通常会选择CDH提供的版本或Apache版本。CDH版本保证了生态圈各模块之间的兼容性,但因为CDH可能要开始收费,所以我们这里选择Apache的版本,以下为版本和环境
【hadoop版本】:Apache-hadoop-3.1.3
【hadoop运行环境】:CentOS7
【虚拟机软件】:VMware: 15
【主机系统】:Win10

Linux配置

  1. 检查虚拟机主机和IP映射
#查看ip地址
ip addr
#查看主机名
hostname
#检查ip-hostname映射(如果没有请添加)
cat /etc/hosts
  1. 本机免密
#生成密钥
cd ~
ssh-keygen -t rsa
#进入.ssh添加公钥
cd .ssh
cat id_rsa/pub>>authorized_keys
#登录本机测试

安装并配置Hadoop

  1. 解压缩并重名命
#提前上传hadoop安装包
#解压
tar -zxvf /opt/download/hadoop-3.1.3.tar.gz -C /opt/software
#重命名
mv /opt/software/hadoop-3.1.3 /opt/software/hadoop313
  1. 配置环境变量
vim /etc/profile.d/myenv.sh
#添加以下内容
----------------------------------------------
export HADOOP_HOME=/opt/software/hadoop313				#自己安装hadoop的目录
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNODE_USER=root	
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
----------------------------------------------
#激活环境变量
source /etc/profile
  1. Hadoop配置
    主要需要配置四个文件

(1) core-site.xml

<configuration>
	<!--配置namenode的地址-->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://{第一步中查到的主机IP}:9820</value>
	</property>
	<property>
	<!--配置数据存储目录-->
		<name>hadoop.tmp.dir</name>
		<value>/opt/software/hadoop313/data</value>
	</property>
	<property>
	<!--配置HDFS网页登录使用的静态用户为root-->
		<name>hadoop.http.staticuser.user</name>
		<value>root</value>
	</property>
	<property>
	<!--配置root(超级用户)允许通过代理访问的主机节点-->
		<name>hadoop.proxyuser.root.hosts</name>
		<value>*</value>
	</property>
	<property>
	<!--配置root(超级用户)允许通过代理用户所属组-->
		<name>hadoop.proxyuser.root.groups</name>
		<value>*</value>
	</property>
	<property>
	<!--配置root(超级用户)允许通过代理的用户-->
		<name>hadoop.proxyuser.root.user</name>
		<value>*</value>
	</property>
</configuration>

(2) hdfs-site.xml

<configuration>
	<!--配置namenode web访问地址-->
	<property>
		<name>dfs.namenode.http-address</name>
		<value>{主机IP}:9870</value>
	</property>
	<!--配置secondary namenode web访问地址-->
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>{主机IP}:9868</value>
	</property>
	<!--配置hdfs副本数量-->
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
</configuration>

(3) mapred-site.xml

<configuration>
	<!--配置mapreduce运行于yarn上:默认为local,也可以指定spark阶段了解mesos-->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<!--配置历史服务器地址-->
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>{主机IP}:10020</value>
	</property>
	<!--配置历史服务器web端地址-->
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>{主机IP}:19888</value>
	</property>
</configuration>

(4) yarn-site.xml

<configuration>
	<!--配置mr的执行方式-->
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<!--配置ResourceManager的地址-->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>{主机名}</value>
	</property>
	<!--配置环境变量的继承-->
	<property>
		<name>yarn.nodemanager.env-whitelist</name>
		<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,
		HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
	</property>
	<!--配置yarn容器允许分配的最小内存-->
	<property>
		<name>yarn.scheduler.minimum-allocation-mb</name>
		<value>512</value>
	</property>
	<!--配置yarn容器允许分配的最大内存-->
	<property>
		<name>yarn.scheduler.maximum-allocation-mb</name>
		<value>1536</value>
	</property>
	<!--配置yarn容器允许管理的物理内存大小-->
	<property>
		<name>yarn.nodemanager.resource.memory-mb</name>
		<value>1536</value>
	</property>
	<!--yarn初始申请内存大小-->
	<property>
        <name>yarn.app.mapreduce.am.resource.mb</name>
        <value>256</value>
    </property>
	<!--配置关闭yarn对物理内存和虚拟内存的限制检查,jdk8运行于centos6以上版本会导致虚拟内存过大-->
	<property>
		<name>yarn.nodemanager.pmem-check-enabled</name>
		<value>false</value>
	</property>
	<!--配置关闭yarn对物理内存和虚拟内存的限制检查-->
	<property>
		<name>yarn.nodemanager.vmem-check-enabled</name>
		<value>false</value>
	</property>
	<!--开启日志聚集-->
	<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
	</property>
	<!--配置日志聚集服务器地址-->
	<property>
		<name>yarn.log.server.url</name>
		<value>http://{主机IP}:19888/jobhistory/logs</value>
	</property>
	<!--配置日志保留时间为7天-->
	<property>
		<name>yarn.log-aggregation.retain-seconds</name>
		<value>604800</value>
	</property>
	<!--配置yarn的classpath(在linux命令行输入 hadoop classpath 查到)-->
	 <property>
        <name>yarn.application.classpath</name>
        <value>/opt/software/hadoop313/etc/hadoop:/opt/software/hadoop313/share/hadoop/common/lib/*:/opt/software/hadoop313/share/hadoop/common/*:/opt/software/hadoop313/share/hadoop/hdfs:/opt/software/hadoop313/share/hadoop/hdfs/lib/*:/opt/software/hadoop313/share/hadoop/hdfs/*:/opt/software/hadoop313/share/hadoop/mapreduce/lib/*:/opt/software/hadoop313/share/hadoop/mapreduce/*:/opt/software/hadoop313/share/hadoop/yarn:/opt/software/hadoop313/share/hadoop/yarn/lib/*:/opt/software/hadoop313/share/hadoop/yarn/*
        </value>
    </property>
</configuration>
  1. namenode格式化
#在hadopp主目录(/opt/software/hadoop313)下新建data文件夹
mkdir data

#nemenode格式化
./bin/hdfs namenode -format
  1. 启动服务
#启动服务
start-all.sh
#通过jps查看服务,如果出现下边服务说明服务已经开启完毕
---------------------------------------------------------------
66455 Jps
55764 DataNode
56282 ResourceManager
55627 NameNode
55981 SecondaryNameNode
56415 NodeManager
--------------------------------------------------------------
#也可启动jobhistory(不是必要)
./sbin/mr-jobhistory-daemon.sh start historyserver
  1. 测试hdfs系统
#查看活动方式文件目录
hdfs dfs -ls /
#创建hdfs目录
hdfs dfs -mkdir /kb12/hd/cha01
#上传文件到hdfs目录
hdfs dfs -put a.txt /kb12/hd/cha01
#查看hdfs文件内容
hdfs dfs -cat /kb/12/hd/cha01/*
  1. 测试mapreduce,用hadoop自带案例
#进入mapreduce目录
cd /opt/software/hadoop313/share/hadoop/mapreduce
#运行wordcount例子
hadoop jar hadoop-mapreduce-examples-3.1.3.jar wordcount /input/wc01.log /out

#如果前边过程正常,说明Hadoop下的hdfs,yarn,和mapreduce可以正常工作。接下来可以做hadoop的本地映射,通过java来测试hadoop。

  1. 迁移hadoop至windows,用java代码进行测试
#1.准备window hadoop环境,将hadoop.dll放到system32
hadoop.dll -> windows/system32

#2.将linux下hadoop打包
cd /opt/software
tar -zcvf hadoop313.tar.gz hadoop313/
#将压缩包通过xftp或lrzsz拷贝至windows
#将压缩包解压至windows d:/software目录
	#若解压报错:win->search winrar->右键以管理员方式启动->选择压缩解压至目标路径

#3.将windutils.exe拷贝至windows hadoop313/bin

#.配置windows hadoop环境变量
HADOOP_HOME=D:\\software\\hadoop313
PATH:%HADOOP_HOME%\\bin;%HADOOP_HOME%\\sbin;...
HADOOP_USER_NAME=root

#5.配置windows环境下linux中hostname和ip地址映射
C:/windows/System31/drivers/etc/hosts 中添加
-----------------------------
虚拟机IP 虚拟机主机名
-----------------------------

#6.退出安全模式
hadoop dfsadmin -safemode leave

#7.idea中建立maven项目
#idea pom.xml
--------------------
<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <manve.compiler.target>1.8</manve.compiler.target>
        <hadoop.version>3.1.3</hadoop.version>
        <log4j.version>1.2.17</log4j.version>
        <slf4j.version>2.0.0-alpha1</slf4j.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>${hadoop.version}</version>
        </dependency>
    </dependencies>

------------------
#8.编写MapReduce任务进行测试

以上是关于Hadoop-单节点配置的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop-单节点配置

hadoop生态搭建(3节点)-17.sqoop配置_单节点

hadoop生态搭建(3节点)-05.mysql配置_单节点

HDFS环境搭建(单节点配置)

Hadoop伪集群(单节点集群)安装(Centos7)

Hadoop伪集群(单节点集群)安装(Centos7)