hadoop,  个人笔记

hadoop 部署常见问题

hadoop 部署常见问题```shell
常见问题:
1。/tmp/hadoop-zjy-secondarynamenode.pid: Permission denied
fix:chmod -R 777 tmp/

2。Java HotSpot(TM) Client VM warning: You have loaded library /home/zjy/hadoop/lib/native/libhadoop.so.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 ', or link it with '-z noexecstack'.
14/11/09 23:09:07 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
fix:
vi ~/.profile
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
source ~/.profile

  1. 往hdfs里扔文件时,报:
    put: File /input/file1.txt.COPYING could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.
    :原因:是由于多次format导致dfs版本不一致
    fix:删除文件系统,重新: hdfs namenode -format
    或是把文件系统版本改成与 $HADOOP_PREFIX/TMP/dfs/version中的版本一致。

4。Name node is in safe mode (安全模式)
fix:bin/hadoop dfsadmin -safemode leave
用户可以通过dfsadmin -safemode value 来操作安全模式,
参数value的说明如下:
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get - 返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束。

5。org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://localhost/user/zjy/input
目录没有加进去。
fix:hadoop fs -put conf input

6。2014-11-10 01:01:53,107 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: localhost/127.0.0.1:9000
原因:/etc/hosts文件 127.0.0.1 localhost的映射关系导致
fix:vi /etc/hosts

127.0.0.1 localhost

再 stop-all.sh
重新格式化:hdfs namenode -format

7。There are no datanodes in the cluster.

执行下面命令,重新进行启动dataNode即可。
Hadoop启动 格式化集群
以下用hadoop用户执行
hadoop namenode -format -clusterid clustername
启动hdfs 执行
start-dfs.sh
开启 hadoop dfs服务
启动Yarn
开启 yarn 资源管理服务
start-yarn.sh
启动httpfs
开启 httpfs 服 务
httpfs.sh start

8。Initialization failed for Block pool (Datanode Uuid unassigned) service to YFCS-S6-APP/10.200.25.154:9000. Exiting
打开hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致,修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-dfs.sh)再执行jps命令可以看到datanode已正常启动。
出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。
如果改成一致不能解决,则删除datanode目录下的文件:rm -rf /home/zjy/hadoop/tmp/dfs/data/current/* 再重启

9.eclipse远程运行hadoop自定义的代码报:Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, access=WRITE, inode="/":zjy:supergroup:drwxr-xr-x
:原因:本地windows开发环境未安装ssh,或未配置正确,远程hdfs服务器相关目录没有操作权限
1。解决:安装ssh,并配置好ssh .在本地添加相关用户,最好能添加到Administrators组。
2.hdfs服务端 :hdfs dfs -chmod 777 -R /tmp ;hdfs dfs -chmod 777 -R /user/

留言

您的邮箱地址不会被公开。 必填项已用 * 标注