单机搭建 Hadoop3 环境为CentOS7JDK1

单机搭建 Hadoop3 环境为CentOS7/JDK1.8

软件准备

​ CentOS 7:https://www.centos.org/download/

​ JDK1.8:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

​ Hadoop3:https://hadoop.apache.org/releases.html

环境配置

步骤一:用vmware安装centos 7

1.配置网路环境

关闭防火墙:
systemctl stop firewalld.service
开启ip地址分配:
vi /etc/sysconfig/network-scripts/ 
把 ONBOOT=no 改为 ONBOOT=yes

2.配置SSH无密码登陆

cd ~/.ssh/                            #若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa                     #会有提示,都按回车就可以
cat id_rsa.pub >> authorized_keys     #加入授权
chmod 600 ./authorized_keys           #修改文件权限

步骤二:解压jdk1.8

1.配置jdk环境

##初始化
tar -vzxf jdk-8u151-linux-x64.tar.gz 	#解压 
mv jdk-8u151 jdk8                     	#改名为jdk8
mkdir /usr/java							#手动创建 
mv /root/jdk8 /usr/java 				#将jdk移动到这个文件 

##java环境
vi /etc/profile
插入下列4行
    export JAVA_HOME=/usr/java/jdk8

    export JRE_HOME=$JAVA_HOME/jre 

    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 

    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    
保存退出后执行命令生效:
source /etc/profile
测试:
java -version 								#检测是否成功,有版本信息提示的效果,证明成功了

步骤三:解压hadoop3

1.配置hadoop3环境

##初始化
tar -vzxf hadoop-3.2.0-linux-x64.tar.gz 	#解压 
mv hadoop-3.2.0 hadoop3                    	#改名为hadoop3
mkdir /usr/hadoop							#手动创建 
mv /root/hadoop3 /usr/hadoop 				#将jdk移动到这个文件 

##hadoop的环境
vi /etc/profile
插入下列8行
	export HADOOP_HOME=/usr/hadoop/hadoop3
    export HADOOP_INSTALL=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export YARN_HOME=$HADOOP_HOME
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
保存退出后执行命令生效:
source /etc/profile
测试:
hadoop version								#检测是否成功,有版本信息提示的效果,证明成功了

步骤四:hadoop3(DFS)配置(下面的配置都在hadoop3这个目录下面,省略了/usr/hadoop路径

在/usr/hadoop下创建文件夹
	mkdir /usr/hadoop/tmp
	mkdir -p /usr/hadoop/tmpdfs/name
	mkdir -p /usr/hadoop/tmpdfs/data
1.先修改** core-site.xml **文件,
 vi /usr/hadoop/hadoop3/etc/hadoop/core-site.xml 
	<configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/hadoop/tmp</value>
                <description>Abase for other temporary directories.							</description>
         </property>
         <property>
                  <name>fs.defaultFS</name>
                  <value>hdfs://localhost:9000</value>
          </property>
	</configuration>
2.再修改** hdfs-site.xml **文件
	<configuration>
          <property>
                   <name>dfs.replication</name>
                   <value>1</value>
          </property>
          <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>/usr/hadoop/tmp/dfs/name</value>
          </property>
          <property>
                     <name>dfs.datanode.data.dir</name>
                     <value>/usr/hadoop/tmp/dfs/data</value>
          </property>
		</configuration>
		
配置好之后,执行一下,格式化命令
	./bin/hdfs namenode -format
	
然后执行一下namenode和datanode的守护进程
	./sbin/start-dfs.sh
	
成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。
问题解决

1.报错

​ ERROR: Attempting to operate on hdfs namenode as root
​ ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.

@1:因为是root账户,需要配置以下几点(这里配置两种模式DFS和YARN)

在start-dfs.sh,stop-dfs.sh中:
	HDFS_DATANODE_USER=root
    HADOOP_SECURE_DN_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root 
在start-yarn.sh,stop-yarn.sh中
	YARN_RESOURCEMANAGER_USER=root
    HADOOP_SECURE_DN_USER=yarn
    YARN_NODEMANAGER_USER=root

2.警告

​ HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.

@2: 解决方案,在 vi sbin/start-dfs.sh 和 vi sbin/stop-dfs.sh

将

HDFS_DATANODE_USER=root  
HADOOP_SECURE_DN_USER=hdfs  
HDFS_NAMENODE_USER=root  
HDFS_SECONDARYNAMENODE_USER=root

改成

HDFS_DATANODE_USER=root  
HDFS_DATANODE_SECURE_USER=hdfs  
HDFS_NAMENODE_USER=root  
HDFS_SECONDARYNAMENODE_USER=root

3.报错

​ ERROR: JAVA_HOME is not set and could not be found.

@3:解决方案,在 vi etc/hadoop/hadoop-env.sh 中加入

export JAVA_HOME=/usr/java/jdk8

4.警告

​ WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

@4:解决方案,没有native仓库位置,需要配置环境

在/etc/profile中,添加下面配置:
export  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export  HADOOP_HOME=/usr/hadoop/hadoop3
export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

最后记得使配置生效:source /etc/profile
并把相同配置添加到hadoop-env.sh文件末尾。
访问hadoop Web

​ 访问地址:http://localhost:50070

启动后 localhost:50070 不出现web界面,则通过以下方式检测:

centos 7 没有netstat命令,需要手动安装执行
		yum install net-tools
		
执行 netstat -ant

如 50070 没启动,尝试修改配置文件:
在 mapred-site.xml 文件添加以下:(/usr/hadoop/hadoop3/etc/hadoop)
    <property>
      <name>mapred.job.tracker.http.address</name>
      <value>主机的IP:50030</value>
    </property>
    <property>
      <name>mapred.task.tracker.http.address</name>
      <value>主机的IP:50060</value>
    </property>
    
 在hdfs-site.xml文件添加以下:
 	<property>
         <name>dfs.http.address</name>
         <value>0.0.0.0:50070</value>
	</property>
	
重启hadoop,即可成功打开web界面。

YARN模式配置
mapred-site.xml 文件添加以下:

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

yarn-site.xml 文件添加以下:

<configuration>
         <property>
                 <name>yarn.nodemanager.aux-services</name>
                 <value>mapreduce_shuffle</value>
          </property>
</configuration>

然后执行:

./sbin/start-yarn.sh

开yarn好处:
	启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。观察日志信息可以发现,不启用 YARN 时,是 “mapred.LocalJobRunner” 在跑任务。启用 YARN 之后,“mapred.YARNRunner” 在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值