Hadoop配置—伪分布模式

Hadoop分为三种配置模式:独立模式(standalone|local),伪分布模式(Pseudodistributed mode),完全分布式(full distributed)

说在前面
  • 工作环境:VMware® Workstation 12 Pro 12.5.6 build-5528349
  • linux版本:CentOS-7-x86_64-Minimal-1611.iso
  • JDK版本:jdk-8u65-linux-x64.tar.gz
  • Hadoop版本:hadoop-2.7.6.tar.gz
独立模式(standalone|local)

 在正式的配置之前先说一说独立模式,其实我们安装完Hadoop,将环境变量配置好,这时Hadoop的配置就是独立模式,使用的是本地的文件系统,不需要启动单独的进程。如下图就是独立模式的文件系统(其实就是本地文件系统):

配置伪分布模式(Pseudodistributed mode)

 伪分布模式需要我们自己手动配置,下面是具体的配置过程,友情提示:小心小心小心!!!

一. 修改配置文件

进入${HADOOP_HOME}/etc/hadoop目录(cd /soft/hadoop/etc/hadoop),修改如下配置文件:

  • 配置core-site.xml文件
$> nano core-site.xml //进入后删除里面的注释,配置如下



    
        fs.defaultFS
        hdfs://localhost/
    


  • 配置hdfs-site.xml文件


	
		dfs.replication
		1
	

  • 配置mapred-site.xml
//这里需要注意,在上面我们并没有看到mapred-site.xml文件,而是一个名为mapred-site.xml.template,我们需要复制一个出来,然后配置就可以了

$> cp mapred-site.xml.template mapred-site.xml



	
		mapreduce.framework.name
		yarn
	

  • 配置yarn-site.xml文件


	
		yarn.resourcemanager.hostname
		localhost
	
	
		yarn.nodemanager.aux-services
		mapreduce_shuffle
	

配置SSH(免密登录)

我们知道Hadoop集群需要一个根节点去管理很多的子节点,假如我们每登录一个子节点都要输入密码验证,那效率将会非常低下,所以就需要配置一种免密登录的模式,无需输入密码就能登录。ssh就是这样一种机制。

  • 检查是否安装了ssh相关软件包(openssh-server + openssh-clients + openssh)
$> yum list installed | grep ssh

  • 检查是否启动了sshd进程

sshd: 是否开启守护进程(daemon)

$> ps -Af | grep sshd

  • 在client端生成公私秘钥对
//rsa 是一种不可逆算法,它会在家目录下的./ssh文件夹下生成公私秘钥文件
$> ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 

在家目录下会生成一个.ssh文件夹:

  • 生成~/.ssh文件夹,里面有id_rsa(私钥) + id_rsa.pub(公钥)

  • 追加公钥到~/.ssh/authorized_keys文件中(文件名、位置固定)
$>cd ~/.ssh
$>cat id_rsa.pub >> authorized_keys

  • 修改authorized_keys的权限为644(centos系统才需要修改)

644:用户自己具有读和写权利,没有执行权;组用户和其他用户只有读的权利,没有写和执行权。

$>chmod 644 authorized_keys

  • 最后一步,测试:ssh localhost
//第一次需要输入密码,exit退出再重新登录时就不需要密码了,成功!
$> ssh localhost

启动Hadoop
  • 创建三个配置目录,内容等同于hadoop目录
${hadoop_home}/etc/local
${hadoop_home}/etc/pesudo
${hadoop_home}/etc/full
  • 创建符号链接,让它指向你要使用的目录,启动对应的分布系统
//让符号链接指向hadoop,则采用的是伪分布模式
$> ln -s pesudo hadoop 
  • 对hdfs进行格式化
$>hadoop namenode -format
  • 修改hadoop配置文件,手动指定JAVA_HOME环境变量(ubuto系统不存在这个问题,centos系统需要配置)
export JAVA_HOME=/soft/jdk
  • 启动hadoop的所有进程(已经不推荐使用)
//启动所有进程
$>start-all.sh

//关闭所有进程
$>stop-all.sh

//推荐使用的方式
//启动分布式文件系统
[hdfs]  start-dfs.sh stop-dfs.sh
		NN    //名称节点
		DN    //数据节点
		2NN   //辅助名称节点
//启动yarn模块
[yarn] start-yarn.sh stop-yarn.sh
		RM    //资源管理亲
		NM    //节点管理器
  • 启动完成后,出现以下进程(命令:jps)
2624 DataNode               //数据节点
2535 NameNode               //名称节点
2744 SecondaryNameNode      //辅助名称节点
2888 ResourceManager        //资源管理器
2985 NodeManager            //节点管理器
  • 查看hdfs文件系统和创建目录
//查看hdfs
$>hdfs dfs -ls /

//新建文件夹
$>hdfs dfs -mkdir -p /user/centos/hadoop
  • 在web端查看hadoop的文件系统
//localhost为自己配置的静态ip
http://localhost:50070/

//查看网络情况
$> netstat -ano | more

//hadoop的端口
50070		//namenode http port
50075		//datanode http port
50090		//2namenode	http port

8020		//namenode rpc port
50010		//datanode rpc port

//在web端访问如果发现访问不了,估计是防火墙出现问题,需要对其进行操作
[cnetos 6.5之前的版本]
$>sudo service firewalld stop		//停止服务
$>sudo service firewalld start		//启动服务
$>sudo service firewalld status		//查看状态

[centos7]
$>sudo systemctl enable firewalld.service	//"开机启动"启用
$>sudo systemctl disable firewalld.service	//"开机自启"禁用
$>sudo systemctl start firewalld.service	//启动防火墙
$>sudo systemctl stop firewalld.service		//停止防火墙
$>sudo systemctl status firewalld.service	//查看防火墙状态

[开机自启]
$>sudo chkconfig firewalld	on				//"开启自启"启用
$>sudo chkconfig firewalld	off				//"开启自启"禁用

你可能感兴趣的:(◆【大数据】)