linux出现command not found,主要是两种原因造成:
1、该命令所属的程序未安装。
2、未配置环境变量。
今天在配置hadoop环境变量时,修改~/.bashrc 文件导致常用命令如ls,vi,vim,mv
等全部提示command not found。原因是改~/.bashrc 时把环境变量改坏了。
解决方法:
1、# export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
临时加入PATH环境变量,恢复vim等命令,但重启后会失效。
2、将: export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
加入此前修改的~/.bashrc 中。
重启机器,可验证解决完成。
问题:当在HA集群在使用start-dfs.sh启动时,namenode开启后必定有一个namenode消失,
日志文件如下:
Error: recoverUnfinalizedSegments failed for required journal (JournalAndStream
(mgr=QJM to [192.168.249.130:8485, 192.168.249.131:8485, 192.168.249.132:8485],
stream=null)) org.apache.hadoop.hdfs.qjournal.client.QuorumException: Got too many
exceptions to achieve quorum size 2/3. 3 exceptions thrown: 192.168.249.132:8485:
Call From master/192.168.249.130 to slave2:8485 failed on connection exception:
java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/
hadoop/ConnectionRefused 192.168.249.130:8485: Call From master/192.168.249.130 to
master:8485 failed on connection exception: java.net.ConnectException: 拒绝连接;
For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
192.168.249.131:8485: Call From master/192.168.249.130 to slave1:8485 failed on
connection exception: java.net.ConnectException: 拒绝连接; For more details see:
http://wiki.apache.org/hadoop/ConnectionRefused
原因分析:当在使用start-dfs.sh命令开启集群守护进程时,由于namenode的开启顺序在
journalnode之前,日志中就会产生namenode连接journalnode超时错误提示。
(在zookeeper服务端,QuorumPeerMain守护进程启动的情况下)
解决方案1:再次在namenode消失的节点单独开启namenode
$ hadoop-daemon.sh start namenode
解决方案2:使用stop-dfs.sh关闭其余守护进程后,
1.在每个集群开启journalnode
2.在namenode节点开启namenode
3.在每个slave节点开启datanode
4.在每个节点开启zkfc
解决方案3:修改core-site.xml文件,内容如下:
<property>
<name>ipc.client.connect.max.retries</name>
<value>100</value>
<description>Indicates the number of retries a client will make to establish
a server connection.
</description>
</property>
<property>
<name>ipc.client.connect.retry.interval</name>
<value>10000</value>
<description>Indicates the number of milliseconds a client will wait for
before retrying to establish a server connection.
</description>
</property>
修改配置文件后可以直接使用start-dfs.sh启动
注意:一般在实际集群操作不这样使用,因为在集群的开启时,守护进程开启是有先后顺序的,
而不是通过这样的命令直接全部开启。
Python抓取网页输出为乱码,网页编码为gb2312,但解码时仍然出错:
解决问题:处理的字符的确是gbk或gb2312的,但是其中夹杂的部分特殊字符,是gbk编码
中所没有的如果有些特殊字符是GB18030中有的,但是是gbk中没有的。则用gbk去解码,
去所不支持的字符,也比如会出错。所以,此种情况,可以尝试用和当前编码(gbk)
所兼容的但所包含字符更多的编码(gb18030)去解码,或许就可以了。