700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 搭建hadoop分布式集群

搭建hadoop分布式集群

时间:2020-06-14 09:38:15

相关推荐

搭建hadoop分布式集群

搭建hadoop分布式集群

~jdk安装ip修改 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0BOOTPROTO=noneHWADDR=00:0C:29:3B:FE:E6ONBOOT=yesNETMASK=255.255.255.0IPADDR=192.168.129.103TYPE=Ethernet USERCTL=noIPV6INIT=noPEERDNS=yesGATEWAY=192.168.129.254service network restartneat或者netconfig 在图形界面修改hostname修改 hostname hadoopvi /etc/sysconfig/network 修改HOSTNAME=hadoopvi /etc/hosts 删除127.0.0.1和localhost,增加所有集群机器的ip和主机名reboot重启机器增加hadoop用户 useradd -d /home/hadoop -s /bin/bash -m hadoop useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是终极用户-d:指定用户登入时的启始目录-m:自动建立用户的登入目录-s:指定用户登入后所使用的shellpasswd hadoop给hadoop用户添加权限 vi /etc/sudoers文件: 在root ALL=(ALL) ALL 下面添加hadoop ALL=(ALL) ALL相关命令 查看所有用户和组

cat /etc/group

cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more

userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。 userdel -r hadoopSHH免密码登录 + -SSH免密码登录

如果我们希望master 结点不需要密码就能使用ssh连接到slave结点,我们需要将master结点上的~/.ssh/id_dsa.pub的内容,添加到slave结点的~/.ssh/authorized_keys这个文件中。

因为Hadoop需要通过SSH登录到各个节点进行操作

master生成公私钥,将公钥发给slave机器,slave保存公钥到authorized_keys

SSH无密码原理 Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。

A机器ssh登录B机器无需输入密码; 加密方式选rsa|dsa均可以,默认dsa 做法:1、登录A机器 2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub 3、将 .pub 文件复制到B机器的 .ssh 目录,并cat id_dsa.pub >> ~/.ssh/authorized_keys 4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;

(1)CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置, vi /etc/ssh/sshd_config #RSAAuthentication yes #PubkeyAuthentication yes

(2)ssh-keygen -t rsa,生成key,都不输入密码,一直回车,~就会生成.ssh文件夹,每台服务器都要设置,

(3)合并登录方的公钥到authorized_keys文件,

在Master服务器,进入~/.ssh目录,通过SSH命令合并, cat id_rsa.pub>> authorized_keysssh hadoop@192.168.0.183 cat ~/.ssh/id_rsa.pub>> authorized_keysssh hadoop@192.168.0.184 cat ~/.ssh/id_rsa.pub>> authorized_keys

(4)把Master服务器的authorized_keys、known_hosts复制到Slave服务器的/root/.ssh目录

(5)完成,ssh hadoop@192.168.0.183、ssh hadoop@192.168.0.184就不需要输入密码了

注意问题

authorized_keys的权限必须为644.ssh必须为711 chmod 711 ~/.ssh过高的权限不能通过ssh-add命令,过低的权限无法实现免密码登录。master 执行ssh-keygen -t rsa ssh-add id_rsassh-agent bashssh-add id_rsascp ~/.ssh/id_rsa.pub hadoop@slave1.hadoop:~/id_rsa_master.pub 拷贝公钥到要登录的机器要登录的slave cd ~ssh-keygen -t rsa 一直回车cat id_rsa_master.pub >> .ssh/authorized_keys是否成功 master ssh hadoop@slave1.hadoop如果不需要密码则成功检查问题 文件的权限 chmod 711 ~/.sshchmod 644 ~/.ssh/authorized_keys未开启无密码登录 去掉/etc/ssh/sshd_config其中2行的注释,双方服务器都要设置vi /etc/ssh/sshd_config #RSAAuthentication yes#PubkeyAuthentication yeshadoop包解压 tar –zxvf hadoop-2.6.0.tar.gzmv hadoop-2.6.0 hadoopchown –R hadoop:hadoop hadoop设置环境变量 vi /etc/profile## -------------------JAVA------------------------##JAVA_HOME=/usr/java/jdk1.6.0_45CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin## -------------------HADOOP PATH------------------------##export HADOOP_HOME=/usr/hadoopexport PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin修改配置 配置成功后,将hadhoop复制到各个从服务器上scp -r /home/myhadoop/hadoop-2.7.1 myhadoop@slave1.hadoop:/home/myhadoop/hadoop-env.sh 增加JAVA_HOME变量export JAVA_HOME=/usr/java/jdk1.7.0_79core-site.xml 配置HDFS的ip和端口号fs.defaultFS hdfs://master.hadoop:9000hadoop.tmp.dir file:/home/myhadoop/hadoop-2.7.1/tmpio.file.bffer.size 131702hdfs-site.xml dfs.namenode.name.dirdfs.datanode.data.diryarn-site.xml yarn.nodemanager.aux-services mapreduce_shuffleyarn.resourcemanager.hostname master.hadoopyarn.resourcemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandlermapred-site.xml mapreduce.framework.name yarn主服务器上执行bin/hdfs namenode -format 只能执行一次,多次执行需要修改所有节点的集群id与namenode中的一致,或者清空name和data目录sbin目录下执行 ./start-all.sh

sbin/hadoop-daemon.sh --config /home/myhadoop/hadoop-2.7.1/etc/hadoop --script hdfs start namenode

sbin/hadoop-daemons.sh --config /home/myhadoop/hadoop-2.7.1/etc/hadoop --script hdfs start datanode

sbin/start-dfs.sh

yarn-daemons.sh --config /home/myhadoop/hadoop-2.7.1/etc/hadoop start nodemanager

yarn-daemon.sh --config /home/myhadoop/hadoop-2.7.1/etc/hadoop start proxyserver

sbin/start-yarn.sh sbin/mr-jobhistory-daemon.sh --config /home/myhadoop/hadoop-2.7.1/etc/hadoop start historyserver

sbin/mr-jobhistory-daemon.sh --config /home/myhadoop/hadoop-2.7.1/etc/hadoop stop historyserver

测试

向hadoop集群系统提交一个mapreduce任务

bin/hdfs dfs -mkdir /tmp 在虚拟分布式文件系统上创建一个测试目录

tmp bin/hdfs dfs -copyFromLocal ./LICENSE.txt /tmp 将当前目录下的LICENSE文件复制到虚拟分布式文件系统中

bin/hdfs dfs -ls /tmp 查看文件系统中是否存在我们所复制的文件

运行如下命令向hadoop提交单词统计任务 bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /tmp/LICENSE.txt /tmp-output

查看输出结果 bin/hdfs dfs -cat /tmp/*

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。