Hadoop伪分布式配置教程

打印 上一主题 下一主题

主题 517|帖子 517|积分 1551

目次
一、创建Hadoop用户
1.创建Hadoop用户
2.更换用户
二、更新Apt,安装SSH,配置SSH无密码登录
1.更新Apt
2.安装SSH 
3.配置SSH无密码登陆
三、安装Java环境
四、安装 Hadoop 
1.下载Hadoop
2.安装Hadoop
五、Hadoop单机配置(非分布式)
六、Hadoop伪分布式配置
七、运行Hadoop伪分布式实例


一、创建Hadoop用户

1.创建Hadoop用户

输入如下命令创建新用户 :
  1. sudo useradd -m hadoop -s /bin/bash
复制代码
这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。

接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:
  1. sudo passwd hadoop
复制代码

 可为 hadoop 用户增加管理员权限,方便部署,制止一些对新手来说比力棘手的权限问题:
  1. sudo adduser hadoop sudo
复制代码

2.更换用户

关闭终端,注销当前用户,选择Hadoop用户登录


二、更新Apt,安装SSH,配置SSH无密码登录

1.更新Apt

用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,假如没更新可能有一些软件安装不了。按 Ctrl+Alt+T打开终端窗口,执行如下命令:
  1. sudo apt-get update
复制代码

2.安装SSH 

安装 SSH server,执行如下命令:
  1. sudo apt-get install openssh-server
复制代码
输入“Y”,按回车继承安装 

安装后,可以使用如下命令登陆本机:
  1. ssh localhost
复制代码
输入“yes”,后输入密码按回车即可

 3.配置SSH无密码登陆

首先输入以下代码:
  1. exit
复制代码
退出刚才的 ssh localhost

输入以下代码:
  1. cd ~/.ssh/
复制代码
进入到ssh目次中

输入以下代码:
  1. ssh-keygen -t rsa
复制代码
利用ssh-keygen天生密匙
出现提示后,按回车键即可

输入以下代码:
  1. cat ./id_rsa.pub >> ./authorized_keys
复制代码
将密钥加入到授权中

此时再用ssh localhost命令,无需输入密码就可以直接登陆了
  1.  ssh localhost
复制代码

三、安装Java环境

输入以下代码,安装Openjdk-8-jdk
  1. sudo apt-get install openjdk-8-jdk
复制代码
输入“Y”,按回车继承安装 

输入以下代码,查看已安装的Java版本
  1. java -version
复制代码
 

输入以下代码,配置Java环境文件
  1. gedit ~/.bashrc
复制代码
在文件最前面添加如下单独一行(注意,等号“=”前后不能有空格),然后保存退出:
  1. export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
复制代码

接下来,要让环境变量立刻生效,请执行如下代码:
  1. source ~/.bashrc
复制代码
 

执行上述命令后,可以检验一下是否设置正确:
  1. echo $JAVA_HOME   
  2. java -version
  3. $JAVA_HOME/bin/java -version
复制代码

四、安装 Hadoop 

1.下载Hadoop

使用Ubuntu体系内置的Firefix浏览器下载Hadoop-3.2.4
Hadoop下载地址:Index of /apache/hadoop/common/hadoop-3.2.4

2.安装Hadoop

输入以下代码:(注意C要大写)
  
  1. sudo tar -zxf ~/下载/hadoop-3.2.4.tar.gz -C /usr/local
复制代码
将Hadoop解压安装到/usr/local文件夹内
输入以下代码:
  
  1. cd /usr/local/
  2. sudo mv ./hadoop-3.2.4/ ./hadoop            # 将文件夹名改为hadoop
  3. sudo chown -R hadoop ./hadoop
复制代码
并将文件夹名改为hadoop,和修改文件权限
​输入如下命令来检查 Hadoop 是否可用,乐成则会表现 Hadoop 版本信息:

  
  1. cd /usr/local/hadoop
  2. ./bin/hadoop version
复制代码
 

五、Hadoop单机配置(非分布式)

Grep 例子
将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,末了输出效果到 output 文件夹中
  
  1. cd /usr/local/hadoop
  2. mkdir ./input
  3. cp ./etc/hadoop/*.xml ./input
  4. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
  5. cat ./output/*
复制代码
​ 

 

Hadoop 默认不会覆盖效果文件,因此再次运行上面实例会提示堕落,必要先将 ./output 删除。
  
  1. rm -r ./output
复制代码
六、Hadoop伪分布式配置

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式必要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
修改配置文件 core-site.xml 
  
  1. cd /usr/local/hadoop
  2. gedit ./etc/hadoop/core-site.xml
复制代码
修改为以下配置,点击保存退却出:
  
  1. <configuration>
  2.     <property>
  3.         <name>hadoop.tmp.dir</name>
  4.         <value>file:/usr/local/hadoop/tmp</value>
  5.         <description>Abase for other temporary directories.</description>
  6.     </property>
  7.     <property>
  8.         <name>fs.defaultFS</name>
  9.         <value>hdfs://localhost:9000</value>
  10.     </property>
  11. </configuration>
复制代码

修改配置文件 hdfs-site.xml
  1. gedit ./etc/hadoop/hdfs-site.xml
复制代码
修改为以下配置,点击保存退却出:
  1. <configuration>
  2.     <property>
  3.         <name>dfs.replication</name>
  4.         <value>1</value>
  5.     </property>
  6.     <property>
  7.         <name>dfs.namenode.name.dir</name>
  8.         <value>file:/usr/local/hadoop/tmp/dfs/name</value>
  9.     </property>
  10.     <property>
  11.         <name>dfs.datanode.data.dir</name>
  12.         <value>file:/usr/local/hadoop/tmp/dfs/data</value>
  13.     </property>
  14. </configuration>
复制代码


配置完成后,执行 NameNode 的格式化:
  1. ./bin/hdfs namenode -format
复制代码

接着开启 NameNode 和 DataNode 保卫进程
  1. ./sbin/start-dfs.sh
复制代码

启动完成后,可以通过命令jps来判断是否乐成启动
  1. jps
复制代码

乐成启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件 


七、运行Hadoop伪分布式实例

要使用 HDFS,首先必要在 HDFS 中创建用户目次:
  1. cd /usr/local/hadoop
  2. ./bin/hdfs dfs -mkdir -p /user/hadoop
复制代码


接着将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件体系中,即将 /usr/local/hadoop/etc/hadoop 复制到分布式文件体系中的 /user/hadoop/input 中
  1. ./bin/hdfs dfs -mkdir input
  2. ./bin/hdfs dfs -put ./etc/hadoop/*.xml input
复制代码

复制完成后,可以通过如下命令查看文件列表:
  1. ./bin/hdfs dfs -ls input
复制代码
 

将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,末了输出效果到 output 文件夹中
  1. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
复制代码


查看运行效果的命令(查看的是位于 HDFS 中的输出效果):
  1. ./bin/hdfs dfs -cat output/*
复制代码

 将运行效果取回到当地:
  1. rm -r ./output
  2. ./bin/hdfs dfs -get output ./output
  3. cat ./output/*
复制代码
Hadoop 运行程序时,输出目次不能存在,否则会提示错误
因此若要再次执行,必要执行如下命令删除 output 文件夹:
  1. ./bin/hdfs dfs -rm -r output
复制代码
若要关闭 Hadoop,则运行:
  1. ./sbin/stop-dfs.sh
复制代码
 

参考文章:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0(2.7.1)/Ubuntu14.04(16.04)_厦大数据库实验室博客


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表