Hadoop伪分布式安装

1.环境信息

elementary 14.04

Java 1.8.0_151/apps/jdk1.8.0_151

Hadoop 2.6.5/apps/hadoop

用户名bigdata、密码123、主机名hadoop


2.创建bigdata用户

创建名为bigdata的用户

$ sudo useradd -m bigdata

用如下指令设置密码,按提示输入两次密码,设置为123

$ sudo passwd bigdata

bigdata用户增加管理员权限,方便部署

$ sudo adduser bigdata sudo

 或

$ sudo usermod -G sudo bigdata

最后注销当前用户(右上角齿轮,选择注销),返回登录界面,选择bigdata用户进行登录

后续操作都在bigdata用户下进行


刚切换到bigdata用户里终端无法输入,

查资料后发现是因为 useradd 后默认使用的是 sh 而不是 bash shell,所以解决的方法如下:

在原管理员账户终端使用命令:

chsh -s /bin/bash bigdata
重新登录bigdata用户,发现终端可以输入

(在之前尝试右键终端打开root tab,发现可以输入,但无法用tab补全)


一劳永逸的方法:

[plain] view plain copy
  1. sudo vim /etc/default/useradd  

修改 $SHELL 为
[html] view plain copy
  1. $SHELL = /bin/bash  

重新登陆即可

另外,如果是突然tab无法使用了,还可能是因为补全功能没启动,可以编辑文件  /etc/bash.bashrc

把bash completion相关字段改为以下:

[html] view plain copy
  1. #enable bash completion in interactive shells  
  2. if ! shopt -oq posix; then  
  3.      if [-f  /usr/share/bash-completion/bash_completion ]; then  
  4.           . /usr/share/bash-completion/bash_completion  
  5.       elif [ -f /etc/bash_completion]; then  
  6.            . /etc/bash_completion  
  7.       fi  
  8. fi  
然后source 一下: source /etc/bash.bashrc


3.更新apt

更新apt,方便后续使用apt安装软件

$ sudo apt-get update

安装gedit,方便文档编辑(同vi

$ sudo apt-get install gedit

 

4.安装SSH、配置SSH免密码登录

集群、单机模式都需要SSH登陆(类似于远程登录,可以登陆某台主机,并在上面运行命令)

Ubuntu默认安装了SSH client,还需安装SSH server

apt-get的方式安装SSH server

$ sudo apt-get install openssh-server

安装后,可使用如下命令登陆本机

$ ssh localhost

此时会有登陆提示(初次登陆提示),输入yes,然后按提示输入用户密码123,就能登录到本机

但这样登陆需要密码,配置成SSH无密码比较方便

$ exit                   # 退出刚才的ssh localhost

$ cd ~/.ssh/            # 若没有该目录,先执行一次ssh localhost

$ ssh-keygen -t rsa    # 会有提示,都按回车就可以

$ cat ./id_rsa.pub >> ./authorized_keys       # 加入授权

Hadoop伪分布式安装_第1张图片

此时再用ssh localhost命令,就无需密码直接可以登陆了


5.安装Java环境

这里不使用apt-get,改用jar包安装指定版本的Java

在根目录创建appsdata两个文件夹,apps存放安装的框架,data存放临时数据、程序代码等

$ sudo mkdir /apps

$ sudo mkdir /data

在这里发现命令行输入 ls 可见的文件在可视化文件中找不到,可以通过Ctrl+h找到


# JavaHadoopjar包都放在~/Downloads目录下

Java安装包解压到/apps目录下

$ sudo tar -zxf ~/Downloads/jdk-8u151-linux-x64.tar.gz -C /apps/
其中,tar -zxf对文件进行解压缩 v为查看解压缩过程,-C制定解压后,将文件放到/apps目录下


配置Java相关环境

编辑配置文件/etc/profile,在文件末尾增加Java的环境变量

$ sudo gedit /etc/profile

将以下内容粘贴到环境变量文件的末尾

# java

export JAVA_HOME=/apps/java

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

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


执行source命令让Java环境变量生效

$ source /etc/profile

此时Java环境配置完成,执行如下命令查看

$ java -version

$ echo $JAVA_HOME


6.安装Hadoop伪分布式环境

$ sudo tar -zxf ~/Downloads/hadoop-2.6.5.tar.gz -C /apps    # 将hadoop解压到apps目录下

$ cd /apps                              # 切换到apps目录

$ sudo mv ./hadoop-2.6.5/ ./hadoop    # 将文件夹改名为hadoop

$ sudo chown -R bigdata ./hadoop       # 修改文件权限


hadoop解压后即可使用,输入如下命令查看是否可用,成功会显示版本信息

$ /apps/hadoop/bin/hadoop version

这里配置总是出现问题,出现这样的错误:

 

不知道发生了什么,过了半个月时间,早上又试了一次,突然变成了这样


也就是说,hadoop环境已经配置成功。


在搜索这个错误的过程中,还可能是如下错误:

java配置好jdk-bash: /usr/bin/java: No such file or directory

在 Linux 系统中安装 JDK 环境,配置好环境变量后,输入 java、javac 或者 java -version 等时,都提示如下错误:

-bash: /usr/local/java/bin/java: No such file or directory

原因1:配置时jdk目录放到了最后边,而系统前边有叫java的文件,export PATH=$PATH:$JAVA_HOME/bin

相关方法:配置时export PATH=$JAVA_HOME:$PATH 

原因2:在 64 位的 Linux 系统中安装了 32 位的 JDK 环境。

相关方法:sudo apt-get install libc6-i386 lib32gcc1 lib32z1 lib32stdc++6 ia32-libs

当然也可以下载一个 64 位的 JDK 安装也可解决


伪分布式下,当前机器既作为NameNode,也作为DataNode,同时,读取的是HDFS的文件

修改配置文件,配置文件位于/apps/hadoop/etc/hadoop中,伪分布式需要修改2个配置文件core-size.xmlhdfs-site.xml,配置文件为XML格式。

修改两个配置文件

   # 修改第一个配置文件

$ sudo gedit /apps/hadoop/etc/hadoop/core-site.xml 

将如下内容替换



    

        hadoop.tmp.dir

        file:/apps/hadoop/tmp

        Abase for other temporary directories.

    

    

        fs.defaultFS

        hdfs://localhost:9000

    


    # 修改第二个配置文件

$ sudo gedit /apps/hadoop/etc/hadoop/hdfs-site.xml

将如下内容替换



    

        dfs.replication

        1

    

    

        dfs.namenode.name.dir

        file:/apps/hadoop/tmp/dfs/name

    

    

        dfs.datanode.data.dir

        file:/apps/hadoop/tmp/dfs/data

    



 

除此之外,额外修改一个配置文件hadoop-env.sh,防止后面出现JAVA_HOME is not set的问题

$ sudo gedit /apps/hadoop/etc/hadoop/hadoop-env.sh

export JAVA_HOME=${JAVA_HOME}替换为如下内容

export JAVA_HOME=/apps/jdk1.8.0_151

配置完成后,执行NameNode的格式化

$ /apps/hadoop/bin/hdfs namenode -format

发现路径有问题,再返回上一步,改为

export JAVA_HOME=/apps/java

成功的话,会看到“successfully formatted”和“Exitting with status 0”的提示,若为“Exitting with status 1”则为出错

 我这里显示是这个样子的 

然后启动进程(start-all.sh包含start-dfs.shstart-yarn.sh),输入jps查看当前进程,如图所示即为伪分布式配置成功

$ /apps/hadoop/sbin/start-dfs.sh

$ jps

 Hadoop伪分布式安装_第2张图片

这样就OK啦

你可能感兴趣的:(bigdata)