Hadoop伪分布单节点环境搭建

 

Hadoop伪分布单节点环境搭建

 

1.前提准备工作“两步”流程

    1. 安装虚拟机ubuntu
    2. 安装ubuntu系统

 

2.Hadoop伪分布单节点环境搭建的“三步”总流程

 

  1. JDK安装
  2. SSH配置
  3. Hadoop环境配置

 

 

  1. 前提准备工作“两步”流程

 

1.1安装虚拟机ubuntu

1.

2.

3.

4.我的linux操作系统是ubuntu64位的,因此选择ubuntu64位

5.名称与存放位置

6.

7.

8.

9.

10.

11.虚拟磁盘存储为单个文件就行

12.

13.进入自定义硬件选择系统文件

14.点击浏览选择系统文件

 

 

 

1.2安装ubuntu系统

 

1.

 

2.直接继续

3.

4.

 

5.

 

6.

7.

 

8.这个界面正在安装中,等安装完重启即可。

 

9.重启

 

 

  1. Hadoop伪分布单节点环境搭建的“三步”总流程

 

2.1 JDK安装

 

  1. 检测jdk是否已经安装

java -version

 

 

  1. 并未安装,切换到usr/,创建java/目录

cd /

ls

cd usr/

mkdir java

cd java/

ls

 

 

  1. 将用u盘拷贝的jdk安装包 复制到/usr/java

       cp /home/hadoop/jdk/jdk-8u144-linux-x64.tar.gz /usr/java

       ls

 

  1. 对安装包jdk-8u144-linux-x6tar.gz进行解压

tar zxvf jdk-8u144-linux-x64.tar.gz

ls

 

  1. Jdk的环境变量配置

 

sudo gedit ~/.bashrc

在打开的文件的末尾添加以下信息:

export JAVA_HOME=/usr/java/jdk1.8.0_144

export JRE_HOME=${JAVA_HOME}/jre  

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  

export PATH=${JAVA_HOME}/bin:$PATH 

  1. 使用source命令来使刚才的jdk环境变量配置文件生效
source ~/.bashrc

  1. 配置hosts文件,添加hostname与ip间的关系,方便以后的访问。

 

  1. 首先,ifconfig查看ip

apt install net-tools(如果没有联网,则去网上下载net-tools安装包,进行安装。)

安装成功后再输入命令ifconfig,查看ip为192.168.108.129

 

  1. vi /etc/hosts修改hosts文件

 

192.168.108.129  cnq

       以:wq保存退出

 

  1. 准备hadoop专用用户和组
    groupadd hadoop      创建hadoop用户组
    adduser hadoop       创建hadoop用户
    adduser hadoop hadoop将用户hadoop添加到hadoop组中

       因为我一开始时创建的用户是hadoop,所以已经存在,且已创建组,所以,这一步我只需要将用户添加到组就行

 

  1. 查看防火墙是否开启,如果开启,则关闭

ufw status 查看防火墙状态

ufw disable关闭防火墙

 

2.2 SSH配置

 

  1. 配置SSH实现无密码验证配置,首先切换到刚创建的hadoop用户下。由于hadoop需要无密码登录作为datanode的节点,而由于部署单节点的时候,当前节点既是namenode又是datanode,所以此时需要生成无密码登录的ssh。方法如下:

       

 su hadoop

cd

pwd

  1. 创建.ssh目录,生成密钥
mkdir .ssh

ssh-keygen -t rsa(连续三次回车)

 

  1. 切换到.ssh目录下,进行查看公钥和私钥
cd .ssh

ls

 

  1. 将公钥复制到日志文件里,查看是否复制成功
cp id_rsa.pub authorized_keys
ls

 

 

  1. 查看日记文件具体内容
vi authorized_keys

 

  1. 返回到/home/Hadoop/,来赋予权限
cd ..

pwd

chmod 700 .ssh            将.ssh文件夹的权限赋予700

chmod 600 .ssh/*          将.ssh文件夹中的文件服务600

 

 

  1. 切换到root用户下,安装ssh插件(openssh)
su root

sudo apt-get install openssh-server

.

 

  1. 切换到/home/Hadoop/,测试ssh无密码访问
su hadoop

ssh localhost

 yes

 

2.3 Hadoop环境配置

 

 接下来,搭建hadoop伪分布式环境

下载并解压Hadoop2.2.0,把文件放到/usr/java/目录下,注意:下载前确认一下你的Linux系统是64位系统还是32位系统,分别下载对应的版本,如果下载错了,后面会有很多问题。

 

  1. 首先,切换到/usr/java/ ,再切换到root用户下,再 /root/java

 

cd /usr/java

su root

  1. 将用u盘拷贝的hadoop安装包 复制到/usr/java,并解压
cp /home/hadoop/hadoop/hadoop-2.7.4.tar.gz /usr/java

tar zxvf hadoop-2.7.4.tar.gz

 

 

  1. 将文件名hadoop-2.7.4改为hadoop
mvhadoop-2.7.4hadoop

ls

 

 

  1. 将刚改名的hadoop文件,权限赋给hadoop用户
chown -R hadoop:hadoop hadoop

ls -l(查看权限)

 

  1. 先创建hadoop数据目录,将整个data目录权限赋予给hadoop用户
mkdir -p /data/dfs/name
mkdir -p /data/dfs/data
mkdir -p /data/tmp
chown -R  hadoop:hadoophadoop  /data

 

  1. 修改hadoop对应的配置文件,切换到hadoop用户,再切换到hadoop目录
su hadoop

cd hadoop

 

  1. 查看etc/hadoop的配置文件
cd etc/

ls

cd hadoop/

ls

 

 

  1. 修改etc/Hadoop/core-site.xml配置文件,添加如下信息
vi core-site.xml

 

下面这里配置的是HDFS(hadoop)的分布式文件系统的地址及端口号

<property>

<name>fs.defaultFS</name>

<value>hdfs://cnq:9000</value>

</property>

下面配置的是HDFS路径的存放数据的公共目录

<property>

<name>hadoop.tmp.dir</name>

<value>file:/data/tmp</value>

</property>

下面配置的是,因为在hadoop1.0中引入了安全机制,所以从客户端发出的作业提交者全变成了hadoop,不管原始提交者是哪个用户,为了解决该问题,引入了安全违章功能,允许一个超级用户来代替其他用户来提交作业或者执行命令,而对外来看,执行者仍然是普通用户。所以

配置设为任意客户端
<property>

<name>hadoop.proxyuser.hadoop.hosts</name>

<value>*</value>

</property>

 

配置设为任意用户组
<property>

<name>hadoop.proxyuser.hadoop.groups</name>

<value>*</value>

</property>

 

  1. 修改etc/hadoop/hdfs-site.xml配置文件,添加如下信息。

vi hdfs-site.xml

      

下面这是配置的是namenode文件目录

<property>

<name>dfs.namenode.name.dir</name>

<value>/data/dfs/name</value>

<final>true</final>

</property>

             

              下面这是配置的是datanode文件目录

       <property>

              <name>dfs.datanode.data.dir</name>

              <value>/data/dfs/data</value>

              <final>true</final>

       </property>

             

              下面配置的是数据块副本和HDFS权限

       <property>

              <name>dfs.replication</name>

              <value>1</value>

       </property>



       <property>

              <name>dfs.permissions</name>

              <value>false</value>

       </property>

 

 

  1. 修改etc/Hadoop/mapred-site.xml配置文件,添加如下信息
    cp mapred-site.xml.template mapred-site.xml
    vi mapred-site.xml
 

配置的是mapreduce环境为yarn

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

  1. 修改etc/hadoop/yarn-site.xml配置文件,添加如下信息。

vi yarn-site.xml

为了能够运行mapreduce程序,我们需要让.nodemanger在启动时加载shuffle。所以需要下面设置

 

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

 

  1. 修改etc/hadoop/slaves,添加如下信息。即slaves文件

vi slaves

现在是伪分布式单节点集群,所以datanodenamedata在一个节点上。

修改为

 

  1. 总的是修改这6个配置文件

 

  1. 设置hadoop环境变量,切换到root用户下,修改/etc/profile文件

 

suroot

vi /etc/profile

 

export HADOOP_HOME=/usr/java/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
 

总结 : jdk环境变量配置是放在/etc/profile.d    hadoop环境变量配置是放在/etc/profile

 

 

  1. 使配置文件生效
source /etc/profile

 

 

2.4 测试hadoop运行

 

  1. 切换到hadoop用户,退回到hadoop目录下

 

      suhadoop
      cd ..
      cd ..
      ls

 

  1. 格式化namenode

 

bin/hadoopnamenode -format

 

 

  1. 启动集群(出现异常)

sbin/start-all.sh

如果启动集群出现以下错误

进入到以下文件目录

cd /usr/java/hadoop/etc/hadoop

首先修改 hadoop-env.sh 文件

sudogedit hadoop-env.sh

在打开的文件中找到 JAVA_HOME 的位置,将等号右边的部分修改为jdk的安装目录(也可以是用“#”将这段注释掉,重新写)

 

  1. 启动集群(正常)

sbin/start-all.sh

 

  1. 查看集群是否启动

jps

 

  1. 管理员身份运行记事本

https://i-blog.csdnimg.cn/blog_migrate/024b8d8fee44464f8a6b5dc252bd32dd.png

https://i-blog.csdnimg.cn/blog_migrate/65e7ce6245071e34c21ede5f7867c7b0.png

https://i-blog.csdnimg.cn/blog_migrate/5e3a82b9d5bb0405be1c01ca519914a0.png

 

  1. 打开本地的host文件

输入192.168.108.129 cnq

 

修改,进行保存

 

  1. 最后,现在是来验证hadoop是否安装成功。在Windows上可以通过 http://cnq:50070 访问WebUI来查看NameNode,集群、文件系统的状态。这里是HDFSWeb页面

http://cnq:50070

 

  1. 新建cnq.txt,用来测试,通过hadoop自带的wordcount程序来测试。

 

ls

vi cnq.txt

 

       添加一些数据,如:

caonanqinghadoop

caonanqinghadoop

caonanqinghadoop

:wq保存退出

 

  1. 查看hdfs的文件目录

hadoop fs -ls /       查看

hadoop fs -mkdir /caonanqing    新建caonanqing目录

hadoop fs -ls /     查看

hadoop fs -put /usr/java/hadoop/cnq.txt /caonanqing     将/usr/java/hadoop/cnq.txt  输出到  /caonanqing

hadoop fs -ls /caonanqing    查看caonanqing目录

 

  1. 打开web页面,查看作业的动态情况

http://cnq:8088/cluster/apps

 

  1. 执行Hadoop自带的wordcount程序来测试运行下

 

bin/hadoop  jar  share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar  wordcount  /caonanqing/cnq.txt  /caonanqing/wordcount-out

解释下,/caonanqing/cnq.txt是输入路径,/caonanqing/wordcount-out是输出路径。share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar  是jar包名。

(bin/hadoop jar路径名称 mapreduce处于主方法的包名+类名 输入路径 输出路径)

 

作业进度加载完毕后,回到最初页面http://cnq:50070

 

 

 

 

 

以上都成功,那么hadoop单节点伪分布式运行环境便搭建好了。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值