设为首页 收藏本站
查看: 1116|回复: 0

[经验分享] Hadoop 安装部署实践

[复制链接]

尚未签到

发表于 2018-10-29 09:43:59 | 显示全部楼层 |阅读模式
环境准备#
支持平台#
  GNU/Linux是产品开发和运行的平台。 Hadoop已在有4000个节点的GNU/Linux主机组成的集群系统上得到验证。
  Win32平台是作为开发平台支持的。由于分布式操作尚未在Win32平台上充分测试,所以还不作为一个生产平台被支持。
所需软件#
  Linux和Windows所需软件包括:
  JavaTM1.5.x,必须安装,建议选择Sun公司发行的Java版本。
  ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。
  Windows下的附加软件需求
  Cygwin - 提供上述软件之外的shell支持。
安装步骤#
  本文以Ubuntu为测试环境,鉴于配置测试环境,不做复杂用户拆分,先部署到当前用户下。
  安装软件
  如果你的集群尚未安装所需软件,你得首先安装它们。
更新apt-get源配置#
$sudo apt-get update安装java环境#
  本文环境使用jdk1.7
  两种方式使用openjdk,直接用apt-get安装
$sudo apt-get install -y openjdk-7-jdk$export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64  或者通过oracle 官网下载jdk,然后解压安装
  http://www.oracle.com/technetwork/java/javase/archive-139210.html
  然后设置JAVA_HOME
  本文环境 JAVA_HOME=/usr/local/jdk
lrwxrwxrwx  1 root  root    22 Jun 22 10:20 jdk -> /usr/local/jdk1.7.0_80/drwxr-xr-x  8 uucp    143 4096 Apr 11  2015 jdk1.7.0_80/  环境变量可以配置到 .bash_profile
配置SSH环境#
  安装ssh服务及客户端
$sudo apt-get install -y openssh-server  启动SSH服务
$sudo service ssh start  配置免登陆
$ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys$chmod 600 ~/.ssh/authorized_keys  免登陆测试
$ssh localhost  

  
The authenticity of host 'localhost (::1)' can't be established.ECDSA key fingerprint is SHA256:8PGiorJvZpfFOJkMax6qVaSG8KyRRNnVJGjhNqVqh/k.Are you sure you want to continue connecting (yes/no)?yes$exit
安装Hadoop#
$cd /usr/local$sudo wget http://apache.fayea.com/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz$sudo tar xzvf hadoop-2.6.4.tar.gz$sudo ln -s hadoop-2.6.4.tar.gz hadoop#修改目录权限,改成当前用户的所属$sudo chown -R XXXXX  hadoop*配置#
  配置伪分布式:
  修改etc/hadoop/core-site.xml
  
   
  
        fs.defaultFS
  
        hdfs://localhost:9000
  
   
  etc/hadoop/hdfs-site.xml
  
   
  
        dfs.replication
  
        1
  
   
启动hadoop#
  $ bin/hdfs namenode -format  
  $ sbin/start-dfs.sh  #查看进程
  
  $jps429 SecondaryNameNode172 NameNode1523 Jps286 DataNode
  Namenode web地址: http://localhost:50070/
  可以执行命令测试一下
# create input files$ mkdir input  
$ echo "Hello Docker" >input/file2.txt
  
$ echo "Hello Hadoop" >input/file1.txt# create input directory on HDFS$ hadoop fs -mkdir -p input# put input files to HDFS$ hdfs dfs -put ./input/* input# run wordcount$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount input output# print the input files$ echo -e "\ninput file1.txt:"$ hdfs dfs -cat input/file1.txt
  

  
$ echo -e "\ninput file2.txt:"$ hdfs dfs -cat input/file2.txt# print the output of wordcount$ echo -e "\nwordcount output:"$ hdfs dfs -cat output/part-r-00000
  debug调试时候会出现下面信息:
  WARN io.ReadaheadPool: Failed readahead on ifile
  EBADF: Bad file descriptor
  查阅信息后,说由于在快速读取文件的时候,文件被关闭引起,也可能是其他bug导致,此处忽略。
  也可以 mapreduce.ifile.readahead=false 临时禁掉
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount -D mapreduce.ifile.readahead=false input output  当前MR为local模式运行,如果想通过YARN运行则需要配置启动YARN服务
单节点YARN#
  修改etc/hadoop/mapred-site.xml
  
   
  
        mapreduce.framework.name
  
        yarn
  
   
  etc/hadoop/yarn-site.xml
  
   
  
        yarn.nodemanager.aux-services
  
        mapreduce_shuffle
  
   
  启动服务
$ sbin/start-yarn.sh  可以重新运行上步骤实例
  可以查看 RM web地址: http://localhost:8088/
docker配置测试环境#
  前提已经具有docker环境
  将下载
  jdk-7u80-linux-x64.tar.gz 放到jdk文件夹
  hadoop-2.6.4.tar.gz 压缩包放到 dist文件夹
  目录结构:
./├── Dockerfile  
├── dist
  
│   └── hadoop-2.6.4.tar.gz
  
└── jdk
  
    └── jdk-7u80-linux-x64.tar.gz
  DockerFile hainiubl/hadoop-node:apache:
FROM ubuntu:latestMAINTAINER sandy #install softwareRUN apt-get updateRUN apt-get install -y ssh vim openssh-serverADD jdk/jdk-7u80-linux-x64.tar.gz /usr/localRUN ln -s /usr/local/jdk1.7.0_80 /usr/local/jdk && rm -rf /usr/local/jdk-7u80-linux-x64.tar.gz# install hadoopADD dist/hadoop-2.6.4.tar.gz /usr/local/RUN ln -s /usr/local/hadoop-2.6.4 /usr/local/hadoopENV JAVA_HOME=/usr/local/jdkENV HADOOP_HOME=/usr/local/hadoopENV HADOOP_MAPRED_HOME=$HADOOP_HOMEENV HADOOP_COMMON_HOME=$HADOOP_HOMEENV HADOOP_HDFS_HOME=$HADOOP_HOMEENV HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopENV YARN_HOME=$HADOOP_HOMEENV YARN_CONF_DIR=$HADOOP_HOME/etc/hadoopENV PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin# ssh without keyRUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' && \  
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  build:
$ docker build -t hainiubl/hadoop-node:apache ./  目录结构:
./├── Dockerfile  
├── config
  
│   ├── core-site.xml
  
│   ├── hadoop-env.sh
  
│   ├── hdfs-site.xml
  
│   ├── mapred-site.xml
  
│   ├── run-wordcount.sh
  
│   └── yarn-site.xml
  DockerFile hainiubl/hadoop-pseudo
ROM hainiubl/hadoop-node:apacheMAINTAINER sandy ADD config/* /root/RUN mv /root/core-site.xml $HADOOP_HOME/etc/hadoop/ && mv /root/hadoop-env.sh $HADOOP_HOME/etc/hadoop/RUN chmod +x ~/run-wordcount.sh && \  
    chmod +x $HADOOP_HOME/sbin/start-dfs.sh && \
  
    chmod +x $HADOOP_HOME/sbin/start-yarn.shCMD [ "sh", "-c", "/etc/init.d/ssh start; bash"]
  build:
$ docker build -t hainiubl/hadoop-pseudo:apache ./  启动docker节点:
$ docker run -itd -p 50070:50070 -p 8088:8088 --name hadoop-pseudo hainiubl/hadoop-pseudo:apache &$ docker exec -it hadoop-pseudo sh -c "/usr/local/hadoop/bin/hdfs namenode -format && /usr/local/hadoop/sbin/start-dfs.sh && bash"


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-627822-1-1.html 上篇帖子: 使用Ambari来部署hadoop集群(搭建内网HDP源) 下篇帖子: hadoop 集群调优实践总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表