hadoop-2.6.0伪分布式安装后启动服务及测试

来源:互联网 发布:江西省干部网络 编辑:程序博客网 时间:2024/05/29 14:14

hadoop启动

  1. 启动方式

1.逐一启动

2.分别启动dfs,yarn,如下:
sbin/start-all.sh  启动所有进程   用jps查看
sbin/stop-all.sh    停止所有进程

3.全部启动

hadoop1.x使用,2.x中保留了该功能,但使用会报错

sbin/start-dfs.sh

        sbin/start-yarn.sh  

  1. 启动HDFS

 NameNode、DataNode、SecondaryNameNode
* NameNode 格式化
bin/hdfs namenode -format     --产生一个Cluster ID集群ID

* 启动NameNode
sbin/hadoop-daemon.sh start namenode
* 启动DataNode
sbin/hadoop-daemon.sh start datanode
* 启动SecondaryNameNode
sbin/hadoop-daemon.sh start secondarynamenode

2、启动YARN
ResourceManager、NodeManager
* 启动ResourceManger
sbin/yarn-daemon.sh start resourcemanager
* 启动NodeManager
sbin/yarn-daemon.sh start nodemanager

  1. Web管理hadoop

namenode IP+端口号
namenode                地址:http://192.168.30.131:50070/    
SecondaryNameNode   地址:http://192.168.30.131:50090/
yarn                               地址:http://192.168.30.131:8088/
 
hadoop-2.6.0目录下 bin/hdfs dfs -mkdir /data01  在hdfs中新建文件data01 即可在浏览器文件系统中显示


  1. 日志文件

启动日志文件目录默认为 $HADOOP_HOME/logs

分析日志文件的格式log out

.log:通过log4j记录的,记录大部分应用程序的日志信息
.out:记录标准输出和标准错误日志,少量记录


  1. 日志文件命名规则

框架名称--用户名--进程名--主机名--日志格式后缀


hadoop-2.6.0目录下 bin/hdfs dfs 常用命令

bin/hdfs dfs -ls /    显示文件夹
touch test.txt         创建文本文件test.txt
vim  test.txt           编辑文件
bin/hdfs dfs -put ./test.txt  /data01   把本地文件test放到文件夹data中
bin/hdfs dfs -ls /data01                    显示文件夹data01中文件
bin/hdfs dfs -cat  /data01/test.txt      显示文件内容
bin/hdfs dfs -text  /data01/test.txt     显示文件内容
./sbin/start-all.sh                               启动hadoop所有服务
查看相应的端口是否启动:netstat -ntpl
日志删除命令:logs目录下
rm -rf ./*.log  删除后缀为.log的日志
rm -rf ./*.out  删除后缀为.out的日志

  1. 错误处理

Java HotSpot(TM) Client VM warning:You have loaded library /usr/hadoop/hadoop-2.6.0/lib/native/libhadoop.s0.1.0.0 which might have disabled stack guard the VM will try to fix the stack guard now
it's highly recommended that you fix the library with execstack -c <libfile>,or link it with -z noexecstack

方法如下:

在使用./sbin/start-dfs.sh或./sbin/start-all.sh启动时会报出这样如下警告:

Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /usr/local/hadoop-2.2.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
....
Java: ssh: Could not resolve hostname Java: Name or service not known
HotSpot(TM): ssh: Could not resolve hostname HotSpot(TM): Name or service not known
64-Bit: ssh: Could not resolve hostname 64-Bit: Name or service not known
....

这个问题的错误原因会发生在64位的操作系统上,原因是从官方下载的hadoop使用的本地库文件(例如lib/native/libhadoop.so.1.0.0)都是基于32位编译的,运行在64位系统上就会出现上述错误。解决方法之一是在64位系统上重新编译hadoop,另一种方法是在hadoop-env.sh和yarn-env.sh中添加如下两行:
[plain] view plaincopy
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native  
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"  


  1. 测试程序:wordcount

bin/hdfs dfs -ls /  显示文件夹
往文件夹大data01上传
bin/hdfs dfs -mkdir /data01/input   在文件夹data01下创建input目录
touch  hello.input   编写文件hello
vi  hello.input  编译文件

bin/hdfs dfs -put ./hello.input /data01/input/ 把文件hello放到文件夹

bin/hdfs dfs -ls /data01/input/   查看文件

bin/hdfs dfs -text /data01/input/hello.input  显示文件内容

bin/hdfs dfs -rm -r /data01/output/   删除输出文件output

bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /data01/input/ /data01/output/    调用程序执行

运行完成 查看bin/hdfs dfs -ls /data01/output/ 
两行 
------success  表示运行成功
运行结果

查看运行结果 bin/hdfs dfs -text /data01/output/part-r-00000
统计结果

sbin/hadoop-daemon.sh start historyserver 启动历史服务器

运行一个mapreduce程序:求圆周率
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar pi 2 10        求pi 2个map 10个样本点

2 10  156.516s  pi  3.80000000000000000000000000
4 20  338.827s  pi  3.20000000000000000000000000

0 0