【若泽大数据实战第八天】hadoop伪分布式模式安装部署

本次用的是;2.6.0-cdh5.7.0

apache hadoop: hadoop.apache.org
cdh hadoop:  http://archive.cloudera.com/cdh5/cdh/5/

进去后ctrl + f  搜索hadoop-2.6.0-cdh5.7.0,单击进去就是Apache Hadoop 2.6.0-cdh5.7.0网站,这是2.x的网站。

继续下一个,可以看到:

最后一个是安装包,可以右键复制链接地址,用wget命令下载。

wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz
或者下载到本地,再用rz命令上传Linux机器上。

http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0/    可以在官网上看到要求等等。

比如:安装cdh5之前要安装java、ssh等要求。

1.创建用户和上传hadoop软件

useradd hadoop       root下添加用户hadoop
su - hadoop              切换到hadoop用户下
mkdir app                 创建app文件夹
cd app/                     进入app目录   /home/hadoop/app/

wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz      用wget命令下载hadoop软件

 rz 上传       从本地上传hadoop软件

2.部署jdk 

CDH环境:
mkdir /usr/java                  这个目录用于 jdk部署(约定俗成的一般都是这个目录)
mkdir /usr/share/java        这个目录用于部署mysql  jdbc  jar包  (CDH需要)

rz上传 jdk-8u45-linux-x64.gz   放到/usr/java/  下

解压:
tar -xzvf jdk-8u45-linux-x64.gz

查看:

从上面可以看到,解压后的jdk的用户用户组发生了变化,并不是root。

小知识点: /bin/bash(这个是解释器,一般执行的命令来自这里)     /sbin/nologin(这个是不准登录,见下图)

如果在/etc/passwd文件里把/sbin/nologin改成/bin/bash就可以登录了。

对于jdk的解压,解压完了之后需要把用户用户组修改过来。

chown -R root:root jdk1.8.0_45

配置全局环境变量:vi /etc/profile

在最后添加这几行:

#env
export JAVA_HOME=/usr/java/jdk1.8.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JER_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JER_HOME/bin:$PATH

保存。

source /etc/profile   生效

which  查看一下

3.解压hadoop

tar -xzvf hadoop-2.6.0-cdh5.7.0.tar.gz

解压后:

drwxr-xr-x  2 hadoop hadoop  4096 Mar 24  2016 bin        这里面是可执行脚本
drwxr-xr-x  2 hadoop hadoop  4096 Mar 24  2016 bin-mapreduce1
drwxr-xr-x  3 hadoop hadoop  4096 Mar 24  2016 cloudera
drwxr-xr-x  6 hadoop hadoop  4096 Mar 24  2016 etc        这里面是配置目录(很多conf文件)
drwxr-xr-x  5 hadoop hadoop  4096 Mar 24  2016 examples      这里面是案例
drwxr-xr-x  3 hadoop hadoop  4096 Mar 24  2016 examples-mapreduce1
drwxr-xr-x  2 hadoop hadoop  4096 Mar 24  2016 include
drwxr-xr-x  3 hadoop hadoop  4096 Mar 24  2016 lib           jar包目录,里面是jar包
drwxr-xr-x  2 hadoop hadoop  4096 Mar 24  2016 libexec
drwxr-xr-x  3 hadoop hadoop  4096 Mar 24  2016 sbin         这里面是hadoop组件的启动 停止脚本
drwxr-xr-x  4 hadoop hadoop  4096 Mar 24  2016 share
drwxr-xr-x 17 hadoop hadoop  4096 Mar 24  2016 src

比如说:在etc下面配置了某个文件,用sbin下面脚本启动hadoop,用bin下面某个脚本看某个数据存储,某天软件升级,把jar包里面某个某个包替换一下。

编辑etc/hadoop/hadoop-env.sh  这个文件,配置下面两个环境变量:

export JAVA_HOME=/usr/java/jdk1.8.0_45
export HADOOP_PREFIX=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0

看官网,可以看到有三种模式:

1.单机模式(Standalone):这种模式是本地模式,是没有hadoop后台进程的,1个Java进程   (不用这种模式)
2.伪分布模式(Pseudo-Distribute Mode):开发|学习  在一台机器上启用多个进程,模拟集群的情况 多个Java进程 
3.集群模式(Cluster Mode):生产 多台机器多个Java进程

在这里用第二种模式:

4.Configuration

编辑配置文件: etc/hadoop/core-site.xml   添加:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

编辑配置文件:etc/hadoop/hdfs-site.xml    添加:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

5.配置ssh localhost无密码信任关系

(这个是官网的截图)

出现上面情况,可以按照官网的步骤来,但是官网上面语句有点长,可能记不住,可以按照下面的,which ssh查看一下。

然后ssh-keygen  回车回车回车再回车

一个用户无密码访问,不需要密码就可以访问,要把它的公钥输入到它的认证文件里面。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

 id_rsa     私钥
 id_rsa.pub 公钥

验证一下:ssh localhost date  远程登录过去 执行一个date命令,把命令的结果返回回来:

ssh localhost date 是需要输入密码,但是这个用户是没有配置密码。
这个时候应该怎样在没有配置密码情况下去完成无密码信任?授权

这个说话还要求输入密码,这肯定是不对的。还差一句命令:chmod 600 authorized_keys(这个在apache官网有)

6.格式化

[hadoop@10-9-140-90 hadoop-2.6.0-cdh5.7.0]$ bin/hdfs namenode -format

7.启动

为什么要配置ssh,因为hadoop在启动的时候要用到ssh。

因为localhost配置了ssh的无密码信任关系,所以可以直接连上,但是0.0.0.0没有配置,所以它第一次会让你输入yes。

ssh 地址,它首先到authorized_keys这个认证文件里找信任关系找秘钥,找不到的话,如果是第一次连接,它会让你输入yes,然后校验,如果校验通过就ok,如果不通过就让你输入密码。第一次连接之后会在known_hosts里面创建一条记录

日志输出路径

sbin/stop-dfs.sh  停止

sbin/start-dfs.sh  启动

jps查看一下:

查看一下端口号,从上面可以看出,因为0.0.0.0是可以对外提供访问的,127.0.0.1不能对外提供访问,只能对本台机器进行访问。所以对外可以提供访问的端口号是50070。这个时候可以在其他电脑上输入http://ip:50070进行访问了。(前提是jps可以看到这三个进程)(如果是云主机,需要把云主机的端口号开一下)

17665 SecondaryNameNode  第二名称节点 老二
17380 NameNode                   名称节点  老大 读写
17511 DataNode                     数据节点  小弟

8.环境变量

hdfs dfs -ls /查看一下,发现:

vi ~/.bash_profile  加上下面两个:

export HADOOP_PREFIX=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0
export PATH=$HADOOP_PREFIX/bin:$PATH

9.命令:  hdfs dfs操作命令和Linux命令极其相似

HDFS也是一个文件存储系统,它是架在linux上的。但是HDFS可以集群。

猜你喜欢

转载自blog.csdn.net/liweihope/article/details/87887096