~的含义
在 Linux 系统中,~ 代表的是用户的主文件夹,即 “/home/用户名” 这个目录,如你的用户名为 hadoop,则 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注释。 此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示。
ubuntu安装SSH、配置SSH无密码登陆
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
1. sudo apt-get install openssh-server Shell 命令 安装后,可以使用如下命令登陆本机: 1. ssh localhost Shell 命令 此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。 SSH首次登陆提示 但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。 首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中: 1. exit # 退出刚才的 ssh localhost 2. cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost 3. ssh-keygen -t rsa # 会有提示,都按回车就可以 4. cat ./id_rsa.pub >> ./authorized_keys # 加入授权
Hadoop伪分布式配置
解压到/home/hduser/yarn目录,假设user是用户名(我这里的用户名为wxl)。 $ tar -xvzf hadoop-2.4.0.tar.gz
$ mv hadoop-2.4.0 /home/user/Software/hadoop-2.4.0 $ cd /home/user/Software
$ sudo chown -R user:user hadoop-2.4.0 $ sudo chmod -R 755 hadoop-2.4.0
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
在设置 Hadoop 伪分布式配置前,我们还需要设置 HADOOP 环境变量,执行如下命令在 /etc/profile 中设置: gedit /etc/profile Shell 命令 这次我们选择用 gedit 而不是 vim 来编辑。gedit 是文本编辑器,类似于 Windows 中的记事本,会比较方便。保存后记得关掉整个 gedit 程序,否则会占用终端。在文件最后面增加如下内容: # Hadoop Environment Variables export HADOOP_HOME=/usr/local/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native #写上此命令后可能会出现找不到本地库错误, 可通过编译 Hadoop 源码解决,解决方法请自行搜索 export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin Shell 保存后,不要忘记执行如下命令使配置生效: source /etc/profile Shell 命令 这些变量在启动 Hadoop 进程时需要用到,不设置的话可能会报错(这些变量也可以通过修改 ./etc/hadoop/hadoop-env.sh 实现)。 Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。 修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml),将当中的 1. 2. XML
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode”和SecondaryNameNode(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有
NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
hadoop jps查看进程时报错
程序 'jps' 已包含在下列软件包中: * openjdk-6-jdk * openjdk-7-jdk
请尝试:sudo apt-get install <选定的软件包>
sudo update-alternatives --install /usr/bin/jps jps /home/usr/桌面/linuxsight/jdk1.7.0_51/bin/jps 1
终于能使用jps查看java进程了。。。
启动YARN
(伪分布式不启动 YARN 也可以,一般不会影响程序执行)
有的读者可能会疑惑,怎么启动 Hadoop 后,见不到书上所说的 JobTracker 和
TaskTracker,这是因为新版的 Hadoop 使用了新的 MapReduce 框架(MapReduce V2,也称为 YARN,Yet Another Resource Negotiator)。 YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性,YARN 的更多介绍在此不展开,有兴趣的可查阅相关资料。
上述通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。 首先修改配置文件 mapred-site.xml,这边需要先进行重命名: 1. cp /etc/hadoop/mapred-site.xml.template /etc/hadoop/mapred-s