Hdopp 伪分布式环境构建-基于Ubuntu 16.04

基础环境

1)机器 MacBookPro,2.7 GHz Intel Core i5,8G
2)虚拟机安装 Ubuntu 16.04 64-bit

配置java环境

不知是否是安装原因,我下载安装的ubuntu 环境不带java,所以自行安装配置了java,主要步骤如下:
1)下载jdk(jdk-8u111-linux-x64.tar.gz)
链接:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
ps.在国内选择中文版本网站,不知为什么外文版本的网站一直无法下载
2)解压安装

aa@ubuntu:~$ sudo mkdir -p /usr/lib/jvm  
aa@ubuntu:~$ sudo mv jdk-8u111-linux-x64.tar.gz /usr/lib/jvm  
aa@ubuntu:~$ cd /usr/lib/jvm  
aa@ubuntu:~$ sudo tar xzvf jdk-8u111-linux-x64.tar.gz  
aa@ubuntu:~$ sudo ln -s jdk1.8.0_111 java-8  

3)设置环境变量

aa@ubuntu:~$ cd 
aa@ubuntu:~$ vim .bashrc

在最后添加

export JAVA_HOME=/usr/lib/jvm/java-8  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH 

保存退出,并通过命令使脚本生效:

aa@ubuntu:~$ cd 
aa@ubuntu:~$ source .bashrc

4)检查是否配置成功,如果出现以下则证明已经配置完成

aa@ubuntu:~$ java -version 
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

配置hadoop 伪分布环境

Hadoop 的安装分为本地模式伪分布模式集群模式。本地模式是运行在本地,只负责存储,没有计算功能;伪分布模式是在一台机器上模拟分布式部署,方便学习和调试;集群模式是在多个机器上配置hadoop,是真正的分布式。个人使用,只部署伪分布式,主要步骤如下。

文件均放在/home/aa/jike/目录下

aa@ubuntu:~/jike$ tree -L 1
.
├── jdk1.8.0_111
└── soft

1)下载hadoop 1.2.1 稳定版(jdk-8u111-linux-x64.tar.gz)
链接:https://archive.apache.org/dist/hadoop/common/stable1/hadoop-1.2.1.tar.gz

2)解压到/home/aa/jike/目录下

aa@ubuntu:~/jike$ tree -L 1
.
├── hadoop-1.2.1
├── jdk1.8.0_111
└── soft

3)进入/home/aa/jike/hadoop-1.2.1/conf,需要配置的核心文件有4个

.
├── core-site.xml //配置namenode和默认临时路径
├── hadoop-env.sh //配置java路径
├── hdfs-site.xml //配置hdfs备份的方式
└── mapred-site.xml //配置job.tracker端口

core-site.xml 配置
需要首先创建临时目录的路径/jike/tmp/hadoop

<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://127.0.0.1:9000</value>  //本机ip地址,或者本机名称
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/aa/jike/tmp/hadoop</value> //hadoop默认临时路径
        </property>
</configuration>

hadoop-env.sh 配置
JAVA_HOME行的注释去掉,添加对应的JAVA_HOME地址,如以上配置,本次的地址为/usr/lib/jvm/java-8

# Set Hadoop-specific environment variables here.

# The only required environment variable is JAVA_HOME.  All others are
# optional.  When running a distributed configuration it is best to
# set JAVA_HOME in this file, so that it is correctly defined on
# remote nodes.

# The java implementation to use.  Required.
 export JAVA_HOME=/usr/lib/jvm/java-8

hdfs-site.xml 配置
因为是单机环境,只配置一个副本,实际应用至少为3个

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

mapred-site.xml 配置

<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>127.0.0.1:9001</value>
        </property>
</configuration>

4)配置bashrc

aa@ubuntu:~$ cd 
aa@ubuntu:~$ vim .bashrc

添加HADOOP_PATH

# set hadoop path
export HADOOP_HOME=/home/aa/jike/hadoop-1.2.1
export PATH=$HADOOP_HOME/bin:$PATH
## 防止出现$HADOOP_PATH is deprecated警告,添加以下语句
export HADOOP_HOME_WARN_SUPPRESS=1 

5)测试配置情况,如果出现以下则基础配置完成

aa@ubuntu:~$ hadoop version
Hadoop 1.2.1
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152
Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013
From source with checksum 6923c86528809c4e7e6f493b6b413a9a
This command was run using /home/simon/jike/hadoop-1.2.1/hadoop-core-1.2.1.jar

6)格式化 namenode,如下则格式化完成

aa@ubuntu:~$ hadoop namenode -format
17/05/06 19:09:05 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = ubuntu/127.0.1.1
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 1.2.1
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on Mon Jul 22 15:23:09 PDT 2013
STARTUP_MSG:   java = 1.8.0_111
************************************************************/
17/05/06 19:09:05 INFO util.GSet: Computing capacity for map BlocksMap
17/05/06 19:09:05 INFO util.GSet: VM type       = 64-bit
17/05/06 19:09:05 INFO util.GSet: 2.0% max memory = 932184064
17/05/06 19:09:05 INFO util.GSet: capacity      = 2^21 = 2097152 entries
17/05/06 19:09:05 INFO util.GSet: recommended=2097152, actual=2097152
17/05/06 19:09:06 INFO namenode.FSNamesystem: fsOwner=simon
17/05/06 19:09:06 INFO namenode.FSNamesystem: supergroup=supergroup
17/05/06 19:09:06 INFO namenode.FSNamesystem: isPermissionEnabled=true
17/05/06 19:09:06 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
17/05/06 19:09:06 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
17/05/06 19:09:06 INFO namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0
17/05/06 19:09:06 INFO namenode.NameNode: Caching file names occuring more than 10 times 
17/05/06 19:09:06 INFO common.Storage: Image file /home/aa/jike/tmp/hadoop/dfs/name/current/fsimage of size 111 bytes saved in 0 seconds.
17/05/06 19:09:06 INFO namenode.FSEditLog: closing edit log: position=4, editlog=/home/aa/jike/tmp/hadoop/dfs/name/current/edits
17/05/06 19:09:06 INFO namenode.FSEditLog: close success: truncate to 4, editlog=/home/aa/jike/tmp/hadoop/dfs/name/current/edits
17/05/06 19:09:06 INFO common.Storage: Storage directory /home/aa/jike/tmp/hadoop/dfs/name has been successfully formatted.
17/05/06 19:09:06 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1
************************************************************/

初次启动过程中,出现了bug,系统提示:

connect to host localhost port 22: Connection refused

经过查询得知ubuntu默认自带了ssh服务,但没有sshd服务。如果只是想登陆别的机器的SSH只需要安装openssh-client,如果要使本机开放SSH服务就需要安装openssh-server,重启ubuntu之后再启动hdfs和mapreduce就都正常启动了

aa@ubuntu:~$ sudo apt-get install openssh-server

6)启动系统:一次性全部启动

aa@ubuntu:~$ cd 
aa@ubuntu:~$ start-all.sh

启动后会有5个进程

aa@ubuntu:~$ jps
17490 Jps
3283 DataNode
3080 NameNode
3833 TaskTracker
3465 SecondaryNameNode
3646 JobTracker

启动系统:分别启动HDFS和MapReduce

aa@ubuntu:~$ cd 
aa@ubuntu:~$ start-dfs.sh  //启动hdfs

关闭的命令是 stop-dfs.sh
执行完该命令后,通过jps能够看到NameNode、DataNode 、SecondaryNameNode 三个进程启动了

aa@ubuntu:~$ start-mapred.sh  //启动MapReduce

关闭的命令是 stop-mapred.sh
执行完该命令后,通过jps能够看jobtracker、 tasktracker两个进程启动了。

也可以先启动MapReduce,再启动 HDFS。这说明,HDFS 和 MapReduce 的进程之间是互相独立的,没有依赖关系。

参考资料

1. 百度传课教程-Hive 环境搭建
2. Ubuntu 14.04 安装 JDK 8
3. hadoop环境搭建(伪分布式)

2017-07-21 22:54 14 hive 分布式
Comments
Write a Comment