Hadoop安装
环境:VirtualBox,Linux,jdk1.8,hadoop-2.6.0-cdh5.14.2.tar.gz
hadoop安装:
首先,检查机器是不是安装了jdk1.8
[root@km1 /]#java -version
其次:多台虚拟机免密登录
先查看用户名,看看用哪台机器作为主机
[root@km1 /]#hostname
[root@km1 /]#cd ~
普通登录到192.168.56.162用户
[root@km1 /]#ssh 192.168.56.162
在运行中会问你要密码
很麻烦
所以生成公私钥匙
[root@km1 ~]#ssh-keygen -t rsa -P ''
中间会有停顿,直接回车
生成公私钥
[root@km1 ~]#cd .ssh/
[root@km1 ~]#ls
一下:
会看见
id_rsa id_rsa.pub known_hosts 三个文件夹,有.pub表示公钥
其他两台机器同样这么做
[root@km2 ~]#ssh-keygen -t rsa
[root@km3 ~]#ssh-keygen -t rsa
然后:
[root@km2 ~]#cd .ssh/
[root@km3 ~]#cd .ssh/
[root@km2 ~]#ls
[root@km3 ~]#ls
因为要免密登录,就需要把主机的公钥复制过来,那么就要删掉原机器上的公钥,私钥也可以顺手删除
[root@km2 .ssh]#rm -rf id_rsa.pub
[root@km3 .ssh]#rm -rf id_rsa.pub
[root@km2 .ssh]#rm -rf id_rsa
[root@km3 .ssh]#rm -rf id_rsa
回到第一台机器那里:拷贝主机的公钥到另外两台机器上去scp指跨服拷贝命令
[root@km1 ~]#scp id_rsa.pub root@192.168.56.162:/root/.ssh/
[root@km1 ~]#scp id_rsa.pub root@192.168.56.163:/root/.ssh/
去第二第三台机器那里
[root@km2 .ssh]#cat id_rsa.pub >> authorized_keys
[root@km3 .ssh]#cat id_rsa.pub >> authorized_keys
这是一个授权命令,不能写错
然后检查:
[root@km3 .ssh]#ls
authorized_keys id_rsa.pub
授权给authorized_keys,第二台机器也一样
[root@km3 .ssh]#chmod 600 authorized_keys
回到第一台机器就可以进行试验了
[root@km1 .ssh]#ssh 192.168.56.162
[root@km2 ~]#exit
connection to 192.168.56.162 closed
如果想直接用名字登录
则:
[root@km1 .ssh]#vi /etc/hosts
添加:
192.168.56.161 km1
192.168.56.162 km2
192.168.56.163 km3
:wq保存
同样的,另外倆也可以这么做
安装hadoop(413M那个)
[root@km1 ~]#cd /opt/
[root@km1 ~]#ls
hadoop-2.6.0-cdh5.14.2.tar.gz jdk.... soft
好了,解压hadoop
[root@km1 opt]#tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz
移动到soft里
[root@km1 opt]#mv hadoop-2.6.0-cdh5.14.2 soft/hadoop260
进入soft
[root@km1 soft]#cd hadoop260/etc/hadoop
[root@km1 hadoop]#pwd(看你在哪的命令,等同于whereis hadoop)
修改配置:
[root@km1 hadoop]#echo $JAVA_HOME
这是看javajdk路径 /opt/soft/jdk180
修改1: hadoop-env.sh
[root@km1 hadoop]#vi hadoop-env.sh
找到export,贴上自己的路径
export JAVA_HOME=/opt/soft/jdk180
:wq
修改2: vi core-site.xml
新开一个窗口,新建一个tmp文件
[root@km1 hadoop260]#mkdir tmp
新开一个窗口,新建一个tmp文件
[root@km1 hadoop]#vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://km1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/soft/hadoop260/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
:wq
修改3:vi hdfs-site.xml
[root@km1 hadoop]#vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
修改4:vi mapred-site.xml
[root@km1 hadoop]#cp mapred-site.xml.template mapred-site.xml
[root@km1 hadoop]#vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改5:vi yarn-site.xml
[root@km1 hadoop]#vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>km3</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
修改6:vi slaves(修改从节点)
删掉localhost
添加:
km2
km3
将所有配置远程传输到第二台、第三台机器上
[root@km1 hadoop]#scp -r /opt/soft/hadoop260/ root@192.168.56.162:/opt/soft/
[root@km1 hadoop]#scp -r /opt/soft/hadoop260/ root@192.168.56.163:/opt/soft/
修改profile文件
vi /etc/profile
export HADOOP_HOME=/opt/soft/hadoop260
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
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
:wq
激活一下:
source /etc/profile
另外两台机器也需如此处理
格式化所有节点:
hdfs namenode -format
然后启动就行:
[root@km1 hadoop]#start-all.sh
行到这里会发现启动报错,那是因为第一台机器没有给authorized_keys授权
那么就自己给自己授权呗
[root@km1 hadoop]#cd /root/.ssh/
[root@km1 .ssh]#ls
[root@km1 .ssh]#cat id_rsa.pub >> authorized_keys
[root@km1 .ssh]#chmod 600 authorized_keys
[root@km1 .ssh]#ssh km1
[root@km1 ~]#exit
重启,如果上面就已经配置过这一步了,那么就不用进行这一步了
休眠重启报错解决:jps缺少datanode或namenode
去cd /opt/soft/hadoop260 目录下删除tmp和log文件夹,再格式化
hdfs namenode -format
重启就有了
退出安全模式
[root@km1 hadoop]#hdfs dfsadmin -safemode leave