hadoop安装指南(非常详细,包成功)

上传人:xgs****56 文档编号:9864248 上传时间:2020-04-08 格式:DOC 页数:16 大小:348.56KB
返回 下载 相关 举报
hadoop安装指南(非常详细,包成功)_第1页
第1页 / 共16页
hadoop安装指南(非常详细,包成功)_第2页
第2页 / 共16页
hadoop安装指南(非常详细,包成功)_第3页
第3页 / 共16页
点击查看更多>>
资源描述
安装 HADOOP 集群服务器 1 规划 功能 HOSTNAME IP 说明 Master HDM01 192 168 1 1 Namenode 兼 datanode Slave HDS02 192 168 1 2 Datanode Slave HDS03 192 168 1 3 Datanode Client HDC04 192 168 1 4 HADOOP客户端 HDFS HIVE 2 环境 2 1 系统环境 安装 centOS6 2 软件工作站 software Development Workstation 3 Hadoop 安装 3 1 安装和配置 SSH RSYNC Root 用户 安装 SSH和rsync 一般系统自带了 3 2 创建 Hadoop 运行用户 Root 用户 一般我们不会经常使用root用户运行hadoop 所以要创建一个平常运行和管理Hadoop的 用户 创建hadoop用户和用户组 useradd hadoop PS master和slave节点机都要创建相同的用户和用户组 即在所有集群服务器上都要 建hadoop用户和用户组 3 3 关闭防火墙 Root 用户 在启动前关闭集群中所有机器的防火墙 不然会出现 datanode开后又自动关闭 所以 对集群所有服务器关闭防火墙 chkconfig iptables off 查看防火墙状态 service iptables status 永久关闭防火墙 chkconfig iptables off 查看防火墙状态 chkconfig list iptables 3 4 配置机器名和网络 Root用户 配置HOSTNAME vi etc sysconfig network 修改 HOSTNAME hmaster 其他节点依次改为slave1 slave2 不过必须和上面一致 验证 输入命令 hostname 配置网络IP cd etc sysconfig network scripts vi ifcfg eth0 因为硬件不同 其中的 eth0 可能是其他名称 配置IP和HOSTNAME映射关系 vi etc hosts root NOAS more etc hosts 127 0 0 1 localhost localhost localdomain localhost4 localhost4 localdomain4 1 localhost localhost localdomain localhost6 localhost6 localdomain6 192 168 1 1 HDM01 192 168 1 2 HDS02 192 168 1 3 HDS03 192 168 1 4 HDC04 3 5 配置非 root 用户免验证登录 SSH hadoop 用户 提示 Linux配置ssh是通过欺骗登录用户名的 所以上面创建用户的时候 我们都把3 个节点的username都设置成hadoop 主要是用户名必须一致 在hadoop用户的home目录 即 cd home hadoop 下执行命令 用hadoop用户登录 第 一 二 三步分别在每一个节点上都要执行 第一步 ssh keygen t rsa P f ssh id rsa 意思是读取 id dsa文件默认 全部是yes安装 和root用户一样 会发现多处2个文件 一个是公开密匙 一个是访问用户 名字信息的 第二步 cat ssh id rsa pub ssh authorized keys 是把暴露出来的公共密匙按顺序导入authorized keys中保存 第三步 chmod 700 ssh chmod 600 ssh authorized keys ssh机制很严谨 对文件的权限要求非常严格 我们需要把 ssh文件夹的权限改为700 默认是777 authorized keys的权限这里是对的 600 第四步 在主节点上执行下列命令 ssh HDS02 cat ssh id rsa pub ssh authorized keys ssh HDS03 cat ssh id rsa pub ssh authorized keys scp authorized keys hadoop HDS02 home hadoop ssh scp authorized keys hadoop HDS03 home hadoop ssh 最终authorized keys文件要有各个集群服务器的信息 第五步 验证 第一次会要求输入密码 完成后测试 每台机都要求能联通 ssh HDM01 ssh HDS02 ssh HDS03 不输入密码 就表示成功了 3 6 安装 JDK hadoop 用户 检查是否已安装JDK rpm qa grep jdk 检查JAVA安装目录 whick java 检查是否配置JAVA HOME env grep JAVA HOME which java 和 JAVA HOME 路径不一致 是做了LINK映射 root NOAS su hadoop hadoop NOAS rpm qa grep jdk java 1 6 0 openjdk javadoc 1 6 0 0 1 41 1 10 4 el6 x86 64 java 1 6 0 openjdk devel 1 6 0 0 1 41 1 10 4 el6 x86 64 java 1 6 0 openjdk 1 6 0 0 1 41 1 10 4 el6 x86 64 hadoop NOAS which java usr bin java hadoop NOAS ls l usr bin java lrwxrwxrwx 1 root root 22 Feb 26 22 26 usr bin java etc alternatives java hadoop NOAS ls l etc alternatives java lrwxrwxrwx 1 root root 46 Feb 26 22 26 etc alternatives java usr lib jvm jre 1 6 0 openjdk x86 64 bin java hadoop NOAS env grep JAVA HOME JAVA HOME usr lib jvm jre 1 6 0 openjdk x86 64 在当前用户配置JAVA HOME 在 bash profile文件增加蓝色部分 最后 source home hadoop bash profile 使生效 hadoop NOAS cd home hadoop hadoop NOAS more bash profile bash profile Get the aliases and functions if f bashrc then bashrc fi User specific environment and startup programs PATH PATH HOME bin export PATH JAVA HOME usr lib jvm jre 1 6 0 openjdk x86 64 PATH JAVA HOME bin PATH CLASSPATH CLASSPATH JAVA HOME lib dt jar JAVA HOME lib tools jar export JAVA HOME export PATH export CLASSPATH hadoop NOAS 3 7 安装 Hadoop root 用户 3 7 1 安装 rpm 包 用rpm包安装 目录都是默认的比较规范 用root用户 rpm ivh opt colud hadoop 1 2 1 1 x86 64 rpm 3 7 2 配置 Hadoop 配置文件 每台机器服务器都要配置 且都是一样的 配置完一台其他的只需要拷贝 每 台机上的core site xml和mapred site xml都是配master服务器的hostname 因为都是 配置hadoop的入口 core site xml 整个hadoop入口的配置 vi etc hadoop core site xml 配置如下内容 hadoop tmp dir home hadoop tmp fs default name hdfs HDM01 9000 vi etc hadoop hdfs site xml 配置如下内容 dfs replication 2 vi etc hadoop mapred site xml 配置如下内容 mapred job tracker HDM01 9001 配置说明 core site xml hadoop tmp dir是hadoop文件系统依赖的基础配置 很多路径都依赖它 它默认 的位置是在 tmp user 下面 但是在 tmp路径下的存储是不安全的 因为 linux一次重启 文件就可能被删除 修改该参数后要格式NAMENODE hadoop namenode format 3 7 3 配置 Hadoop 集群配置文件 只需要配置namemode节点机 这里的HDM01即做namenode也兼datanode 一般情况 namenode要求独立机器 namemode不兼datanode vi etc hadoop masters 配置如下内容 HDM01 vi etc hadoop slaves 配置如下内容 HDM01 HDS02 HDS03 3 7 4 配置非 ROOT 用户权限 包含用非root用户启动Hadoop所需的额外项 将 usr sbin 下的以下脚本文件 的owner设为testusr 且赋给owner全权rwx chown hadoop hadoop usr sbin hadoop create user sh chown hadoop hadoop usr sbin hadoop daemon sh chown hadoop hadoop usr sbin hadoop daemons sh chown hadoop hadoop usr sbin hadoop setup applications sh chown hadoop hadoop usr sbin hadoop setup conf sh chown hadoop hadoop usr sbin hadoop setup hdfs sh chown hadoop hadoop usr sbin hadoop setup single node sh chown hadoop hadoop usr sbin hadoop validate setup sh chown hadoop hadoop usr sbin rcc chown hadoop hadoop usr sbin slaves sh chown hadoop hadoop usr sbin start all sh chown hadoop hadoop usr sbin start balancer sh chown hadoop hadoop usr sbin start dfs sh chown hadoop hadoop usr sbin start jobhistoryserver sh chown hadoop hadoop usr sbin start mapred sh chown hadoop hadoop usr sbin stop all sh chown hadoop hadoop usr sbin stop balancer sh chown hadoop hadoop usr sbin stop dfs sh chown hadoop hadoop usr sbin stop jobhistoryserver sh chown hadoop hadoop usr sbin stop mapred sh chown hadoop hadoop usr sbin update hadoop env sh chmod u rwx usr sbin hadoop create user sh chmod u rwx usr sbin hadoop daemon sh chmod u rwx usr sbin hadoop daemons sh chmod u rwx usr sbin hadoop setup applications sh chmod u rwx usr sbin hadoop setup conf sh chmod u rwx usr sbin hadoop setup hdfs sh chmod u rwx usr sbin hadoop setup single node sh chmod u rwx usr sbin hadoop validate setup sh chmod u rwx usr sbin rcc chmod u rwx usr sbin slaves sh chmod u rwx usr sbin start all sh chmod u rwx usr sbin start balancer sh chmod u rwx usr sbin start dfs sh chmod u rwx usr sbin start jobhistoryserver sh chmod u rwx usr sbin start mapred sh chmod u rwx usr sbin stop all sh chmod u rwx usr sbin stop balancer sh chmod u rwx usr sbin stop dfs sh chmod u rwx usr sbin stop jobhistoryserver sh chmod u rwx usr sbin stop mapred sh chmod u rwx usr sbin update hadoop env sh 将 usr bin 下的hadoop设为所有人 不是其他人 可读可执行 即chmod 555 不是chmod 005 chmod 555 usr bin hadoop var log hadoop 及其下 循环 的owner设为testusr 且赋给owner全权rwx var run hadoop 及其下 循环 的owner设为testusr 且赋给owner全权rwx home hadoop 及其下 循环 的owner设为testusr 且owner权限设为 rwxr xr x 设为更大权限不行 主要是因为 home hadoop tmp dfs data的权限需要 为 rwxr xr x chown R hadoop hadoop var log hadoop chown R hadoop hadoop var run hadoop chown R hadoop hadoop home hadoop chmod R u rwx var log hadoop chmod R u rwx var run hadoop chmod R u rwx home hadoop 3 7 5 配置 HADOOP 的 JAVA 环境 配置Hadoop的java环境与env的JAVA HOME保持一致 文件 etc hadoop hadoop env sh The java implementation to use export JAVA HOME usr java default export JAVA HOME usr lib jvm jre 1 6 0 openjdk x86 64 export HADOOP CONF DIR HADOOP CONF DIR etc hadoop 3 8 格式化 HDFS hadoop 用户 hadoop namenode format 用 hadoop用户 重新 format时 系统提示如下 Re format filesystem in home hadoop tmp dfs name Y or N 必须输入大写 Y 输入小写 y不会报输入错误 但 format出错 chown R hadoop hadoop home hadoop chmod R 755 home hadoop 3 9 启动 Hadoop hadoop 用户 Hadoop用户登录 命令 start all sh 记得关闭所有的防火墙 3 9 1 验证 hadoop 1 验证方法一 用 jps 命令 在 Master 上用 java 自带的小工具 jps 查看 5 个进程都在 在 Slave1 上用 jps 查看进程 如果在查看 Slave 机器中发现 DataNode 和 TaskTracker 没有起来时 先查看一下日 志的 如果是 namespaceID 不一致问题 采用 常见问题 FAQ6 2 进行解决 如果是 No route to host 问题 采用 常见问题 FAQ6 3 进行解决 2 验证方式二 用 hadoop dfsadmin report 用这个命令可以查看 Hadoop 集群的状态 Master 服务器的状态 Slave 服务器的状态 4 4 网页查看集群 1 访问 http 192 168 1 1 50030 2 访问 http 192 168 1 1 50070 3 10 HADOOP 语法 3 10 1 启动 关闭 Start all sh stop all sh 3 10 2 进程 Jps Master 节点 namenode tasktracker 如果 Master 不兼做 Slave 不会出现 datanode Tasktracker Slave 节点 datanode Tasktracker 说明 JobTracker 对应于 NameNode TaskTracker 对应于 DataNode DataNode 和 NameNode 是针对数据存放来而言的 JobTracker 和 TaskTracker 是对于 MapReduce 执行而言的 mapreduce 中几个主要概念 mapreduce 整体上可以分为这么几条执行线索 jobclient JobTracker 与 TaskTracker 1 JobClient 会在用户端通过 JobClient 类将应用已经配置参数打包成 jar 文件 存储到 hdfs 并把路径提交到 Jobtracker 然后由 JobTracker 创建每个 Task 即 MapTask 和 ReduceTask 并将它们分发到各个 TaskTracker 服务中 去执行 2 JobTracker 是一个 master 服务 软件启动之后 JobTracker 接收 Job 负 责调度 Job 的每一个子任务 task 运行于 TaskTracker 上 并监控它们 如果 发现有失败的 task 就重新运行它 一般情况应该把 JobTracker 部署在单独的 机器上 3 TaskTracker 是运行在多个节点上的 slaver 服务 TaskTracker 主动与 JobTracker 通信 接收作业 并负责直接执行每一个任务 TaskTracker 都需 要运行在 HDFS 的 DataNode 上 3 10 3 文件系统 HDFS 查看文件系统根目录 Hadoop fs ls 文件系统的目录和文件是不能再本地系统查看到的 相当于两个不同的系统 4 常见错误 4 1 错误 hadoop could only be replicated to 0 nodes instead of 1 现象 namenode 端的 namenodelog 一直报 could only be replicated to 0 nodes instead of 1 错误 表示没有一个可用的节点 datanode 端一直报错 Server at 10 0 0 21 54310 not av ailable yet Zzzzz 2011 03 03 11 33 10 047 INFO org apache hadoop ipc Client Retry ing connect to server 10 0 0 21 54310 一直尝试连接 master 但连接不上 改正 在 namenode 中配置 master 和 jobtracker 的 ip 时使用的是 localhost 将这两个改成 na menode 以及 jobtracker 本机的实际 ip 后 问题得以解决 具体的原因我也不太明白 当然这个错误还有其他的几个原因 摘自网上 dfs 的空间不足 namenode 运行在 safemodel 下 namenode 所在机器的防火墙开着是的 datanode 无法访问 master 这几个问题详见 tml HADOOP 重新格式化文件后 要删除 cd home hadop tmp data rm rf data Name node is in safe mode 在分布式文件系统启动的时候 开始的时候会有安全模式 当分布式文件系统处于安 全模式的情况下 文件系统中的内容不允许修改也不允许删除 直到安全模式结 束 安 全模式主要是为了系统启动的时候检查各个 DataNode 上数据块的有效性 同时根据策略 必要的复制或者删除部分数据块 运行期通过命令也可以进入 安全模式 在实践过程中 系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示 只需要等待一 会儿即可 现在就清楚了 那现在要解决这个问题 我想让 Hadoop 不处在 safe mode 模式下 能 不能不用等 直接解决呢 答案是可以的 只要在 Hadoop 的目录下输入 bin hadoop dfsadmin safemode leave 关闭安全模式就可以了 4 2 用其他用户调用 hadoop 或 HIVE etl HDC04 hive Exception in thread main java io IOException Permission denied at java io UnixFileSystem createFileExclusively Native Method at java io File checkAndCreate File java 1716 at java io File createTempFile File java 1804 at org apache hadoop util RunJar main RunJar java 119 该问题是因为 org apache hadoop util RunJar main 里面要创建临时文件 hadoop tmp dir 这个目录存放的是解压后的 jar 文件等临时文件 那么 hadoop tmp dir 这个变量是在哪里定义的呢 于是查看本机提交 job 时用到的 hadoop 配置文件 core site xml 发现 hadoop tmp dir 是 home hadoop hadoop data 这个目录 而当前的 admin 用户确实是没有权限访问这个目录的 于是改下配置文件就可以了 Chmod R 777 home hadoop hadoop data 4 3 用其他用户调用 hadoop 或 HIVE 启动 HIVE 出现链接不上 mysql com mysql jdbc exceptions jdbc4 MySQLSyntaxErrorException Specified key was too long max key length is 767 bytes 解决方案 到 mysql 中的 hive 数据库里执行 alter database hivedb character set latin1 改 变 hive 元数据库的字符集 问题就可以解决
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!