Monthly Archives: April 2015

配置运行hadoop

接前面的。hadoop版本依然是2.4.1. 选择一个节点做主节点,运行hdfs的namenode、yarn的resourcemanager,以及jobhistoryserver。主节点的节点名称定为hadoop-master。 剩下的作为从节点,运行hdfs的datanode、yarn的nodemanager。每个从节点的节点名称定位hadoop-slave+编号。 “节点名称”这个词,好像是我发明的…… 为每个节点创建hadoop用户。配置主节点的hadoop用户可以免密码登录到各个节点(包含自身)。 su – hadoop //切换到hadoop用户 sudo mkdir /opt/hadoop //创建hadoop主目录 cd /opt/hadoop //切换到hadoop主目录 tar xzvf */hadoop-2.4.1.tar.gz //解压缩hadoop包到当前目录,即hadoop主目录 ln -s hadoop-2.4.1 current //创建current符号链接到当前版本的hadoop目录 echo “export PATH=$PATH:/opt/hadoop/current/bin” | sudo tee /etc/profile.d/hadoop.sh //添加hadoop bin目录到PATH sudo source /etc/profile //使刚才的修改立即生效 修改每个从节点的/etc/hostname,每个从节点的hostname改为hadoop-slave*。从节点的节点名称,就是主机名。 修改每个节点的/etc/hosts,将集群中所有节点的IP地址到主机名的映射添加到hosts,包含自身。 … Continue reading

Posted in Uncategorized | Tagged | Leave a comment

编译Hadoop

写在前面的话:有话题就发一帖,证明这个BLOG是活的。 我安装hadoop,是为了支撑spark。spark当前最新稳定版为1.3.0,需要的hadoop版本为2.4.*。2.4.*最新版为2.4.1。 hadoop官网下载页面已经不提供2.4.1的下载链接。但可以在apache的存档站点找到2.4.1:http://archive.apache.org/dist/hadoop/core/ 下载来的hadoop的原生库是32位的,而目前主流机器架构却是64位,我们需要自己手动从源码编译hadoop。 hadoop源码说明文件为的BUILDING.txt。根据说明文件,需要like-unix系统,jdk1.6+,maven 3.0+,Findbugs 1.3.9,protobuf 2.5.0,cmake 2.6+,以及网络连接。 根据我的经验,如果不需要构建文档,Findbugs可无。文档最好有,虽然源码包里的文档只是API文档。帮助文档还得是官方包里才有。但我们可以在这里找到2.4.1的帮助文档。 jdk最好采用Oracle版。Redhat系列下载rpm包,yum localinstall即可。debian系可以下载压缩包,然后借助JavaPackage,将压缩包转为deb包(如果是jdk 1.8,可能需要wheezy-backports版的JavaPackage)。无论哪个系列的发行版,都需要更改默认java软链接到Oracle jdk。如果是debian系,可以借助update-alternatives命令完成这件工作,具体的可见JavaPackage的wiki。安装好jdk后,还需配置JAVA_HOME——我是这么想的,但我编译hadoop时,JAVA_HOME是早已配置好的。执行: echo ‘export JAVA_HOME=……’ > /etc/profile.d/java.sh source /etc/profile protobuf必须2.5.0,还不认2.6.*。我机器上的protobuf刚好2.6,只有下载2.5,重新编译覆盖安装。 protobuf的github页面为https://github.com/google/protobuf 编译安装protobuf,需要先安装automake,然后照官方说明,一步步执行即可: ./autogen.sh ./configure make make check sudo make install 安装protobuf2.5.0后,执行protoc –version检测版本,报:protoc: error while loading shared libraries: libprotobuf.so.8。执行下面的即可解决: … Continue reading

Posted in Uncategorized | Tagged | 3 Comments

使用公钥认证免密码SSH登录的一般步骤和问题排除

一般步骤: 1、ssh-keygen,一路回车,不设密码,程序便会在~/home/.ssh下生成id_rsa私钥和id_rsa.pub公钥 2、ssh-copy-id username@remotehost,程序会将步骤一生成的公钥添加到remotehost:/home/username/.ssh/authorized_keys中。如果没有remotehost:/home/username/.ssh/目录,应该手动创建 问题排除: 检查remotehost的/etc/ssh/sshd_config: AllowUsers或AllowGroups如果被定义,username应该在指定的用户列表或用户组里 DenyUsers或DenyGroups如果被定义,username应该不在…… AuthorizedKeysFile应该设为.ssh/authorized_keys RSAAuthentication和PubkeyAuthentication应该设为yes 如果使用root登录,PermitRootLogin应该设为noyes 修改/etc/ssh/sshd_config之后别忘了重启sshd 检查本地的id_rsa.pub的内容确实被添加到remotehost:/home/username/.ssh/authorized_keys 检查remotehost的/etc/hosts 将本地机器的ip和主机名添加进去 修改remotehost:/home/username/.ssh/权限,该目录应该其它用户可读可执行 chmod o+rx -R .ssh 删除用户组读写执行权限 chmod g-rwx -R .ssh 调试: 盯着remotehost的日志文件。不同的发行系列,sshd的日志路径可能不同 remotehost: sudo tail -f /var/log/secure 开启本地ssh的调试日志输出 ssh -v username@remotehost 如果sshd日志输出:“Authentication refused: bad ownership … Continue reading

Posted in Uncategorized | Tagged | Leave a comment