hadoop启动
- 启动方式
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
- 启动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
- 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 即可在浏览器文件系统中显示
- 日志文件
启动日志文件目录默认为 $HADOOP_HOME/logs分析日志文件的格式log out
.log:通过log4j记录的,记录大部分应用程序的日志信息
.out:记录标准输出和标准错误日志,少量记录
- 日志文件命名规则
框架名称--用户名--进程名--主机名--日志格式后缀
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的日志
- 错误处理
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 nowit'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"
- 测试程序: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