分布式搭建
在ubuntu下创建hadoop用户组和用户
bigdata@master:~$sudo addgroup hadoop
bigdata@master:~$sudo adduser --ingroup hadoop hadoop
给hadoop用户添加权限
bigdata@master:~$sudo gedit /etc/sudoers
在root ALL=(ALL) ALL下面添加
hadoop ALL=(root) NOPASSWD:ALL
配置ssh,配置ssh注意是在hadoop用户下进行的
hadoop@master:~$su -hadoop
hadoop@master:~$sudp apt-get update
hadoop@master:~$sudo apt-get install openssh-server
修改hostname,设置hostname=master
hadoop@master:~$sudo vi /etc/hostname
修改自己节点的ip映射(一定要记得注释掉上方的127.0.1.1,不然会影响到后面的namenode和datanode的访问)
hadoop@master:~$sudo vi /etc/hosts
192.168.100.10 master
192.168.100.20 salves1
192.168.100.30 salves2
重启网络,互ping
ssh无密码配置
生成公钥
hadoop@master:~$ssh-keygen -t rsa -P ""
master上面首先配置本地的免密访问
hadoop@master:~$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
将master的公钥发到每个节点虚拟机上
hadoop@master:~$scp ~/.ssh/id_rsa. pub hdoop@salves1:/home/hadoop/.ssh
hadoop@master:~$scp ~/.ssh/id_rsa. pub hdoop@salves2:/home/hadoop/.ssh
每个节点虚拟机再将其公钥加入授权a
hdoop@salves1:cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys
hdoop@salves2:cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys
验证master能够无密码访问slave(如能正常进入slave,则配置成功,否则配置失败)
hadoop@master:~$ssh slave1
hadoop@master:~$ssh slave2
安装jdk
hadoop@master:~$vi /etc/profile
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_HOME=/opt/modules/jdk1.7.0_79
export HADOOP_HOME=/opt/modules/hadoop-2.6.0
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
更新配置文件,使其生效
hadoop@master:~$source /etc/proflie
修改配置文件core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/tmp</value>
</property>
创建存储HDFS的临时目录
hadoop@master:~$sudo mkdir -p /opt/data/tmp--在slave上面也要创建这个目录
修改临时目录的所有者
hadoop@master:~$sudo chown -R hadoop:hadoop /opt/data/tmp
修改hdfs-site.xml文件
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
修改mapred-site.xml文件
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
配置yarn-site.xml文件
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
编辑slaves文件
hadoop@master:~$vi /opt/modules/hadoop/etc/hadoop/slaves
添加:slave1 slave2
将master上的jdk,hadoop的安装目录发送到slave上
hadoop@master:~$scp -r /opt/modules/hadoop hadoop@slave1:/opt/modules/
hadoop@master:~$scp -r /opt/modules/hadoop hadoop@slave2:/opt/modules/
hadoop@master:~$scp -r /opt/modules/jdk1.7.0_79 hadoop@slave2:/opt/modules/
hadoop@master:~$scp -r /opt/modules/jdk1.7.0_79 hadoop@slave1:/opt/modules/
补充相关可能会出现的问题
离开安全模式
hadoop@master:~$hadoop dfsadmin -safemode leave
如果上传文件到HDFS一直失败的话一般都是防护墙的问题
hadoop@master:~$sudo ufw disable
hadoop@master:~$stop-all.sh
hadoop@master:~$start-all.sh
在slave上只需要配置/etc/profile文件的java,hadoop路径即可,配置方式和master的配置方式一样,见上。
至此就全部配置完成,接下来就是激动人心的时刻了
格式化namenode
hadoop@master:~$hadoop namenode -foramt
启动
hadoop@master:~$start-all.sh
补充:
单独启动各个节点
hadoop$:hadoop-daemon.sh start namenode
hadoop$:hadoop-daemon.sh start datenode
hadoop$:hadoop-daemon.sh start secondarynamenode
hadoop$:hadoop-daemon.sh start jobtracker
hadoop$:hadoop-daemon.sh start tasktracker
启动HDFS和mapredduce
hadoop$:start-dfs.sh start-mapreduced.sh
来源:https://www.cnblogs.com/racin-job/p/8695008.html