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配置
- 检查虚拟机主机和IP映射
#查看ip地址
ip addr
#查看主机名
hostname
#检查ip-hostname映射(如果没有请添加)
cat /etc/hosts
- 本机免密
#生成密钥
cd ~
ssh-keygen -t rsa
#进入.ssh添加公钥
cd .ssh
cat id_rsa/pub>>authorized_keys
#登录本机测试
安装并配置Hadoop
- 解压缩并重名命
#提前上传hadoop安装包
#解压
tar -zxvf /opt/download/hadoop-3.1.3.tar.gz -C /opt/software
#重命名
mv /opt/software/hadoop-3.1.3 /opt/software/hadoop313
- 配置环境变量
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
- 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>
- namenode格式化
#在hadopp主目录(/opt/software/hadoop313)下新建data文件夹
mkdir data
#nemenode格式化
./bin/hdfs namenode -format
- 启动服务
#启动服务
start-all.sh
#通过jps查看服务,如果出现下边服务说明服务已经开启完毕
---------------------------------------------------------------
66455 Jps
55764 DataNode
56282 ResourceManager
55627 NameNode
55981 SecondaryNameNode
56415 NodeManager
--------------------------------------------------------------
#也可启动jobhistory(不是必要)
./sbin/mr-jobhistory-daemon.sh start historyserver
- 测试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/*
- 测试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。
- 迁移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生态搭建(3节点)-17.sqoop配置_单节点