最近要写一个数据量较大的程序,所以想搭建一个hbase平台试试。搭建hbase伪分布式平台,需要先搭建hadoop平台。本文主要介绍伪分布式平台搭建过程。

目录:

  一、前言

  二、环境搭建

  三、命令测试

  四、启动YARN

  五、web查看


  一、前言

  1、开始搭建前上官网看了一下,发现最新版本是3.0,但一想到跨版本而且又是最新版本的一般都会出现各种不一样的问题,所以决定使用了2.7.3,hadoop2的最新版本,至于跟后面搭建hbase的版本兼不兼容的情况等遇到再看怎么处理(实验证明最新版本的hbase1.2.3跟hadoop2.7.3是完美兼容的)。

  2、机器只有实体机一台 10.1.2.108,centos 6.3,64位系统

[root@root@ZhaoWei_10_1_2_108 ~]# cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m [root@root@ZhaoWei_10_1_2_108 ~]# getconf LONG_BIT

  3、大概了解了下就网上到处找安装教程,发现写的好的还是一大堆的,不过大家基本上都是参考官方安装教程

  4、由于开了多个窗口,所以本文中的shell命令有时候是root运行,有时候是hadoop账号运行,需要注意hostname以便区分

  二、环境搭建

  1、新建hadoop用户

[root@ZhaoWei_10_1_2_108 home]# useradd hadoop
[root@ZhaoWei_10_1_2_108 home]# passwd hadoop
Changing password for user hadoop.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
  2、下载安装包
需要的安装包有hadoop 下载后可以根据MD5比较来判断是否下载完整。
hadoop的版本是2.7.3,hadoop后台主要是java,所以需要依靠jdk环境运行,我下载的版本是jdk1.8(jdk-8u40-linux-x64.tar.gz)。但是不知道为什么下载后在linux下解压一直出错,后来直接在windows下解压后发到linux环境。
  3、安装jdk
tar xvzf jdk-8u40-linux-x64.tar.gz
mv jdk1..0_40/ /usr/local/java1..0_40
ln -s /usr/local/java1..0_40 /usr/local/java cat >> /etc/profile <<'MUL'
JAVA_HOME=/usr/local/java/
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
MUL source /etc/profile
[root@root@ZhaoWei_10_1_2_108 ~]# java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) -Bit Server VM (build 25.40-b25, mixed mode)

  4、配置本机免密ssh登陆

公司的机器是配好ssh的,如果没安装机器可以使用命令

yum install openssh-clients -y
yum install openssh-server -y

安装成功后配置免密登陆需要先切换hadoop账号,使用ssh-keygen生成sshkeys,并且将公钥授权给本机

[root@root@ZhaoWei_10_1_2_108 ~]# su - hadoop
[hadoop@root@ZhaoWei_10_1_2_108 ~]$ ssh-keygen -t rsa # 一路回车
[hadoop@root@ZhaoWei_10_1_2_108 ~]$ cd ~/.ssh/
[hadoop@root@ZhaoWei_10_1_2_108 .ssh]$ cat id_rsa.pub >> authorized_keys
[hadoop@root@ZhaoWei_10_1_2_108 .ssh]$ chmod ./authorized_keys

修改/etc/hosts,增加localhosts

[hadoop@root@ZhaoWei_10_1_2_108 .ssh]$ hostname
root@ZhaoWei_10_1_2_108
[hadoop@root@ZhaoWei_10_1_2_108 .ssh]$ cat /etc/hosts
10.1.2.108 localhost
10.1.2.108 root@ZhaoWei_10_1_2_108

由于公司机器的ssh默认端口是322,而不是22,所以配置免密登陆是需要指定端口的ssh -p322,这里我们还需要修改配置文件,root权限查看配置文件末两行,第一行是设置使用322端口进行通信,第二行是将ssh配置成监听机器的全网段,包含内外网ip。如果没有这一行,需要自己添加,不然后面启动hadoop SecondNode会一直提示连接0.0.0.0失败。

重启ssh服务。

[root@root@ZhaoWei_10_1_2_108 ~]#  tail /etc/ssh/sshd_config
Port 322
ListenAddress 0.0.0.0

[root@root@ZhaoWei_10_1_2_108 ~]# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]

接着运行下面命令成功即可。

[hadoop@root@ZhaoWei_10_1_2_108 ~]$ ssh localhost
ssh: connect to host localhost port : Connection refused
[hadoop@root@ZhaoWei_10_1_2_108 ~]$ ssh -p322 localhost
Last login: Tue Nov :: from 10.1.2.108

如果提示

-bash: /usr/bin/ssh: Permission denied

则root下使用下面命令

chmod  a+x /usr/bin/ssh

  5、安装hadoop

因为我下载的编译后的包,所以是可以直接解压运行的。

[root@root@ZhaoWei_10_1_2_108 tar]# cd /home/hadoop/tar/
[root@root@ZhaoWei_10_1_2_108 tar]# tar -xzf hadoop-2.7..tar.gz
[root@root@ZhaoWei_10_1_2_108 tar]# chown -R hadoop: /home/hadoop/
[root@root@ZhaoWei_10_1_2_108 tar]# mv hadoop-2.7. /usr/local/hadoop
[root@root@ZhaoWei_10_1_2_108 tar]# chown -R hadoop: /usr/local/hadoop/
[hadoop@root@ZhaoWei_10_1_2_108 ~]$ cd /usr/local/hadoop/
[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ ./bin/hadoop version
Hadoop 2.7.
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled by root on --18T01:41Z
Compiled with protoc 2.5.
From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7..

一般在运行hadoop命令会提示Error: JAVA_HOME is not set and could not be found.那是因为hadoop的配置文件没配置好。修改 /usr/local/hadoop/etc/hadoop/hadoop-env.sh支持java环境并配置好ssh 端口。

export JAVA_HOME=/usr/local/java   # 本来是${JAVA_HOME}
export HADOOP_SSH_OPTS="-p 322" # 末尾增加一行

  6、hadoop单机运行

hadoop默认就是单机模式,java单进程运行,方便调试。我们可以直接使用原生的例子来测试hadoop是否安装成功,运行下面命令就可以看到hadoop原生所有例子

若出现提示 “WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable”,该 WARN 提示可以忽略,不会影响 Hadoop 正常运行(可通过编译 Hadoop 源码解决)。

[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7..jar
An example program must be given as the first argument.
Valid program names are:
aggregatewordcount: An Aggregate based map/reduce program that counts the words in the input files.
aggregatewordhist: An Aggregate based map/reduce program that computes the histogram of the words in the input files.
bbp: A map/reduce program that uses Bailey-Borwein-Plouffe to compute exact digits of Pi.
dbcount: An example job that count the pageview counts from a database.
distbbp: A map/reduce program that uses a BBP-type formula to compute exact bits of Pi.
grep: A map/reduce program that counts the matches of a regex in the input.
join: A job that effects a join over sorted, equally partitioned datasets
multifilewc: A job that counts words from several files.
pentomino: A map/reduce tile laying program to find solutions to pentomino problems.
pi: A map/reduce program that estimates Pi using a quasi-Monte Carlo method.
randomtextwriter: A map/reduce program that writes 10GB of random textual data per node.
randomwriter: A map/reduce program that writes 10GB of random data per node.
secondarysort: An example defining a secondary sort to the reduce.
sort: A map/reduce program that sorts the data written by the random writer.
sudoku: A sudoku solver.
teragen: Generate data for the terasort
terasort: Run the terasort
teravalidate: Checking results of terasort
wordcount: A map/reduce program that counts the words in the input files.
wordmean: A map/reduce program that counts the average length of the words in the input files.
wordmedian: A map/reduce program that counts the median length of the words in the input files.
wordstandarddeviation: A map/reduce program that counts the standard deviation of the length of the words in the input files.

运行下面命令可以测试单词过滤例子grep

[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ mkdir input
[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ cp *.txt input/
[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7..jar grep input output 'SOFT[A-Z]+' [hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ cat output/part-r-00000
49      SOFTWARE
[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ ls output/
part-r-00000 _SUCCESS

如果出现 metrics.MetricsUtil: Unable to obtain hostName的错误那就是hostname没配置好,修改好即可。

[root@root@ZhaoWei_10_1_2_108 tar]# hostname root@root@ZhaoWei_10_1_2_108

如果在这之前已经安装了伪分布式平台,则以上命令是不会输出到当前文件系统的,而是会发到hdfs文件系统中。

  6、伪分布式安装

先设置环境变量,修改~/.bashrc,修改后source ~/.bashrc

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

hadoop的配置文件在etc/hadoop下面,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

修改core-site.xml,增加两个property,有些人会把ip写成localhost,但个人建议使用ip会比较有保证,不会那么容易出错。

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://10.1.2.108:9000</value>
<description>NameNode URI</description>
</property>
</configuration>

修改hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value></value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>

然后执行格式化

[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ hdfs namenode -format
// :: INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/127.0.0.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.7.3
*****
****

成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错,出错的话可以尝试删掉tmp文件夹然后重新来,还不行就只能重新检查配置文件有无错误。

接着启动NameNode,SecondNameNode,DataNode进程

[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ start-dfs.sh
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-root@ZhaoWei_10_1_2_108.out
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hadoop-datanode-root@ZhaoWei_10_1_2_108.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-secondarynamenode-root@ZhaoWei_10_1_2_108.out
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

注意这里的0.0.0.0,跟上面的ssh配置呼应。因为伪分布式不用配置SecondNameNode,所以使用默认的host是0.0.0.0:322。如果此时ssh免密登陆失效则会要求输入密码,那就重新配置ssh免密登陆或者输入密码。有时候会提示输入yes,输入即可。

启动完成后根据 jps 命令来判断是否启动成功。如果jps命令未找到则运行


[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ alias jps='/usr/local/java1.8.0_40/bin/jps'
[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ jps
Jps
NameNode
NodeManager DataNode

上面四个进程缺一不可,缺少的话可以重新检查配置或者谷歌搜索,当然也可以查看日志,start-dfs.sh的输出有说明日志的路径,/usr/local/hadoop/logs下的.log文件

[hadoop@root@ZhaoWei_10_1_2_108 hadoop]$ tail logs/hadoop-hadoop-secondarynamenode-root@ZhaoWei_10_1_2_108.log
at java.lang.reflect.Method.invoke(Method.java:)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:)
at com.sun.proxy.$Proxy11.rollEditLog(Unknown Source)
at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:)
at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doWork(SecondaryNameNode.java:)
at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode$.run(SecondaryNameNode.java:)
at org.apache.hadoop.security.SecurityUtil.doAsLoginUserOrFatal(SecurityUtil.java:)
at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.run(SecondaryNameNode.java:)

如果发现DataNode未启动则一般情况下是id不一样,停掉dfs删掉tmp目录然后重新format即可。如果是网络问题,则关闭防火墙:

) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop 在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall--INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A RH-Firewall--INPUT -m state --state NEW -m tcp -p tcp --dport 3 -j ACCEPT

如果遇到hadoop datanode Does not contain a valid host:port authority导致的DataNode未启动则一般是hostname的问题,hostname有时候不能包含‘.’ '/' '_'等非法字符的主机名。修改/etc/hosts的hostname,然后hostname newhostname,接着删掉tmp,重新format,重新start-dfs.sh

  三、命令测试

  由于DataNode出问题之后,我把hostname修改为了master,之后的命令会是下面这样

[root@master ~]#
[hadoop@master ~]$

  上面运行的单机例子读取和写入的都是本地的文件系统,而伪分布式读取写入的是HDFS上的数据。

[hadoop@master ~]$ hdfs dfs -mkdir /user/hadoop  # 新建目录作为个人账号目录
[hadoop@master ~]$ hdfs dfs -mkdir input # 新建
[hadoop@master ~]$ hdfs dfs -ls
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found items
drwxr-xr-x - hadoop supergroup -- : input
[hadoop@master ~]$ hdfs dfs -ls /user/hadoop
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found items
drwxr-xr-x - hadoop supergroup -- : /user/hadoop/input
[hadoop@master ~]$ hdfs dfs -ls -R /
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
drwxr-xr-x - hadoop supergroup -- : /user
drwxr-xr-x - hadoop supergroup -- : /user/hadoop
drwxr-xr-x - hadoop supergroup -- : /user/hadoop/input

在运行hadoop伪分布式实例之前我们先删掉之前单机模式产生的output文件夹,然后开始运行

[hadoop@master hadoop]$ hdfs dfs -put *.txt input
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[hadoop@master hadoop]$ hdfs dfs -ls input
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found items
-rw-r--r-- hadoop supergroup -- : input/LICENSE.txt
-rw-r--r-- hadoop supergroup -- : input/NOTICE.txt
-rw-r--r-- hadoop supergroup -- : input/README.txt
[hadoop@master hadoop]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7..jar grep input output 'SOFT[A-Z]+'
[hadoop@master hadoop]$ hdfs dfs -ls output
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found items
-rw-r--r-- hadoop supergroup -- : output/_SUCCESS
-rw-r--r-- hadoop supergroup -- : output/part-r-00000
[hadoop@master hadoop]$ ls output
ls: cannot access output: No such file or directory
[hadoop@master hadoop]$ hdfs dfs -cat output/part-r-
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
SOFTWARE
[hadoop@master hadoop]$ hdfs dfs -get output ./output  # 将文件夹取回到本地文件系统
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[hadoop@master hadoop]$ ls output/
part-r- _SUCCESS
[hadoop@master hadoop]$ cat output/part-r-
SOFTWARE
[hadoop@master hadoop]$

注意运行 Hadoop 程序时,程序指定的输出目录(如 output)不能存在,否则会提示错误,因此运行前需要先删除输出目录

  四、启动YARN

  hadoop2使用了新的MapReduce框架(MapReduce V2,也称为 YARN,Yet Another Resource Negotiator),YARN是从MapReduce中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性。为什么要升级到YARN,可以参考这篇文章《Hadoop 新 MapReduce 框架 Yarn 详解》。这里只引用文章的一点内容,有兴趣的读者可直接打开文章查看更多内容:

原框架的问题逐渐浮出水面,主要的问题集中如下:
1、JobTracker 是 Map-reduce 的集中处理点,存在单点故障。
2、JobTracker 完成了太多的任务,造成了过多的资源消耗,当 map-reduce job 非常多的时候,会造成很大的内存开销,潜在来说,也增加了 JobTracker fail 的风险,这也是业界普遍总结出老 Hadoop 的 Map-Reduce 只能支持 4000 节点主机的上限。
3、在 TaskTracker 端,以 map/reduce task 的数目作为资源的表示过于简单,没有考虑到 cpu/ 内存的占用情况,如果两个大内存消耗的 task 被调度到了一块,很容易出现 OOM。
4、在 TaskTracker 端,把资源强制划分为 map task slot 和 reduce task slot, 如果当系统中只有 map task 或者只有 reduce task 的时候,会造成资源的浪费,也就是前面提过的集群资源利用的问题。
5、源代码层面分析的时候,会发现代码非常的难读,常常因为一个 class 做了太多的事情,代码量达 3000 多行,,造成 class 的任务不清晰,增加 bug 修复和版本维护的难度。
6、从操作的角度来看,现在的 Hadoop MapReduce 框架在有任何重要的或者不重要的变化 ( 例如 bug 修复,性能提升和特性化 ) 时,都会强制进行系统级别的升级更新。更糟的是,它不管用户的喜好,强制让分布式集群系统的每一个用户端同时更新。这些更新会让用户为了验证他们之前的应用程序是不是适用新的 Hadoop 版本而浪费大量时间。

Yarn 框架相对于老的 MapReduce 框架什么优势呢?我们可以看到:
1、这个设计大大减小了 JobTracker(也就是现在的 ResourceManager)的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。
2、在新的 Yarn 中,ApplicationMaster 是一个可变更的部分,用户可以对不同的编程模型写自己的 AppMst,让更多类型的编程模型能够跑在 Hadoop 集群中,可以参考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。
3、对于资源的表示以内存为单位 ( 在目前版本的 Yarn 中,没有考虑 cpu 的占用 ),比之前以剩余 slot 数目更合理。
4、老的框架中,JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行状况,现在,这个部分就扔给 ApplicationMaster 做了,而 ResourceManager 中有一个模块叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是监测 ApplicationMaster 的运行状况,如果出问题,会将其在其他机器上重启。
5、Container 是 Yarn 为了将来作资源隔离而提出的一个框架。这一点应该借鉴了 Mesos 的工作,目前是一个框架,仅仅提供 java 虚拟机内存的隔离 ,hadoop 团队的设计思路应该后续能支持更多的资源调度和控制 , 既然资源表示成内存量,那就没有了之前的 map slot/reduce slot 分开造成集群资源闲置的尴尬情况。

  接下来开始修改配置文件。

[hadoop@master hadoop]$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

修改etc/hadoop/mapred-site.xml,增加property

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

修改etc/hadoop/yarn-site.xml,增加property

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

启动YARN

[hadoop@master hadoop]$ start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-resourcemanager-master.out
localhost: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-nodemanager-master.out
[hadoop@master hadoop]$ jps
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
Jps

可以发现,比之前多了两个进程 NodeManager, ResourceManager。启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。有兴趣的读者可以观察日志对比变化。

注意在单机上启动YARN可能会发现测试实例的运行速度变慢了(可以看出单机伪分布式并不适合使用YARN),这时候如果要关闭YARN直接启动伪分布式平台则需要将mapred-site.xml删掉,保留原来的mapred-site.xml.template 即可。停止YARN命令如下

[hadoop@master hadoop]$ stop-yarn.sh
stopping yarn daemons
stopping resourcemanager
localhost: stopping nodemanager
no proxyserver to stop
[hadoop@master hadoop]$ jps
NameNode
Jps
DataNode
SecondaryNameNode

如果要关闭hadoop伪分布式平台,则先停止YARN,再停止NameNode

hadoop@master hadoop]$ stop-yarn.sh
stopping yarn daemons
stopping resourcemanager
localhost: stopping nodemanager
no proxyserver to stop

[hadoop@master hadoop]$ jps
NameNode
Jps
DataNode
SecondaryNameNode [hadoop@master hadoop]$ stop-dfs.sh
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Stopping namenodes on [localhost]
localhost: stopping namenode
localhost: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode
// :: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable [hadoop@master hadoop]$ jps
Jps

重新启动并查看运行进程和集群状态信息

[hadoop@master hadoop]$ start-dfs.sh
[hadoop@master hadoop]$ start-yarn.sh
[hadoop@master hadoop]$ jps
ResourceManager
Jps
NameNode
SecondaryNameNode
NodeManager
DataNode
[hadoop@master hadoop]$ hdfs dfsadmin -report

  五、web查看

由于我没有使用web查看过,所以不知道网页查看是长什么样子的。但端口应该是50030和和50070。可以打开页面访问http://your ip:50030,http://your ip:50070

至此,伪分布式hadoop平台搭建完成。要了解更多请参考官网文档

原创文章,转载请备注原文地址 http://www.cnblogs.com/lxmhhy/p/6006252.html

知识交流讨论请加qq群:180214441。谢谢合作

hadoop伪分布式平台搭建(centos 6.3)的更多相关文章

  1. hadoop伪分布式平台搭建

    1. 安装jdk1.7 JAVA_HOME=/home/hadoop/app/jdk1.7.0 vi /etc/profile.d CLASSPATH=.:$JAVA_HOME/lib/dt.jar: ...

  2. hbase伪分布式平台搭建(centos 6.3)

    搭建完<hadoop伪分布式平台>后就开始搭建hbase伪分布式平台了.有了hadoop环境,搭建hbase就变得很容易了. 一.Hbase安装 1.从官网下载最新版本Hbase安装包1. ...

  3. CentOS7下Hadoop伪分布式环境搭建

    CentOS7下Hadoop伪分布式环境搭建 前期准备 1.配置hostname(可选,了解) 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(p ...

  4. Hadoop伪分布式模式搭建

    title: Hadoop伪分布式模式搭建 Quitters never win and winners never quit. 运行环境: Ubuntu18.10-server版镜像:ubuntu- ...

  5. 【Hadoop离线基础总结】CDH版本Hadoop 伪分布式环境搭建

    CDH版本Hadoop 伪分布式环境搭建 服务规划 步骤 第一步:上传压缩包并解压 cd /export/softwares/ tar -zxvf hadoop-2.6.0-cdh5.14.0.tar ...

  6. Hadoop伪分布式的搭建

    主要分为三个步骤:1.安装vmware虚拟机运行软件  2.在vmware虚拟机中安装linux操作系统   3.配置hadoop伪分布式环境 Hadoop环境部署-JDK部分------------ ...

  7. Hadoop伪分布式环境搭建+Ubuntu:16.04+hadoop-2.6.0

    Hello,大家好 !下面就让我带大家一起来搭建hadoop伪分布式的环境吧!不足的地方请大家多交流.谢谢大家的支持 准备环境: 1, ubuntu系统,(我在16.04测试通过.其他版本请自行测试, ...

  8. hadoop伪分布式平台组件搭建

    第一部分:系统基础配置 系统基础配置中主完成了安装大数据环境之前的基础配置,如防火墙配置和安装MySQL.JDK安装等 第一步:关闭防火墙 Hadoop与其他组件的服务需要通过端口进行通信,防火墙的存 ...

  9. 《OD大数据实战》Hadoop伪分布式环境搭建

    一.安装并配置Linux 8. 使用当前root用户创建文件夹,并给/opt/下的所有文件夹及文件赋予775权限,修改用户组为当前用户 mkdir -p /opt/modules mkdir -p / ...

随机推荐

  1. 解析ActionResult子类JsonResult

    前言 MVC我是11开始使用的,当时还是在上地软件园一小型互联网公司,当时是MVC2.0+Linq to sql.后来接着学习MVC3,MVC3的出现确实让我有种眼前一亮的感觉,期间我不断的写各种de ...

  2. C中的fseek函数使用

    函数名:fseek函数 头文件:#include<stdio.h> 功能:把与fp有关的文件位置指针放到一个指定位置. 格式:  int fseek(FILE *stream, long ...

  3. SEO技巧之WordPress篇幅

    随着搜索引擎大兴, 排列在前的网站引入大量流量. 无论是搜索页面的广告还是查出来的结果, 与搜索者的目标匹配度都比较高 (如果搜索引擎足够智能), 所以通过搜索引擎而来的访客很可能会从网站上得到他想要 ...

  4. 在 Git 中 Checkout 历史版本

    昨天写代码的时候,误删了一个文件.今天发现的时候,commit 已经 push 到版本库了.本想用 git reset 回退版本,找回文件后重新提交.但是想起 Git 是一个版本控制系统哎,直接从版本 ...

  5. Rafy 领域实体框架 - 树型实体功能(自关联表)

      在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解. 场景 在开发数据库应用程序时,往往会遇到自关联表的场景.例如,分类信息.组织架构中的部门.文件夹信息等,都 ...

  6. [修正] Berlin Firemonkey Windows 控件左方显示虚线问题

    说明:在 Wndows 显示时,有时控件左方会显示一条虚线 适用:Berlin Firemonkey 修正方法: 请将源码 FMX.Platform.Win.pas 复制到自己的工程目录里,再进行修改 ...

  7. CRM(四川网脉系统)项目总结

    CRM系统(四川网脉系统)项目总结 为期八天的四川网脉系统(CRM系统)项目结束了,不管是在做这个项目的过程中还是答辩的过程中都有一些收获,下面对整个项目的开发做一个大致的总结. 一.项目概况 四川网 ...

  8. php实现设计模式之 访问者模式

    <?php /** * 访问者模式 * 封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作. * 行为类模式 */ /** 抽象访问者:抽象类或 ...

  9. 基于mybatis-generator-core 1.3.5项目的修订版以及源码剖析

    项目简单说明 mybatis-generator,是根据数据库表.字段反向生成实体类等代码文件.我在国庆时候,没事剖析了mybatis-generator-core源码,写了相当详细的中文注释,可以去 ...

  10. e.target.files[0]层层剖析

    因为我现在拿到的一个功能是上传时过滤掉很大尺寸的图片,所以需要来拿到上传时选择图片的size,所以有了这篇博文 不多说 上代码 $('input').change(function(e){ 1️⃣.c ...