Hadoop学习笔记 — Hadoop伪分布式快速搭建

By timebusker on March 15, 2018

Hadoop学习笔记 — Hadoop伪分布式快速搭建

hadoop fs -put 1902.gz hdfs://timebusker:9000/

Hadoop伪分布式模式——Pseudo-Distributed

配置免密登录
  • Linux下生成密钥 通过ssh-keygen -t rsa生成密钥和公钥

  • 导入公钥到认证文件,更改权限 导入本机
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    更改权限 ` chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys

JDK环境变量配置
# /root/.bashrc  设置成当前用户
JAVA_HOME=/usr/java/jdk1.8.0_171-i586
PATH=$PATH:$JAVA_HOME/bin/
export JAVA_HOME PATH 
Hadoop环境变量配置
HADOOP_HOME=/root/hadoop-2.9.0
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

export HADOOP_HOME PATH
core-site.xml
<configuration>  
  <!--
  【这里的值指的是默认的HDFS路径。这里只有一个HDFS集群,在这里指定!该值来自于hdfs-site.xml中的配置】
  -->        
  <property>        
     <name>fs.defaultFS</name>        
     <value>hdfs://localhost</value>        
  </property>  
  <!--
  【这里的路径默认是NameNode、DataNode、JournalNode等存放数据的公共目录。用户也可以自己单独指定这三类节点的目录】
   存储在本地磁盘
  -->          
  <property>        
       <name>hadoop.tmp.dir</name>       
       <value>/tmp/hdpcentos/yarn/yarn_data/tmp</value>   
   </property>
</configuration> 

<!-- 用户授权代理ProxyUser -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
	<name>hadoop.proxyuser.root.groups</name>
	<value>*</value>
</property>
<property>
	<name>hadoop.proxyuser.root.users</name>
	<value>*</value>
</property>
hdfs-site.xml
<configuration>  
    <!--【指定DataNode存储block的副本数量。默认值是3个。】-->    
    <property>    
      <name>dfs.replication</name>    
       <value>2</value>    
    </property>          
    <property>    
       <name>dfs.permissions</name>    
      <value>false</value>    
   </property>    
   <property>    
      <name>dfs.permissions.enabled</name>    
      <value>false</value>    
   </property>  
   <property>
     <name>dfs.namenode.name.dir</name>
     <value>/opt/hadoop-data/namenode/name</value>
   </property>
   <property>
      <name>dfs.datanode.data.dir</name>
     <value>/opt/hadoop-data/datanode/name</value>
</property>
</configuration>  
mapred-site.xml
<configuration>
	<!--指定mapreduce运行在yarn框架上-->
	<property>
			<name>mapreduce.framework.name</name>
			<value>yarn</value>
	</property>
	<!--指定MR总内存大小,默认是1536M,机器内存小于改值需要调整-->
	<property>
			<name>yarn.app.mapreduce.am.resource.mb</name>
			<value>256</value>
	</property>
</configuration>
yarn-site.xml
<configuration>
	<!--配置了yarn的默认混洗方式,选择为mapreduce的默认混洗算法-->
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<!--指定Resourcemanager运行在哪个节点上-->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>127.0.0.1</value>
	</property>
	<!--指定nodemanager运行在哪个节点上-->
	<property>
		<name>yarn.nodemanager.hostname</name>
		<value>127.0.0.1</value>
	</property>
	<!--单个任务可申请的最小内存资源量单位:M-->
	<property>
		<name>yarn.scheduler.minimum-allocation-mb</name>
		<value>256</value>
	</property>
	<!--单个任务可申请的最大内存资源量,单位:M-->
	<property>
		<name>yarn.scheduler.maximum-allocation-mb</name>
		<value>1024</value>
	</property>
	<!--NodeManager总的可用物理内存单位:M-->
	<property>
		<name>yarn.nodemanager.resource.memory-mb</name>
		<value>2048</value>
	</property>
	<!--是否启用虚拟内存检查虚拟内存倍数默认2.1,如果开启虚拟内存检查(vmem-check-enabled=true),
	虚拟内存倍数(vmem-pmem-ratio=2.1)不做调整,容易出现虚拟内存溢出,一般解
	决方案是调整这两个参数-->
	<property>
		<name>yarn.nodemanager.vmem-check-enabled</name>
		<value>false</value>
	</property>
</configuration>
启动Hadoop
  • 格式化namenode的主要三个作用: ```

    创建一个全新的元数据存储目录

    生成记录元数据的文件fsimage

    创建磁盘目录

./bin/hdfs namenode -format

启动服务

./sbin/start-all.sh


- 启动NameNode:`hadoop-daemon.sh start namenode`
- 启动DataNode:`hadoop-daemon.sh start datanode`
- 启动SecondaryNameNode:`hadoop-daemon.sh start secondarynamenode`
- 启动Resourcemanager:`yarn-daemon.sh start resourcemanager`
- 启动nodemanager:`yarn-daemon.sh start nodemanager`

##### 开启历史记录服务

mr-jobhistory-daemon.sh start historyserver

历史记录 Web客户端:http://localhost:19888/


##### Hadoop配置文件详解

- [Hadoop之——hadoop下配置文件说明](https://blog.csdn.net/l1028386804/article/details/51372663);

- [Hadoop配置文件参数详解](https://www.cnblogs.com/yinghun/p/6230436.html);


#### 集群测试

hadoop fs -put 1902.gz hdfs://timebusker:9000/

yarn jar /opt/hadoop-2.8.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar pi 4 100


#### 遗留问题

- 问题一 :并不会影响系统运行

- ————[实际解决问题的办法](https://blog.csdn.net/qq_38318622/article/details/80521471)

[root@timebusker sbin]# yarn jar /root/hadoop-2.9.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar pi 4 100 Number of Maps = 4 Samples per Map = 100 18/06/13 19:02:44 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable ```