文章目录
- Hadoop 安装以及配置
- 一、安装
- 1.安装SSH,设置SSH无密码登录
- 2. 安装jdk
- 3.安装Hadoop
- 二、配置
- 三、其他配置
- 四、出现的问题
- 五 参考文章
Hadoop 安装以及配置
一、安装
1.安装SSH,设置SSH无密码登录
ssh可以让访问其他Linux虚拟机而不用输入密码,可以为集群做准备
- 在被访问主机上生成公钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
- 在访问主机上获取公钥
ssh-copy-id root@ip地址
- 可以在/etc/hosts文件中可以将ip地址映射为自己取得名字
- 远程拷贝文件的使用
远程拷贝文件
scp 本机文件 user@host:路径/
注:将bigdata1上的/etc/profile文件拷贝到bigdata2的根目录下
scp /etc/profile root@bigdata2:/
注:将bigdata1上的/etc/profile文件拷贝到bigdata2的根目录下,并改名为
scp /etc/profile root@bigdata2:/
远程拷贝目录
scp -r 本机目录 user@host:路径/
注:将bigdata1上的/bin目录拷贝到bigdata2的根目录下
scp -r /bin root@bigdata1:/home/ (-r 表示递归)
下载文件到本地
scp user@host:文件名 本地目录
注:将bigdata2上的/profile下载到本地并改名为
scp root@bigdata2:/profile ./
下载目录到本地
scp -r user@host:文件名 本地目录
注:将bigdata2上的/bin下载到本地并改名为
scp -r root@bigdata2:/home/bin ./
2. 安装jdk
- 官网下载
- 解压
sudo tar -zxvf 名字 -C 移动到哪里目录
- 配置环境变量
export JAVA_HOME=
export JRE_HOME=${JAVA_HOME}/JRE
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
: 表示分隔符,再原来的基础智商增加这些东西
- 让变量生效
source ~/.bashrc
- 产看是否安装成功
java -version
3.安装Hadoop
-
下载
-
解压安装包
tar -zxvf 最好解压到某一个urs/
-
配置环境变量
将下面的代码添加到/.bashrc
里面
export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_OPTS="-=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
- 执行
source ~/.bashrc
- 查看hadoop是否安装成功
hadoop version
二、配置
- 在hadoop中配置jdk路径
在/usr/local/hadoop/etc/hadoop/
中修改使用gedit
增加这一行
export JAVA_HOME=/usr/lib/jvm/java
-
配置核心组件
- 配置
<configuration> <property> <name></name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.供其他临时文件夹的使用</description> </property> <property> <name></name> <value>hdfs://localhost:9000</value> </property> </configuration> 不知道第一个value这个值是对是错,对于书上的来说,是使用的/home/用户名/hadoopdata这个文件或者文件夹。这个好像是使用的文件,并且是使用的绝对路径上的文件,所以可能会有点错误。
-
修改文件
<configuration> <property> <name></name> <value>1</value> </property> <property> <name></name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name></name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration> 第一个配置是配饰dfs的副本数量,最高为三,如果不设置,那么默认也是3. 另外两个配置了名字结点和数据结点的存储位置。
-
配置NodeName格式化
./bin/hdfs namenode -format # 重新格式化 NameNode
-
启动nameNode和dataNode进程,并且查看结果
如果上面已经可以访问就不用执行下面的
./sbin/ ./sbin/ # 7. 上面的那句不行,就执行下面的
-
查看结果
使用jps命令产看是否已经启动了SecondaryNameNode结点,NameNode结点DataNode结点。 如果已经启动完成了使用localhost:9870进行访问 二点几的版本的使用50070端口进行访问
-
关闭进程
./sbin/ # 关闭
-
如果出现启动不了的情况
- 情况1:
Call From ubuntu/127.0.1.1 to localhost:9000 failed on connection exception
#针对 DataNode 没法启动的解决方法 cd /usr/local/hadoop ./sbin/ # 关闭 rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据 ./bin/hdfs namenode -format # 重新格式化 NameNode ./sbin/ # 重启
- 情况2:
Attempting to operate on hdfs namenode as root的解决方法
进入在/etc/profile文件中加入下面内容。注意把root修改成自己用户名。
export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
- 情况1:
到此已经可以运行伪集群环境了。就是说文件节点和数据结点都在一个服务器上面的集群环境。下面的配置是为了多机配置而进行的。
三、其他配置
-
配置文件系统
-
配置yarn 文件
-
配置mapreduce计算框架
-
配置master中的workers
四、出现的问题
-
~ 代表用户的根目录,就是说用户的文件夹。Linux是多用户的。每一个用户都有自己的文件夹。
-
/mnt/hgfs文件夹是共享文件夹,使用虚拟机中
如果想要永久挂载使用
.host:/ /mnt/hgfs -fuse allow_other,defaults 0 0
放到/etc/fstab
文件中。 -
直接拖拽不可以上传Hadoop, 需要使用共享文件夹,或者XShell这种进行操作
-
共享文件夹创建失败
-
首先手动创建
-
进行挂载子文件夹
vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
-
vmware-tools的安装
- 打开虚拟机的设置找到CD/DVD的设置
- 将这个DVD指向VMware安装路径下的文件
- 重启虚拟机,会发现有一个CD/DVD的光盘
- 吧VMware tools拷贝到自己的虚拟机上,解压,执行
./vmware-install-distrib
-
出现invalid HADOOP_HDFS_HOME还有ivalid HADOOP_YARN_HOME以及HADOOP_COMMON_HOME
应该是java的版本问题。 -
配置ssh的时候出出现password这种。
编辑
vi /etc/ssh/sshd_config
文件然后修改成yes,注意**修改访问的电脑,不是被访问的。**保险起见,都修改PermitRootLogin yes
或者是防火墙的问题
-
出现了hadoop启动namenode失败,但是不报错的情况,请看参考文章hadoop无法启动
五 参考文章
- 永久挂载
- hadoop无法启动