【若泽大数据实战第八天】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-****** 回车回车回车再回车
一个用户无密码访问,不需要密码就可以访问,要把它的公钥输入到它的认证文件里面。
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.格式化
[[email protected] 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可以集群。